.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}
@media (max-width: 1200px) {
  .close {
    font-size: calc(1.275rem + 0.3vw);
  }
}
.close:hover {
  color: #000;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}

button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
}

a.close.disabled {
  pointer-events: none;
}

.toast {
  flex-basis: 350px;
  max-width: 350px;
  font-size: 0.875rem;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  opacity: 0;
  border-radius: 0.25rem;
}
.toast:not(:last-child) {
  margin-bottom: 0.75rem;
}
.toast.showing {
  opacity: 1;
}
.toast.show {
  display: block;
  opacity: 1;
}
.toast.hide {
  display: none;
}

.toast-header {
  display: flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  color: #6c757d;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}

.toast-body {
  padding: 0.75rem;
}

.mdc-touch-target-wrapper {
  display: inline;
}

@keyframes mdc-checkbox-unchecked-checked-checkmark-path {
  0%, 50% {
    stroke-dashoffset: 29.7833385;
  }
  50% {
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {
  0%, 68.2% {
    transform: scaleX(0);
  }
  68.2% {
    animation-timing-function: cubic-bezier(0, 0, 0, 1);
  }
  100% {
    transform: scaleX(1);
  }
}
@keyframes mdc-checkbox-checked-unchecked-checkmark-path {
  from {
    animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
    opacity: 1;
    stroke-dashoffset: 0;
  }
  to {
    opacity: 0;
    stroke-dashoffset: -29.7833385;
  }
}
@keyframes mdc-checkbox-checked-indeterminate-checkmark {
  from {
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    transform: rotate(0deg);
    opacity: 1;
  }
  to {
    transform: rotate(45deg);
    opacity: 0;
  }
}
@keyframes mdc-checkbox-indeterminate-checked-checkmark {
  from {
    animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    transform: rotate(45deg);
    opacity: 0;
  }
  to {
    transform: rotate(360deg);
    opacity: 1;
  }
}
@keyframes mdc-checkbox-checked-indeterminate-mixedmark {
  from {
    animation-timing-function: mdc-animation-deceleration-curve-timing-function;
    transform: rotate(-45deg);
    opacity: 0;
  }
  to {
    transform: rotate(0deg);
    opacity: 1;
  }
}
@keyframes mdc-checkbox-indeterminate-checked-mixedmark {
  from {
    animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    transform: rotate(0deg);
    opacity: 1;
  }
  to {
    transform: rotate(315deg);
    opacity: 0;
  }
}
@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {
  0% {
    animation-timing-function: linear;
    transform: scaleX(1);
    opacity: 1;
  }
  32.8%, 100% {
    transform: scaleX(0);
    opacity: 0;
  }
}
.mdc-checkbox {
  display: inline-block;
  position: relative;
  flex: 0 0 18px;
  box-sizing: content-box;
  width: 18px;
  height: 18px;
  line-height: 0;
  white-space: nowrap;
  cursor: pointer;
  vertical-align: bottom;
  padding: 11px;
}

.mdc-checkbox .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background::before,
.mdc-checkbox .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background::before,
.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true] ~ .mdc-checkbox__background::before {
  background-color: #018786;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #018786);
}

.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before, .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #018786;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #018786);
}

.mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before {
  opacity: 0.04;
}

.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before, .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before {
  transition-duration: 75ms;
  opacity: 0.12;
}

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

.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after {
  transition-duration: 75ms;
  opacity: 0.12;
}

.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}

.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #018786;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #018786);
}

.mdc-checkbox .mdc-checkbox__background {
  top: 11px;
  left: 11px;
}

.mdc-checkbox .mdc-checkbox__background::before {
  top: -13px;
  left: -13px;
  width: 40px;
  height: 40px;
}

.mdc-checkbox .mdc-checkbox__native-control {
  top: 0px;
  right: 0px;
  left: 0px;
  width: 40px;
  height: 40px;
}

.mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
  border-color: rgba(0, 0, 0, 0.54);
  background-color: transparent;
}

.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background,
.mdc-checkbox__native-control[data-indeterminate=true]:enabled ~ .mdc-checkbox__background {
  border-color: #018786;
  /* @alternate */
  border-color: var(--mdc-theme-secondary, #018786);
  background-color: #018786;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #018786);
}

@keyframes mdc-checkbox-fade-in-background-8A000000secondary00000000secondary {
  0% {
    border-color: rgba(0, 0, 0, 0.54);
    background-color: transparent;
  }
  50% {
    border-color: #018786;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #018786);
    background-color: #018786;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #018786);
  }
}
@keyframes mdc-checkbox-fade-out-background-8A000000secondary00000000secondary {
  0%, 80% {
    border-color: #018786;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #018786);
    background-color: #018786;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #018786);
  }
  100% {
    border-color: rgba(0, 0, 0, 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 {
  animation-name: mdc-checkbox-fade-in-background-8A000000secondary00000000secondary;
}

.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 {
  animation-name: mdc-checkbox-fade-out-background-8A000000secondary00000000secondary;
}

.mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
  border-color: rgba(0, 0, 0, 0.38);
  background-color: transparent;
}

.mdc-checkbox__native-control[disabled]:checked ~ .mdc-checkbox__background,
.mdc-checkbox__native-control[disabled]:indeterminate ~ .mdc-checkbox__background,
.mdc-checkbox__native-control[data-indeterminate=true][disabled] ~ .mdc-checkbox__background {
  border-color: transparent;
  background-color: rgba(0, 0, 0, 0.38);
}

.mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  color: #fff;
}

.mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  border-color: #fff;
}

.mdc-checkbox__native-control:disabled ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  color: #fff;
}

.mdc-checkbox__native-control:disabled ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  border-color: #fff;
}

@media screen and (-ms-high-contrast: active) {
  .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
    border-color: GrayText;
    background-color: transparent;
  }
  .mdc-checkbox__native-control[disabled]:checked ~ .mdc-checkbox__background,
  .mdc-checkbox__native-control[disabled]:indeterminate ~ .mdc-checkbox__background,
  .mdc-checkbox__native-control[data-indeterminate=true][disabled] ~ .mdc-checkbox__background {
    border-color: GrayText;
    background-color: transparent;
  }
  .mdc-checkbox__native-control:disabled ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
    color: GrayText;
  }
  .mdc-checkbox__native-control:disabled ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
    border-color: GrayText;
  }
  .mdc-checkbox__mixedmark {
    margin: 0 1px;
  }
}
.mdc-checkbox--disabled {
  cursor: default;
  pointer-events: none;
}

.mdc-checkbox__background {
  display: inline-flex;
  position: absolute;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  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__background .mdc-checkbox__background::before {
  background-color: #000;
  /* @alternate */
  background-color: var(--mdc-theme-on-surface, #000);
}

.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.7833385;
  stroke-dasharray: 29.7833385;
}

.mdc-checkbox__mixedmark {
  width: 100%;
  height: 0;
  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), 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 {
  animation-duration: 180ms;
  animation-timing-function: linear;
}

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

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

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

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

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

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

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

.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {
  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,
.mdc-checkbox__native-control[data-indeterminate=true] ~ .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,
.mdc-checkbox__native-control[data-indeterminate=true] ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path {
  stroke-dashoffset: 0;
}

.mdc-checkbox__background::before {
  position: absolute;
  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), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
}

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

.mdc-checkbox__native-control {
  position: absolute;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: inherit;
}

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

.mdc-checkbox--touch {
  margin-top: 4px;
  margin-bottom: 4px;
  margin-right: 4px;
  margin-left: 4px;
}

.mdc-checkbox--touch .mdc-checkbox__native-control {
  top: -4px;
  right: -4px;
  left: -4px;
  width: 48px;
  height: 48px;
}

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

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

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

.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__mixedmark,
.mdc-checkbox__native-control[data-indeterminate=true] ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  transform: scaleX(1) rotate(0deg);
  opacity: 1;
}

@keyframes mdc-ripple-fg-radius-in {
  from {
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  }
  to {
    transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  }
}
@keyframes mdc-ripple-fg-opacity-in {
  from {
    animation-timing-function: linear;
    opacity: 0;
  }
  to {
    opacity: var(--mdc-ripple-fg-opacity, 0);
  }
}
@keyframes mdc-ripple-fg-opacity-out {
  from {
    animation-timing-function: linear;
    opacity: var(--mdc-ripple-fg-opacity, 0);
  }
  to {
    opacity: 0;
  }
}
.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 .mdc-checkbox__ripple::before,
.mdc-checkbox .mdc-checkbox__ripple::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}

.mdc-checkbox .mdc-checkbox__ripple::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}

.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}

.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}

.mdc-checkbox.mdc-ripple-upgraded--unbounded .mdc-checkbox__ripple::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}

.mdc-checkbox.mdc-ripple-upgraded--foreground-activation .mdc-checkbox__ripple::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}

.mdc-checkbox.mdc-ripple-upgraded--foreground-deactivation .mdc-checkbox__ripple::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}

.mdc-checkbox .mdc-checkbox__ripple::before, .mdc-checkbox .mdc-checkbox__ripple::after {
  background-color: #000;
  /* @alternate */
  background-color: var(--mdc-theme-on-surface, #000);
}

.mdc-checkbox:hover .mdc-checkbox__ripple::before {
  opacity: 0.04;
}

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

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

.mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after {
  transition-duration: 75ms;
  opacity: 0.12;
}

.mdc-checkbox.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}

.mdc-checkbox .mdc-checkbox__ripple::before,
.mdc-checkbox .mdc-checkbox__ripple::after {
  top: calc(50% - 50%);
  /* @noflip */
  left: calc(50% - 50%);
  width: 100%;
  height: 100%;
}

.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::before,
.mdc-checkbox.mdc-ripple-upgraded .mdc-checkbox__ripple::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 .mdc-checkbox__ripple::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}

.mdc-checkbox__ripple {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

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

.mdc-elevation-overlay {
  position: absolute;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);
  background-color: #fff;
}

.mdc-dialog,
.mdc-dialog__scrim {
  position: fixed;
  top: 0;
  left: 0;
  align-items: 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: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #fff);
}

.mdc-dialog .mdc-dialog__scrim {
  background-color: rgba(0, 0, 0, 0.32);
}

.mdc-dialog .mdc-dialog__title {
  color: rgba(0, 0, 0, 0.87);
}

.mdc-dialog .mdc-dialog__content {
  color: rgba(0, 0, 0, 0.6);
}

.mdc-dialog.mdc-dialog--scrollable .mdc-dialog__title, .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__actions {
  border-color: rgba(0, 0, 0, 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(100% - 32px);
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .mdc-dialog .mdc-dialog__container {
    /* stylelint-disable */
    /* stylelint-enable*/
  }
}
.mdc-dialog .mdc-dialog__surface {
  border-radius: 4px;
}

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

.mdc-dialog__container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-around;
  box-sizing: border-box;
  height: 100%;
  transform: scale(0.8);
  opacity: 0;
  pointer-events: none;
}

.mdc-dialog__surface {
  /* @alternate */
  position: relative;
  /* @alternate */
  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: flex;
  flex-direction: column;
  flex-grow: 0;
  flex-shrink: 0;
  box-sizing: border-box;
  max-width: 100%;
  max-height: 100%;
  pointer-events: auto;
  overflow-y: auto;
}

.mdc-dialog__surface .mdc-elevation-overlay {
  width: 100%;
  height: 100%;
  top: 0;
  /* @noflip */
  left: 0;
}

.mdc-dialog[dir=rtl] .mdc-dialog__surface, [dir=rtl] .mdc-dialog .mdc-dialog__surface {
  /* @noflip */
  text-align: right;
}

.mdc-dialog__title {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: RobotoWeb, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, RobotoWeb, sans-serif));
  font-size: 1.25rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline6-font-size, 1.25rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline6-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-headline6-font-weight, 500);
  letter-spacing: 0.0125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline6-letter-spacing, 0.0125em);
  text-decoration: inherit;
  /* @alternate */
  text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline6-text-transform, inherit);
  position: relative;
  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 {
  /* @noflip */
  text-align: right;
}

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

.mdc-dialog__content {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: RobotoWeb, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, RobotoWeb, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-body1-font-size, 1rem);
  line-height: 1.5rem;
  /* @alternate */
  line-height: var(--mdc-typography-body1-line-height, 1.5rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body1-font-weight, 400);
  letter-spacing: 0.03125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body1-letter-spacing, 0.03125em);
  text-decoration: inherit;
  /* @alternate */
  text-decoration: var(--mdc-typography-body1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body1-text-transform, inherit);
  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: flex;
  position: relative;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  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 {
  flex-direction: column;
  align-items: flex-end;
}

.mdc-dialog__button {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
  max-width: 100%;
  /* @noflip */
  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 {
  /* @noflip */
  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: flex;
}

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

.mdc-dialog--opening .mdc-dialog__container {
  transition: opacity 75ms linear, 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 {
  transform: scale(1);
}

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

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

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

.mdc-form-field {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: RobotoWeb, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, RobotoWeb, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-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: inline-flex;
  align-items: center;
  vertical-align: middle;
}

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

[dir=rtl] .mdc-form-field > label, .mdc-form-field > label[dir=rtl] {
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  margin-right: 0;
}

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

.mdc-form-field--nowrap > label {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

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

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

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

.mdc-form-field--space-between {
  justify-content: space-between;
}

.mdc-form-field--space-between > label {
  margin: 0;
}

[dir=rtl] .mdc-form-field--space-between > label, .mdc-form-field--space-between > label[dir=rtl] {
  margin: 0;
}

.mdc-line-ripple::before, .mdc-line-ripple::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  border-bottom-style: solid;
  content: "";
}

.mdc-line-ripple::before {
  border-bottom-width: 1px;
  z-index: 1;
}

.mdc-line-ripple::after {
  transform: scaleX(0);
  border-bottom-width: 2px;
  opacity: 0;
  z-index: 2;
}

.mdc-line-ripple::after {
  transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.glide {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.glide * {
  box-sizing: inherit;
}
.glide__track {
  overflow: hidden;
}
.glide__slides {
  position: relative;
  width: 100%;
  list-style: none;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  touch-action: pan-Y;
  overflow: hidden;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
}
.glide__slides--dragging {
  user-select: none;
}
.glide__slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  white-space: normal;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}
.glide__slide a {
  user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.glide__arrows {
  -webkit-touch-callout: none;
  user-select: none;
}
.glide__bullets {
  -webkit-touch-callout: none;
  user-select: none;
}
.glide--rtl {
  direction: rtl;
}

.glide__arrow {
  position: absolute;
  display: block;
  top: 50%;
  z-index: 2;
  color: white;
  text-transform: uppercase;
  padding: 9px 12px;
  background-color: transparent;
  border: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: 4px;
  box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1);
  text-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.1);
  opacity: 1;
  cursor: pointer;
  transition: opacity 150ms ease, border 300ms ease-in-out;
  transform: translateY(-50%);
  line-height: 1;
}
.glide__arrow:focus {
  outline: none;
}
.glide__arrow:hover {
  border-color: white;
}
.glide__arrow--left {
  left: 2em;
}
.glide__arrow--right {
  right: 2em;
}
.glide__arrow--disabled {
  opacity: 0.33;
}
.glide__bullets {
  position: absolute;
  z-index: 2;
  bottom: 2em;
  left: 50%;
  display: inline-flex;
  list-style: none;
  transform: translateX(-50%);
}
.glide__bullet {
  background-color: rgba(255, 255, 255, 0.5);
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid transparent;
  transition: all 300ms ease-in-out;
  cursor: pointer;
  line-height: 0;
  box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1);
  margin: 0 0.25em;
}
.glide__bullet:focus {
  outline: none;
}
.glide__bullet:hover, .glide__bullet:focus {
  border: 2px solid white;
  background-color: rgba(255, 255, 255, 0.5);
}
.glide__bullet--active {
  background-color: white;
}
.glide--swipeable {
  cursor: grab;
  cursor: -moz-grab;
  cursor: -webkit-grab;
}
.glide--dragging {
  cursor: grabbing;
  cursor: -moz-grabbing;
  cursor: -webkit-grabbing;
}

.glide__slides {
  will-change: initial;
}
.glide__slide {
  position: relative;
  flex: 1 0 auto;
}
.glide__arrow {
  width: 48px;
  height: 48px;
  border-radius: 48px;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 30px 30px;
  transition: background-color 0.2s;
  text-shadow: none;
  box-shadow: none;
  border: none;
  background-color: transparent;
  --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);
}
.glide__arrow::before, .glide__arrow::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.glide__arrow::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.glide__arrow.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.glide__arrow.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.glide__arrow.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.glide__arrow.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.glide__arrow.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.glide__arrow::before, .glide__arrow::after {
  top: calc(50% - 50%);
  /* @noflip */
  left: calc(50% - 50%);
  width: 100%;
  height: 100%;
}
.glide__arrow.mdc-ripple-upgraded::before, .glide__arrow.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%);
}
.glide__arrow.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.glide__arrow::before, .glide__arrow::after {
  background-color: #201d1d;
}
.glide__arrow:hover::before {
  opacity: 0;
}
.glide__arrow.mdc-ripple-upgraded--background-focused::before, .glide__arrow:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.glide__arrow:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.glide__arrow:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.glide__arrow.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.glide__arrow:hover {
  background-color: rgba(32, 29, 29, 0.04);
}
.tab-navigation .glide__arrow:focus {
  outline: none;
}
.tab-navigation .glide__arrow:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .glide__arrow:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.glide__arrow--left {
  left: -50px;
  right: auto;
  background-position: right 11px center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23d6d8da%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.glide__arrow--right {
  right: -50px;
  left: auto;
  background-position: left 11px center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23d6d8da%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}

@keyframes splide-loading {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}
.splide {
  position: relative;
  visibility: hidden;
}
.splide.is-active {
  visibility: visible;
}
.splide--draggable > __track > __list > __slide {
  user-select: none;
}
.splide--fade > __track > __list {
  display: block;
}
.splide--fade > __track > __list > __slide {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  opacity: 0;
}
.splide--fade > __track > __list > __slide.is-active {
  position: relative;
  z-index: 1;
  opacity: 1;
}
.splide--rtl {
  direction: rtl;
}
.splide--ttb > __track > __list {
  display: block;
}
.splide--ttb > __pagination {
  width: auto;
}
.splide__container {
  position: relative;
  box-sizing: border-box;
}
.splide__list {
  display: flex;
  flex-wrap: wrap;
  margin: 0 !important;
  padding: 0 !important;
}
.splide__pagination {
  display: inline-flex;
  align-items: center;
  width: 95%;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0;
}
.splide__pagination li {
  list-style-type: none;
  display: inline-block;
  line-height: 1;
  margin: 0;
}
.splide__slide {
  position: relative;
  box-sizing: border-box;
  list-style-type: none !important;
  margin: 0;
}
.splide__slide img {
  vertical-align: bottom;
}
.splide__slider {
  position: relative;
}
.splide__spinner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #999;
  border-left-color: transparent;
  animation: splide-loading 1s linear infinite;
}
.splide__track {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.splide__arrow {
  position: absolute;
  z-index: 1;
  top: 50%;
  transform: translateY(-50%);
  width: 2em;
  height: 2em;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 0;
  opacity: 0.7;
  background: #ccc;
}
.splide__arrow:hover {
  cursor: pointer;
  opacity: 0.9;
}
.splide__arrow:focus {
  outline: none;
}
.splide__arrow svg {
  width: 1.2em;
  height: 1.2em;
}
.splide__arrow--prev {
  left: 1em;
}
.splide__arrow--prev svg {
  transform: scaleX(-1);
}
.splide__arrow--next {
  right: 1em;
}
.splide__pagination {
  position: absolute;
  z-index: 1;
  bottom: 0.5em;
  left: 50%;
  transform: translateX(-50%);
  padding: 0;
}
.splide__pagination__page {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #ccc;
  border-radius: 50%;
  margin: 3px;
  padding: 0;
  transition: transfrom 0.2s linear;
  border: none;
  opacity: 0.7;
}
.splide__pagination__page:hover {
  cursor: pointer;
  opacity: 0.9;
}
.splide__pagination__page:focus {
  outline: none;
}
.splide__pagination__page.is-active {
  transform: scale(1.4);
  background: #fff;
}
.splide__progress__bar {
  width: 0;
  height: 3px;
  background: #ccc;
}
.splide--nav > __track > __list > __slide {
  border: 3px solid transparent;
}
.splide--nav > __track > __list > __slide.is-active {
  border-color: black;
}
.splide--nav > __track > __list > __slide:focus {
  outline: none;
}
.splide--rtl > __track > __arrows __arrow--prev, .splide--rtl > __arrows __arrow--prev {
  right: 1em;
  left: auto;
}
.splide--rtl > __track > __arrows __arrow--prev svg, .splide--rtl > __arrows __arrow--prev svg {
  transform: scaleX(1);
}
.splide--rtl > __track > __arrows __arrow--next, .splide--rtl > __arrows __arrow--next {
  left: 1em;
  right: auto;
}
.splide--rtl > __track > __arrows __arrow--next svg, .splide--rtl > __arrows __arrow--next svg {
  transform: scaleX(-1);
}
.splide--ttb > __track > __arrows __arrow, .splide--ttb > __arrows __arrow {
  left: 50%;
  transform: translate(-50%, 0);
}
.splide--ttb > __track > __arrows __arrow--prev, .splide--ttb > __arrows __arrow--prev {
  top: 1em;
}
.splide--ttb > __track > __arrows __arrow--prev svg, .splide--ttb > __arrows __arrow--prev svg {
  transform: rotateZ(-90deg);
}
.splide--ttb > __track > __arrows __arrow--next, .splide--ttb > __arrows __arrow--next {
  top: auto;
  bottom: 1em;
}
.splide--ttb > __track > __arrows __arrow--next svg, .splide--ttb > __arrows __arrow--next svg {
  transform: rotateZ(90deg);
}
.splide--ttb > __pagination {
  display: flex;
  flex-direction: column;
  bottom: 50%;
  left: auto;
  right: 0.5em;
  transform: translate(0, 50%);
}

@media (min-width: 768px) {
  .splide {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    padding: 0 51px;
  }
}
.splide__slide {
  display: block;
}
.splide__slide:focus {
  outline: none;
}
.splide__arrow {
  display: none;
  width: 48px;
  height: 48px;
  border-radius: 48px;
  background-repeat: no-repeat;
  background-size: 30px 30px;
  transition: background-color 0.2s;
  color: rgba(0, 0, 0, 0);
  user-select: none;
  background-color: transparent;
  border: none;
  overflow: hidden;
  position: absolute;
  outline: none;
  top: 50%;
  opacity: 1;
  transform: translateY(-50%);
  --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);
}
.splide__arrow::before, .splide__arrow::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.splide__arrow::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.splide__arrow.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.splide__arrow.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.splide__arrow.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.splide__arrow.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.splide__arrow.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.splide__arrow::before, .splide__arrow::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.splide__arrow.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.splide__arrow::before, .splide__arrow::after {
  background-color: #201d1d;
}
.splide__arrow:hover::before {
  opacity: 0.06;
}
.splide__arrow.mdc-ripple-upgraded--background-focused::before, .splide__arrow:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.splide__arrow:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.splide__arrow:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.splide__arrow.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.splide__arrow:focus {
  outline: none;
}
.tab-navigation .splide__arrow:focus {
  outline: none;
}
.tab-navigation .splide__arrow:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .splide__arrow:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
@media (min-width: 768px) {
  .splide__arrow {
    display: inline-block;
  }
}
.splide__arrow[disabled] {
  opacity: 0.12;
  cursor: default;
}
.splide__arrow[disabled]:before, .splide__arrow[disabled]:after {
  display: none;
}
.splide__arrow--prev {
  left: 0;
  right: auto;
  background-position: right 11px center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
@media (min-width: 768px) {
  .splide__arrow--prev {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  }
}
.splide__arrow--next {
  right: 0;
  left: auto;
  background-position: left 11px center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
@media (min-width: 768px) {
  .splide__arrow--next {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  }
}
.splide__pagination {
  bottom: -36px;
  overflow: visible;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  min-height: 16px;
}
@media (min-width: 768px) {
  .splide__pagination {
    display: none;
  }
}
.splide__pagination li {
  display: inline-flex;
  vertical-align: top;
  text-align: center;
  overflow: visible;
  align-items: center;
  justify-content: center;
}
.splide__pagination__page {
  background-color: #201d1d;
  opacity: 0.25;
  width: 13px;
  height: 13px;
  border-radius: 16px;
  margin: 0;
  overflow: hidden;
  vertical-align: top;
  font-size: 9px;
  letter-spacing: -1px;
  border: none;
  position: relative;
  transform: none;
  transition: none;
  display: block;
}
.splide__pagination__page:hover {
  opacity: 0.25;
}
.splide__pagination__page.is-active {
  opacity: 1;
  transform: none;
}
.splide .figure {
  position: relative;
  vertical-align: top;
  margin: 0;
  width: 100%;
  height: 100%;
  padding: 0;
}
.splide .figure:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  user-select: none;
  border: 1px solid #d6d8da;
}
.splide .figure img {
  width: 100%;
  top: -100%;
  bottom: -100%;
  left: -100%;
  right: -100%;
  margin: auto;
  max-width: 100%;
}
@media (min-width: 1656px) {
  .splide .figure img {
    width: auto;
  }
}
.splide .figure img.lazy {
  outline: none;
}
.splide .figure__canvas {
  width: 100%;
  margin: auto;
  max-width: 100%;
}
@media (min-width: 1656px) {
  .splide .figure__canvas {
    width: auto;
  }
}
.splide .figure__action {
  position: relative;
  overflow: hidden;
  padding: 0;
}

.slider {
  padding: 0;
}
.slider .splide__arrow {
  display: inline-block;
}
.slider .splide__arrow--prev {
  background-color: #fff;
  border-radius: 0px;
}
.slider .splide__arrow--next {
  background-color: #fff;
  border-radius: 0px;
}

@media (min-width: 768px) {
  .slider-full_width .splide {
    padding: 0;
  }
}
.slider-full_width .splide__arrow {
  display: inline-block;
}
.slider-full_width .splide__arrow--prev {
  background-color: #fff;
  border-radius: 0px;
}
.slider-full_width .splide__arrow--next {
  background-color: #fff;
  border-radius: 0px;
}

.mdc-list-item--disabled {
  pointer-events: none;
  color: rgba(32, 29, 29, 0.3);
}

.mdc-menu-surface {
  scrollbar-width: thin;
  scrollbar-color: #d6d8da #fff;
  z-index: 20;
}
.mdc-menu-surface::-webkit-scrollbar {
  width: 8px;
  background-color: #fff;
}
.mdc-menu-surface::-webkit-scrollbar-thumb {
  outline: none;
  width: 7px;
  border-radius: 7px;
  background-color: #d6d8da;
  border: 1px solid #fff;
}
.mdc-menu-surface--anchor > button {
  display: block;
  text-align: left;
  text-overflow: ellipsis;
}

.mdc-icon-button.material-icons {
  width: 48px;
  font-family: materialIconsRoundWeb, sans-serif;
}

.mdc-radio {
  overflow: hidden;
}

.mdc-radio__ripple {
  overflow: hidden;
  border-radius: 100px;
}

.mdc-menu .mdc-list-item {
  height: auto;
  display: block;
  text-align: left;
  padding-top: 6px;
  padding-bottom: 6px;
  line-height: 1.2;
}
@media (min-width: 992px) {
  .mdc-menu .mdc-list-item {
    padding-top: 10px;
    padding-bottom: 10px;
  }
}

.helpers__join--bluel500-blank {
  position: relative;
}
.helpers__join--bluel500-blank:before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: -1px;
  width: 100%;
  height: 50%;
  background-color: #07bafd;
}

.hero--homepage {
  overflow: hidden;
}
@media (min-width: 992px) {
  .hero--homepage:before {
    content: "";
    display: block;
    width: 100%;
    height: 546px;
    position: relative;
    top: 0;
    left: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.2) 23%, rgba(0, 0, 0, 0) 42%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
    pointer-events: none;
    margin-bottom: -546px;
  }
}

@media (min-width: 768px) {
  .home-slider__slide {
    height: 80vh;
  }
  .home-slider__img {
    height: 100%;
    object-fit: cover;
  }
}
.home-slider__canvas--mobile {
  background-color: #D8D1C9;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
@media (min-width: 768px) {
  .home-slider__canvas--mobile {
    display: none;
  }
}
.ie .home-slider__canvas--mobile {
  display: none;
}
.home-slider__slide--video .home-slider__canvas--mobile {
  background-color: #201d1d;
}
.home-slider__canvas--desktop {
  background-color: #D8D1C9;
  margin: 0;
  width: 100%;
  max-width: 100%;
  display: none;
  user-select: none;
}
.ie .home-slider__canvas--desktop {
  display: block;
}
@media (min-width: 768px) {
  .home-slider__canvas--desktop {
    display: block;
  }
}
.home-slider__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .home-slider__img {
  position: absolute;
  left: 0;
  top: 0;
}
.home-slider__video {
  width: 100%;
  height: auto;
  margin: auto;
  display: none;
}
@media (min-width: 768px) {
  .home-slider__video {
    display: block;
    width: auto;
    height: 100%;
  }
}
.preload .home-slider__video {
  opacity: 0;
}
canvas ~ .home-slider__video {
  position: absolute;
  left: -100%;
  right: -100%;
  top: -100%;
  bottom: -100%;
}
.home-slider__slides {
  display: flex;
}
.home-slider .carousel-control-next {
  opacity: 1;
  text-align: right;
  justify-content: flex-end;
}
@media (max-width: 991.98px) {
  .home-slider .carousel-control-next {
    padding-right: 0;
  }
}
@media (min-width: 768px) {
  .home-slider .carousel-control-next {
    padding-right: 40px;
  }
}
.home-slider .carousel-control-prev {
  opacity: 1;
  text-align: left;
  justify-content: flex-start;
}
@media (max-width: 991.98px) {
  .home-slider .carousel-control-prev {
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .home-slider .carousel-control-prev {
    padding-left: 40px;
  }
}
@media (min-width: 768px) {
  .home-slider__mobile-video-cover {
    display: none;
  }
}
.home-slider__teaser {
  height: 60%;
  position: relative;
  top: -50px;
  width: calc(100% - 36px);
  margin: 0 auto;
  padding: 16px;
  background-color: #fff;
  transform: translateZ(0);
}
@media (min-width: 768px) {
  .home-slider__teaser {
    background-color: transparent;
    top: auto;
    position: absolute;
    width: 100%;
    text-align: right;
    padding: 0 50px;
    bottom: 30px;
    left: -100%;
    right: -100%;
  }
}
@media (min-width: 1400px) {
  .home-slider__teaser {
    max-width: 1339px;
    padding: 0;
  }
}
@media (min-width: 768px) {
  .home-slider__slide--center .home-slider__teaser {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .home-slider__slide--left .home-slider__teaser {
    text-align: left;
  }
}
@media (min-width: 768px) {
  .home-slider__slide--right .home-slider__teaser {
    text-align: right;
  }
}
.home-slider__teaser__align-left {
  text-align: left;
}
.home-slider__teaser__align-right {
  text-align: right;
}
.home-slider__headline {
  background-color: #00AEEF;
  color: #fff;
  display: inline-flex;
  vertical-align: top;
  text-transform: uppercase;
  font-weight: 400;
  margin: 0;
  font-size: 15px;
  padding: 2px 10px;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .home-slider__headline {
    padding: 3px 16px;
    font-size: 18px;
    letter-spacing: 0.2px;
  }
}
@media (min-width: 1200px) {
  .home-slider__headline {
    padding: 0.2595vw 1.194vw;
    font-size: 1.09vw;
  }
}
.home-slider__description {
  margin: 15px 0 0 0;
  color: #201d1d;
  font-weight: 700;
  margin-top: 7px;
  padding: 0;
  letter-spacing: 0;
  line-height: 1.4;
  font-size: 28px;
}
@media (min-width: 768px) {
  .home-slider__description-left {
    margin-right: auto !important;
  }
}
@media (min-width: 768px) {
  .home-slider__description-right {
    margin-left: auto !important;
  }
}
@media (min-width: 768px) {
  .home-slider__description {
    width: 50%;
    font-size: 30px;
    letter-spacing: 0.5px;
    color: #fff;
    line-height: 1.5;
    text-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  }
}
@media (min-width: 1200px) {
  .home-slider__description {
    width: 50%;
    margin: 1.038vw 0 0 0;
    font-size: 30px;
    text-shadow: 0 0.519vw 1.661vw rgba(0, 0, 0, 0.3);
  }
}
@media (min-width: 1400px) {
  .home-slider__description {
    font-size: 48px;
  }
}
.home-slider__text-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
  flex-direction: column;
  align-content: end;
}
@media (max-width: 768px) {
  .home-slider__text-line {
    text-align: center !important;
  }
}
.home-slider__text-line span {
  padding: 5px;
  margin-bottom: 5px;
  display: table;
  line-height: 1;
  width: fit-content;
  align-self: end;
}
.home-slider__text-line-left {
  align-content: center;
  text-align: left;
}
.home-slider__text-line-left span {
  align-self: center;
}
@media (min-width: 768px) {
  .home-slider__text-line-left {
    align-content: start;
  }
  .home-slider__text-line-left span {
    align-self: start;
  }
}
.home-slider__text-line-right {
  align-content: center;
  text-align: right;
}
.home-slider__text-line-right span {
  align-self: center;
}
@media (min-width: 768px) {
  .home-slider__text-line-right {
    align-content: end;
  }
  .home-slider__text-line-right span {
    align-self: end;
  }
}
.home-slider__text-optional {
  font-size: 16px;
  font-weight: 400;
}
@media (min-width: 768px) {
  .home-slider__text-optional {
    display: block;
  }
}
@media (max-width: 768px) {
  .home-slider__text-optional {
    display: none;
  }
}
@media (min-width: 1400px) {
  .home-slider__text-optional {
    font-size: 18px;
  }
}
.home-slider__action {
  font-size: 18px !important;
  margin-top: 12px;
  margin-bottom: 12px;
  min-width: unset !important;
  height: 56px !important;
  min-height: unset !important;
}
@media (min-width: 1200px) {
  .home-slider__action {
    margin-top: 1.557vw;
    margin-bottom: 0;
  }
}
.home-slider .glide__bullet {
  width: 14px;
  height: 14px;
  margin: 0 14px;
  background-color: #fff;
  border: 1px solid #D8D1C9;
  box-shadow: none;
}
@media (min-width: 768px) {
  .home-slider .glide__bullet {
    border: none;
  }
}
.home-slider .glide__bullet:hover {
  border: 1px solid #D8D1C9;
}
@media (min-width: 768px) {
  .home-slider .glide__bullet:hover {
    border: none;
  }
}
.home-slider .glide__bullet--active {
  background-color: #00AEEF;
  border: none;
}
.home-slider .glide__arrow--left {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22%20fill%3D%22none%22%20stroke%3D%22%23d6d8da%22%20stroke-width%3D%223%22/%3E%3C/svg%3E");
  left: -5px;
}
@media (min-width: 1500px) {
  .home-slider .glide__arrow--left {
    left: 30px;
  }
}
.home-slider .glide__arrow--right {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,2.13a1.13,1.13,0,0,0,.33.8L24.28,18l-15,15.07a1.13,1.13,0,0,0,0,1.6,1.12,1.12,0,0,0,1.59,0L26.67,18.8a1.13,1.13,0,0,0,0-1.6L10.92,1.33A1.13,1.13,0,0,0,9,2.13Z%22%20fill%3D%22none%22%20stroke%3D%22%23d6d8da%22%20stroke-width%3D%223%22/%3E%3C/svg%3E");
  right: -5px;
}
@media (min-width: 1500px) {
  .home-slider .glide__arrow--right {
    right: 30px;
  }
}
@media (max-width: 768px) {
  .home-slider__text-line span {
    display: block !important;
    color: #00AEEF;
    margin-bottom: 0px;
    background-color: transparent !important;
    box-shadow: none !important;
  }
  .home-slider__teaser__align-left {
    text-align: center !important;
  }
  .home-slider__teaser__align-right {
    text-align: center !important;
  }
}

.actions {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
}
.actions__title {
  font-size: 28px;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 35px;
  text-align: center;
}
@media (min-width: 992px) {
  .actions__title {
    text-align: left;
    font-size: 36px;
    margin-bottom: 35px;
    margin-left: 35px;
  }
}
.hero + .actions {
  margin-top: -8px;
}
@media (min-width: 768px) {
  .hero + .actions {
    margin-top: 30px;
  }
}
@media (min-width: 1656px) {
  .hero + .actions {
    margin-top: 30px;
  }
}
.actions__row {
  display: flex;
  align-items: stretch;
}
@media (min-width: 992px) {
  .actions__row {
    margin: 0;
  }
}
.actions__row--more {
  text-align: right;
  margin-bottom: 52px;
}
@media (max-width: 992px) {
  .actions__row--more {
    margin-top: 40px;
    text-align: center;
  }
}
@media (min-width: 992px) {
  .actions__row--more {
    margin-top: 50px;
    margin-bottom: 70px;
  }
}
.actions__hr {
  border: none;
  border-top: 1px solid #00AEEF;
  margin: 0;
}
.actions__more {
  position: relative;
  transform: translateY(-50%);
  background-color: #fff;
  padding: 1rem;
  font-weight: 400;
  min-height: 45px;
  height: 45px;
}
.actions__control {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media (max-width: 992px) {
  .actions__control {
    display: block;
  }
}
.actions__prev {
  width: 50px;
  height: 50px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-size: 34px 34px;
  background-repeat: no-repeat;
  background-position: left 6px center;
  background-color: #fff;
  border-radius: 0px;
  z-index: 1;
  position: absolute;
  left: -20px;
  top: calc(50% - 25px);
}
.actions__prev:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
.tab-navigation .actions__prev:focus {
  background-color: rgba(32, 29, 29, 0.03);
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.actions__next {
  width: 50px;
  height: 50px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-size: 34px 34px;
  background-repeat: no-repeat;
  background-position: right 6px center;
  background-color: #fff;
  border-radius: 0px;
  z-index: 1;
  position: absolute;
  right: -20px;
  top: calc(50% - 25px);
}
.actions__next:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
.tab-navigation .actions__next:focus {
  background-color: rgba(32, 29, 29, 0.03);
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}

.teaser {
  flex: 1 0 100%;
  position: relative;
  overflow: hidden;
}
@media (min-width: 480px) {
  .teaser {
    margin-right: 24px;
    flex: 1 0 calc(50% - 12px);
  }
}
@media (min-width: 992px) {
  .teaser {
    margin-right: 30px;
    flex: 1 0 calc(33.333% - 30px);
  }
  .teaser .glide--swipeable {
    cursor: auto !important;
  }
}
.teaser:last-child {
  margin-right: 0;
}
.teaser--mobile {
  margin: 0 20px 50px;
  flex: 1 0 auto;
}
.teaser--mobile:last-child {
  margin-right: 20px;
}
@media (min-width: 992px) {
  .teaser--mobile {
    margin: 0 30px 0 0;
    flex: 1 0 calc(33.333% - 30px);
  }
  .teaser--mobile:last-child {
    margin-right: 0;
  }
}
.teaser__canvas {
  background-color: #D8D1C9;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.ie .teaser__canvas {
  display: none;
}
.teaser__headline {
  background-color: #00AEEF;
  color: #fff;
  margin: 0;
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  padding: 12px 20px;
  letter-spacing: 0.6px;
  height: 89px;
}
@media (min-width: 992px) {
  .teaser__headline {
    height: 110px;
    padding: 5px 40px;
    font-size: 21px;
  }
}
.teaser__headline-text {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
.teaser__figure {
  margin: 0;
  position: relative;
  display: block;
}
.teaser__figure--gradient:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0) 20%, #2653B9 100%);
}
.teaser__figure figure {
  margin: 0;
}
.teaser__content {
  position: absolute;
  right: 20px;
  text-align: right;
  z-index: 2;
  color: #fff;
  line-height: 1.2;
  font-weight: 500;
  font-size: 20px;
  bottom: 80px;
}
@media (min-width: 768px) {
  .teaser__content {
    font-size: 25px;
    bottom: 100px;
  }
}
.teaser__button {
  position: absolute;
  right: 20px;
  bottom: 20px;
  z-index: 2;
  border: none;
  background-color: #FFFF00 !important;
  color: #201d1d !important;
  font-size: 16px;
  padding: 20px 26px;
}
@media (min-width: 768px) {
  .teaser__button {
    font-size: 19px;
    padding: 30px 36px;
  }
}
.teaser__button--yellow {
  background-color: #f9c412 !important;
  color: #201d1d !important;
  bottom: 28px;
  font-size: 16px;
  padding: 20px 26px;
}
@media (min-width: 768px) {
  .teaser__button--yellow {
    font-size: 19px;
    padding: 24px 24px;
  }
}
.teaser__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .teaser__img {
  position: absolute;
  left: 0;
  top: 0;
}
.teaser__overlink {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s;
}
.teaser__overlink::before, .teaser__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.teaser__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.teaser__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.teaser__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.teaser__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.teaser__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.teaser__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.teaser__overlink::before, .teaser__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.teaser__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.teaser__overlink::before, .teaser__overlink::after {
  background-color: #fff;
}
.teaser__overlink:hover::before {
  opacity: 0;
}
.teaser__overlink.mdc-ripple-upgraded--background-focused::before, .teaser__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.teaser__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.teaser__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.15;
}
.teaser__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.15;
}
.tab-navigation .teaser__overlink:focus {
  outline: none;
}
.tab-navigation .teaser__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .teaser__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.teaser__overlink:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.newsletter {
  background-color: #2653B9;
  color: #fff;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 1200px) {
  .newsletter {
    padding: 0 35px;
  }
}
.newsletter__figure {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  margin: 0;
}
.newsletter__canvas {
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
  display: block;
}
.newsletter__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .newsletter__img {
  position: absolute;
  left: 0;
  top: 0;
}
.newsletter__content {
  height: 100%;
  max-width: 400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
}
@media (min-width: 992px) {
  .newsletter__content {
    max-width: none;
  }
}
.newsletter__spacer {
  flex-grow: 1;
}
.newsletter__button {
  text-transform: none;
}
@media (max-width: 1199px) {
  .newsletter__button {
    position: absolute;
    top: 0;
    right: -0.2px;
    width: 48.2px;
    height: 48.2px;
    border-radius: 0;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 24px 24px;
    min-width: 0;
    min-height: 0;
    padding: 0;
  }
}
@media (min-width: 1200px) {
  .newsletter__button {
    position: relative;
    width: 100%;
    margin-bottom: 14px;
  }
}
@media (max-width: 1199px) {
  .newsletter__button .mdc-button__label {
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    position: absolute;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }
}
.newsletter__header {
  color: #fff;
  margin: 0;
  height: 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 5px 0;
}
@media (min-width: 1200px) {
  .newsletter__header {
    height: 68px;
  }
}
@media (min-width: 1400px) {
  .newsletter__header {
    height: 110px;
  }
}
.newsletter__title {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.4;
  margin: 0;
}
@media (min-width: 1200px) {
  .newsletter__title {
    font-size: 21px;
  }
}
.newsletter__description {
  font-size: 13px;
  color: #fff;
  margin: 0;
}
@media (min-width: 1200px) {
  .newsletter__description {
    display: none;
  }
}
.newsletter__checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
  border-color: #a3adec;
  background-color: rgba(0, 0, 0, 0);
}
.newsletter__checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.newsletter__checkbox .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background,
.newsletter__checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled ~ .mdc-checkbox__background {
  border-color: #a3adec;
  background-color: rgba(0, 0, 0, 0);
}
@keyframes mdc-checkbox-fade-in-background-FFA3ADECFFA3ADEC0000000000000000 {
  0% {
    border-color: #a3adec;
    background-color: rgba(0, 0, 0, 0);
  }
  50% {
    border-color: #a3adec;
    background-color: rgba(0, 0, 0, 0);
  }
}
@keyframes mdc-checkbox-fade-out-background-FFA3ADECFFA3ADEC0000000000000000 {
  0%, 80% {
    border-color: #a3adec;
    background-color: rgba(0, 0, 0, 0);
  }
  100% {
    border-color: #a3adec;
    background-color: rgba(0, 0, 0, 0);
  }
}
.newsletter__checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .newsletter__checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-in-background-FFA3ADECFFA3ADEC0000000000000000;
}
.newsletter__checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .newsletter__checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-out-background-FFA3ADECFFA3ADEC0000000000000000;
}
.newsletter__checkbox .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  color: #a3adec;
}
.newsletter__checkbox .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  border-color: #a3adec;
}
.newsletter__checkbox .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background::before,
.newsletter__checkbox .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background::before,
.newsletter__checkbox .mdc-checkbox__native-control[data-indeterminate=true] ~ .mdc-checkbox__background::before {
  background-color: #fff;
}
.newsletter__checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before, .newsletter__checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #fff;
}
.newsletter__checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before {
  opacity: 0.08;
}
.newsletter__checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before, .newsletter__checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.newsletter__checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after {
  transition: opacity 150ms linear;
}
.newsletter__checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after {
  transition-duration: 75ms;
  opacity: 0.24;
}
.newsletter__checkbox.mdc-checkbox--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24;
}
.newsletter__checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.newsletter__checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #fff;
}
.newsletter .was-validated .mdc-checkbox__native-control[required]:invalid ~ .mdc-checkbox__background {
  border-color: #F26A21 !important;
}
.newsletter .mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-floating-label:after {
  color: #7a7a7a;
}
.newsletter .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-floating-label,
.newsletter .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label {
  color: #7a7a7a;
}
.newsletter .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-floating-label:after,
.newsletter .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label:after {
  color: #7a7a7a;
}
.newsletter .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple {
  background-color: #00AEEF;
}
.newsletter .was-validated .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple {
  background-color: #F26A21;
}
.newsletter .was-validated .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-floating-label,
.newsletter .was-validated .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label {
  color: #F26A21;
}
.newsletter .was-validated .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-floating-label:after,
.newsletter .was-validated .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label:after {
  color: #F26A21;
}
.newsletter .mdc-form-field {
  color: #a3adec;
  align-items: flex-start;
  margin-bottom: 2px;
  font-weight: 300;
  position: relative;
}
.newsletter .mdc-form-field label {
  margin-top: 11px;
}
.newsletter .mdc-text-field {
  border-radius: 0;
  width: 100%;
  margin-bottom: 23px;
}
.newsletter .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {
  color: #201d1d;
}
.newsletter .mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label {
  color: #7a7a7a;
}
.newsletter .mdc-text-field:not(.mdc-text-field--disabled) {
  background-color: #fff;
}
@media (max-width: 1199px) {
  .newsletter .mdc-text-field {
    margin-bottom: 10px;
    height: 48px;
  }
}
.newsletter .mdc-text-field:before {
  display: none;
}
.newsletter .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(0, 0, 0, 0) !important;
}
.newsletter .mdc-line-ripple {
  height: 3px;
}
.newsletter .mdc-form-field > label a:hover, .newsletter .mdc-form-field > label a:focus {
  text-decoration: underline;
  color: #fff;
}
.newsletter .mdc-checkbox:before {
  background-color: transparent !important;
}
.newsletter .mdc-floating-label {
  font-weight: 300;
  font-size: 18px;
  overflow: visible;
}
.newsletter .mdc-floating-label--float-above {
  transform: translateY(-110%) scale(0.7);
}
.newsletter .mdc-text-field-helper-text {
  font-size: 13px;
}
.newsletter__more {
  margin: 16px 0 0 0;
  border-top: 1px solid #00AEEF;
  padding: 14px 0;
  font-size: 16px;
  line-height: 1.4;
  color: #00AEEF;
  font-weight: 300;
}
@media (min-width: 1200px) {
  .newsletter__more {
    font-size: 19px;
    margin: 24px 0 0 0;
    padding: 15px 0;
  }
}
.newsletter__more a {
  color: #fff;
  font-weight: 500;
}
.newsletter__more a:hover, .newsletter__more a:focus {
  text-decoration: underline;
}
@media (min-width: 1200px) {
  .article-view .newsletter__more {
    padding: 18px 0;
  }
}
.newsletter__group {
  position: relative;
  max-width: 400px;
  margin-bottom: 2rem;
}
.newsletter .mdc-text-field--invalid {
  overflow: visible;
}
.newsletter .site-form__validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: -10px;
  transform: translateY(50%);
  left: -2px;
  color: #F26A21;
  background-color: transparent;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  font-weight: 400;
  user-select: none;
}
@media (min-width: 375px) {
  .newsletter .site-form__validation-text {
    font-size: 12px;
  }
}
input:valid ~ .newsletter .site-form__validation-text {
  display: none !important;
}
.newsletter .was-validated input:invalid ~ .site-form__validation-text {
  display: block !important;
}
.newsletter .was-validated .mdc-text-field--invalid .site-form__validation-text {
  display: block;
}
.newsletter .was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
  display: block;
  position: static;
  padding-left: 0;
  padding-right: 0;
  background-color: transparent;
  margin: 6px 0 0 0;
  width: 100%;
  max-width: none;
  transform: none;
}
@media (min-width: 1656px) {
  .newsletter .was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
    padding-left: 44px;
  }
}
.newsletter .site-form__server-validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: -10px;
  transform: translateY(50%);
  left: -2px;
  color: #F26A21;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  font-weight: 400;
  user-select: none;
}
@media (min-width: 375px) {
  .newsletter .site-form__server-validation-text {
    font-size: 12px;
  }
}
.newsletter .server-side-validated .server-side--invalid ~ .site-form__server-validation-text {
  display: block;
}
.newsletter .was-validated .mdc-checkbox--invalid ~ .site-form__validation-text {
  display: block;
  bottom: 0;
  left: 41px;
}
.newsletter .mdc-checkbox__ripple:before {
  background-color: #fff !important;
}
.newsletter .mdc-checkbox__ripple:after {
  background-color: rgba(255, 255, 255, 0.3) !important;
}

.summary {
  background-color: #07bafd;
  color: #fff;
  padding: 35px 0 75px 0;
  order: 30;
}
@media (min-width: 1400px) {
  .summary {
    padding: 70px 0;
  }
}
.summary__title {
  font-weight: 700;
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: 0;
  margin-bottom: 40px;
}
@media (min-width: 375px) {
  .summary__title {
    font-size: 29px;
  }
}
@media (min-width: 1400px) {
  .summary__title {
    margin-left: 35px;
    letter-spacing: 0.7px;
    font-size: 48px;
    margin-bottom: 80px;
  }
}
.summary .splide {
  margin: 0 -23px;
}
@media (min-width: 992px) {
  .summary .splide {
    margin: 0;
  }
}
@media (min-width: 1400px) {
  .summary .splide {
    cursor: auto !important;
  }
}
@media (min-width: 1400px) {
  .summary .splide__list {
    transform: none !important;
    transition: none !important;
  }
}
.summary .splide__slide {
  padding: 0 13px;
}
@media (min-width: 992px) {
  .summary .splide__slide {
    padding: 0;
  }
}
@media (min-width: 1400px) {
  .summary .splide__slide {
    user-select: auto !important;
  }
}
.summary__item {
  position: relative;
  font-size: 13px;
  padding: 5px 45px;
}
@media (min-width: 375px) {
  .summary__item {
    font-size: 17px;
  }
}
@media (min-width: 1400px) {
  .summary__item {
    font-size: 19px;
    padding: 5px 25px;
  }
}
.summary__item:before {
  content: "";
  display: block;
  width: 50%;
  height: 242px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-right: none;
  position: absolute;
  left: 20px;
  top: 25px;
}
@media (min-width: 375px) {
  .summary__item:before {
    height: 312px;
  }
}
@media (min-width: 1400px) {
  .summary__item:before {
    left: 0;
  }
}
.summary__item:after {
  content: "";
  display: block;
  width: 50%;
  height: 50px;
  background-color: #07bafd;
  position: absolute;
  left: 35px;
  top: 0;
}
@media (min-width: 1400px) {
  .summary__item:after {
    left: 15px;
  }
}
.summary__text {
  height: 152px;
  letter-spacing: 0.5px;
  line-height: 36px;
  position: relative;
  z-index: 1;
  margin: 0;
}
@media (min-width: 1400px) {
  .summary__text {
    height: 192px;
  }
}
.summary__cost {
  font-size: 15px;
  display: inline-block;
  vertical-align: middle;
  background-color: #2653B9;
  padding: 2px 10px;
  font-weight: 500;
  margin-left: 10px;
  letter-spacing: 0;
  margin-bottom: -5px;
  position: relative;
  top: -5px;
}
@media (min-width: 375px) {
  .summary__cost {
    font-size: 22px;
  }
}
@media (min-width: 1400px) {
  .summary__cost {
    font-size: 26px;
  }
}
.summary__action {
  font-size: 14px;
  font-weight: 500;
}
@media (min-width: 375px) {
  .summary__action {
    font-size: 18px;
  }
}
@media (min-width: 1400px) {
  .summary__action {
    font-size: 21px;
  }
}
.summary__canvas {
  display: block;
  width: 100%;
  max-width: 250px;
  height: auto;
  margin: 0 auto;
  max-height: 204px;
}
@media (min-width: 360px) {
  .summary__canvas {
    max-height: 240px;
  }
}
@media (min-width: 375px) {
  .summary__canvas {
    max-height: none;
  }
}
@media (min-width: 1400px) {
  .summary__canvas {
    max-width: 286px;
  }
}
.ie .summary__canvas {
  display: none;
}
.summary__picture {
  display: block;
  border-radius: 300px;
  overflow: hidden;
  position: absolute;
  left: -100%;
  right: -100%;
  top: 157px;
  max-width: 184px;
  margin: auto;
}
@media (min-width: 360px) {
  .summary__picture {
    max-width: 240px;
  }
}
@media (min-width: 375px) {
  .summary__picture {
    max-width: 250px;
  }
}
@media (min-width: 1400px) {
  .summary__picture {
    max-width: 286px;
    top: 197px;
  }
}
.ie .summary__picture {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
}
.summary__img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
}
.summary .splide__pagination {
  bottom: -42px;
}
@media (min-width: 992px) {
  .summary .splide__pagination {
    display: flex;
  }
}
@media (min-width: 1200px) {
  .summary .splide__pagination {
    display: none;
  }
}
.summary .splide__pagination__page {
  width: 14px;
  height: 14px;
  margin: 0 14px;
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: none;
  opacity: 1;
}
.summary .splide__pagination__page:hover {
  border: none;
}
.summary .splide__pagination__page.is-active {
  background-color: #fff;
  border: none;
}

.deco-365 {
  width: 100px;
  margin: 0 auto;
  height: auto;
  padding: 0;
  overflow: hidden;
  display: block;
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20   xmlns:xlink%3D%22http://www.w3.org/1999/xlink%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%20231%20248%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22e62ac7d4-1afd-466e-be04-cef89021af9a%22%20x1%3D%22115.5%22%20y1%3D%221%22%20x2%3D%22115.5%22%20y2%3D%22247%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23009fe3%22/%3E%3Cstop%20offset%3D%220.45%22%20stop-color%3D%22%23008dca%22/%3E%3Cstop%20offset%3D%220.64%22%20stop-color%3D%22%23009fe3%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23008eca%22/%3E%3C/linearGradient%3E%3ClinearGradient%20id%3D%22af33fb87-471e-41da-a6b7-ed3bbdddb214%22%20x1%3D%22115.5%22%20y1%3D%2291%22%20x2%3D%22115.5%22%20y2%3D%22143%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220.23%22%20stop-color%3D%22%23fff%22/%3E%3Cstop%20offset%3D%220.79%22%20stop-color%3D%22%23cccbcb%22/%3E%3C/linearGradient%3E%3ClinearGradient%20id%3D%22ea2772c5-5f80-4cb9-9196-ef7b1f049876%22%20x1%3D%22115.5%22%20y1%3D%22145%22%20x2%3D%22115.5%22%20y2%3D%22197%22%20xlink:href%3D%22%23af33fb87-471e-41da-a6b7-ed3bbdddb214%22/%3E%3ClinearGradient%20id%3D%22b804de10-04a7-49d6-8293-b61a3162ae7b%22%20x1%3D%22114.99%22%20y1%3D%22101.94%22%20x2%3D%22114.99%22%20y2%3D%22143%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220.23%22%20stop-color%3D%22%2318a8e1%22/%3E%3Cstop%20offset%3D%220.79%22%20stop-color%3D%22%23008dca%22/%3E%3C/linearGradient%3E%3ClinearGradient%20id%3D%22fb46bc1a-c6d2-4bad-9800-737f4de55d26%22%20x1%3D%22115.74%22%20y1%3D%22145%22%20x2%3D%22115.74%22%20y2%3D%22186.66%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220.23%22%20stop-color%3D%22%231a9dd9%22/%3E%3Cstop%20offset%3D%220.79%22%20stop-color%3D%22%23008fcc%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20id%3D%22fcd517f9-c52b-44c2-970c-05b23dbcd5c1%22%20data-name%3D%22365body%22%20d%3D%22M201,247H30A29,29,0,0,1,1,218V30A29,29,0,0,1,30,1H201a29,29,0,0,1,29,29V218A29,29,0,0,1,201,247Z%22%20fill%3D%22url(%23e62ac7d4-1afd-466e-be04-cef89021af9a)%22/%3E%3Cpath%20id%3D%22af27a7fd-3961-48ef-9128-9d8a635ee970%22%20data-name%3D%22365ct%22%20d%3D%22M14,143V96.51A5.51,5.51,0,0,1,19.51,91h54A5.51,5.51,0,0,1,79,96.51V143Zm134,0V96.51A5.51,5.51,0,0,0,142.49,91h-54A5.51,5.51,0,0,0,83,96.51V143Zm69,0V96.51A5.51,5.51,0,0,0,211.49,91h-54A5.51,5.51,0,0,0,152,96.51V143Z%22%20fill%3D%22url(%23af33fb87-471e-41da-a6b7-ed3bbdddb214)%22/%3E%3Cpath%20id%3D%22adef16bf-22ce-433b-9cc7-61532705090b%22%20data-name%3D%22365cb%22%20d%3D%22M79,145v46.49A5.51,5.51,0,0,1,73.49,197h-54A5.51,5.51,0,0,1,14,191.49V145Zm4,0v46.49A5.51,5.51,0,0,0,88.51,197h54a5.51,5.51,0,0,0,5.51-5.51V145Zm69,0v46.49a5.51,5.51,0,0,0,5.51,5.51h54a5.51,5.51,0,0,0,5.51-5.51V145Z%22%20fill%3D%22url(%23ea2772c5-5f80-4cb9-9196-ef7b1f049876)%22/%3E%3Cpath%20id%3D%22ae60a111-9801-4773-bacb-1335e60cc7dc%22%20data-name%3D%22365texts%22%20d%3D%22M217.5,89H14V87H217.5Zm0,110H14v2H217.5ZM41,82V76h-.16a17.1,17.1,0,0,1-5.15,5.41,13.4,13.4,0,0,1-7.34,1.86q-6.83,0-10.59-4.08T14,68.08V38H24V66a8.38,8.38,0,0,0,2,6,7.58,7.58,0,0,0,5.77,2.13,8.27,8.27,0,0,0,6.7-3A11.36,11.36,0,0,0,41,63.58V38H51V82ZM66,45h.24a14.48,14.48,0,0,1,5.35-5.56,15.34,15.34,0,0,1,7.81-1.9q6.91,0,10.75,4T94,52.63V82H83V54.13A8.72,8.72,0,0,0,81,48a7.43,7.43,0,0,0-5.76-2.21,8.74,8.74,0,0,0-3.73.78,8.34,8.34,0,0,0-2.9,2.21,10.36,10.36,0,0,0-1.9,3.39A12.71,12.71,0,0,0,66,56.42V82H56V38H66ZM99,21h10V31H99Zm0,17h10V82H99Zm33.86,44.85a18.46,18.46,0,0,1-14.47-6.58,21.37,21.37,0,0,1-4-7.18,29.25,29.25,0,0,1,0-17.82,22,22,0,0,1,4-7.18,18.32,18.32,0,0,1,6.19-4.77,18.84,18.84,0,0,1,8.18-1.73,19.44,19.44,0,0,1,6.78,1.13,16.24,16.24,0,0,1,5.27,3.13,16.06,16.06,0,0,1,3.67,4.85,20.79,20.79,0,0,1,1.94,6.3h-9.09a10,10,0,0,0-2.82-5.58,7.93,7.93,0,0,0-5.68-2,9.15,9.15,0,0,0-4.51,1.08,9,9,0,0,0-3.22,3.09,15.2,15.2,0,0,0-1.94,4.73,25.25,25.25,0,0,0-.66,5.94,24.34,24.34,0,0,0,.66,5.82,14.63,14.63,0,0,0,1.94,4.65,9.31,9.31,0,0,0,3.22,3.09,8.86,8.86,0,0,0,4.51,1.13,8.09,8.09,0,0,0,6.12-2.33,10.44,10.44,0,0,0,2.6-6.58h9.09a20.46,20.46,0,0,1-1.54,6.86,15.83,15.83,0,0,1-3.63,5.3A16.7,16.7,0,0,1,140,81.61,19.21,19.21,0,0,1,132.86,82.85Zm40.26,1.07a20.78,20.78,0,0,1-8.89-1.84,19.44,19.44,0,0,1-6.64-5,21.87,21.87,0,0,1-4.15-7.46,28.7,28.7,0,0,1-1.44-9.2,28.19,28.19,0,0,1,1.48-9.29,22.46,22.46,0,0,1,4.19-7.46,19.27,19.27,0,0,1,6.52-5,19.51,19.51,0,0,1,8.39-1.79,19.28,19.28,0,0,1,8.11,1.62,18.43,18.43,0,0,1,6.17,4.63,22.58,22.58,0,0,1,4.51,8.54A38.59,38.59,0,0,1,192.77,63h-31a17.16,17.16,0,0,0,3.38,9.29,9.71,9.71,0,0,0,8,3.54,10.28,10.28,0,0,0,5.86-1.54,8.57,8.57,0,0,0,3.3-4.29H192a19.69,19.69,0,0,1-2.37,5.54,16.82,16.82,0,0,1-4,4.42,18.11,18.11,0,0,1-5.55,2.91A21.85,21.85,0,0,1,173.12,83.92Zm-.55-38.44a8.76,8.76,0,0,0-7.31,3.18A16.4,16.4,0,0,0,162.14,57H182.4q-.32-5.4-2.86-8.46A8.59,8.59,0,0,0,172.57,45.48ZM192,38h6V33q0-6.63,3.27-9.74a11,11,0,0,1,4.67-2.43,23.26,23.26,0,0,1,6.51-.68,43.11,43.11,0,0,1,4.55.26v7.76a39.26,39.26,0,0,0-4.3,0,7,7,0,0,0-2.75.68,3.09,3.09,0,0,0-1.5,1.66,8,8,0,0,0-.45,3V38h9v7h-9V82H198V45h-6ZM14.13,205.33h7.08a6.73,6.73,0,0,1,2.43.4,4.36,4.36,0,0,1,1.73,1.14,5.15,5.15,0,0,1,1,1.59,5.32,5.32,0,0,1,.36,2,5.86,5.86,0,0,1-.36,2.1,4.33,4.33,0,0,1-1.05,1.59,4.82,4.82,0,0,1-1.7,1,6.53,6.53,0,0,1-2.3.37H17.21v6.16H14.13Zm3.08,7.77h3.65a2.9,2.9,0,0,0,2.12-.71,2.52,2.52,0,0,0,.72-1.89,2.42,2.42,0,0,0-.73-1.9A3,3,0,0,0,20.9,208H17.21Zm16.21,9a6.15,6.15,0,0,1-2.47-.48,5.78,5.78,0,0,1-1.9-1.32,6.09,6.09,0,0,1-1.21-2,7,7,0,0,1-.43-2.43,7.06,7.06,0,0,1,.43-2.46,6.09,6.09,0,0,1,1.21-2,5.45,5.45,0,0,1,1.9-1.3,6.15,6.15,0,0,1,2.47-.48,6.07,6.07,0,0,1,2.46.48,5.6,5.6,0,0,1,1.89,1.3,5.71,5.71,0,0,1,1.19,2,7.06,7.06,0,0,1,.42,2.46,7,7,0,0,1-.42,2.43,5.71,5.71,0,0,1-1.19,2,6,6,0,0,1-1.89,1.32A6.07,6.07,0,0,1,33.42,222.05Zm0-2.11a2.75,2.75,0,0,0,2.33-1.17,4.11,4.11,0,0,0,.61-1.3,6.36,6.36,0,0,0,.2-1.62,6.52,6.52,0,0,0-.2-1.64,4.23,4.23,0,0,0-.61-1.32,2.63,2.63,0,0,0-1-.87,2.8,2.8,0,0,0-1.35-.31A2.88,2.88,0,0,0,32,212a2.74,2.74,0,0,0-1,.87,4,4,0,0,0-.59,1.32,6.52,6.52,0,0,0-.2,1.64,6.36,6.36,0,0,0,.2,1.62,3.88,3.88,0,0,0,.59,1.3,2.78,2.78,0,0,0,2.36,1.17Zm7.83-10h2.71v1.78H44a4.37,4.37,0,0,1,1.44-1.54,3.89,3.89,0,0,1,2.08-.55,3.4,3.4,0,0,1,1.93.55,3.36,3.36,0,0,1,1.2,1.65h0a4.63,4.63,0,0,1,1.65-1.67,4.15,4.15,0,0,1,2-.53,3.6,3.6,0,0,1,2.8,1.09,4.27,4.27,0,0,1,1,3v8H55.4v-7.59a2.28,2.28,0,0,0-.53-1.59,1.79,1.79,0,0,0-1.39-.57,2.17,2.17,0,0,0-1.7.77,3,3,0,0,0-.67,2v6.95h-2.8v-7.59a2.41,2.41,0,0,0-.48-1.59,1.69,1.69,0,0,0-1.36-.57,2.14,2.14,0,0,0-.93.21,2.58,2.58,0,0,0-1.32,1.45,3.25,3.25,0,0,0-.2,1.14v6.95H41.23ZM68.16,221.7a1.54,1.54,0,0,1-.25-.56,4.85,4.85,0,0,1-.15-1h0a5.07,5.07,0,0,1-1.43,1.29A4.41,4.41,0,0,1,64,222a5.41,5.41,0,0,1-1.59-.22,3.34,3.34,0,0,1-1.27-.66,3.07,3.07,0,0,1-.83-1.08,3.45,3.45,0,0,1-.31-1.51,3.35,3.35,0,0,1,.36-1.64,3,3,0,0,1,1-1.05,5.24,5.24,0,0,1,1.52-.6,18.46,18.46,0,0,1,1.94-.34,7.91,7.91,0,0,0,2.17-.5,1.12,1.12,0,0,0,.73-1.11,1.57,1.57,0,0,0-.53-1.23,2.33,2.33,0,0,0-1.58-.46,2.69,2.69,0,0,0-1.77.5,1.88,1.88,0,0,0-.63,1.39H60.59a3.62,3.62,0,0,1,.34-1.44,3.46,3.46,0,0,1,1-1.22,4.79,4.79,0,0,1,1.55-.85,6.73,6.73,0,0,1,2.18-.32,8.75,8.75,0,0,1,1.79.16,3.88,3.88,0,0,1,1.35.52,3.6,3.6,0,0,1,1.67,3.35v6.18a3.64,3.64,0,0,0,.13,1.12.94.94,0,0,0,.31.53v.2Zm-3.32-1.63a3.31,3.31,0,0,0,1.27-.23,2.9,2.9,0,0,0,.93-.59,2.61,2.61,0,0,0,.57-.84,2.56,2.56,0,0,0,.2-1v-1.74a4,4,0,0,1-1,.45c-.41.13-.83.23-1.25.32a6.73,6.73,0,0,0-2,.63,1.42,1.42,0,0,0-.71,1.35,1.67,1.67,0,0,0,.17.78,1.29,1.29,0,0,0,.44.51,1.81,1.81,0,0,0,.65.26A3.87,3.87,0,0,0,64.84,220.07Zm13.26,5.72a6.75,6.75,0,0,1-3.76-.91,3.53,3.53,0,0,1-1.61-2.59h2.69c.19,1,1.07,1.45,2.64,1.45,1.89,0,2.84-.85,2.84-2.57v-.29c0-.32,0-.62,0-.9s0-.52,0-.72h-.07a3.57,3.57,0,0,1-3.32,1.8,5,5,0,0,1-2-.4,4.71,4.71,0,0,1-1.63-1.12,5.24,5.24,0,0,1-1.09-1.77,6.67,6.67,0,0,1-.39-2.36,6.93,6.93,0,0,1,.38-2.39,5.68,5.68,0,0,1,1-1.82,4.59,4.59,0,0,1,1.57-1.15,4.79,4.79,0,0,1,2-.41,3.66,3.66,0,0,1,3.47,1.83h0V210h2.7v11a5.4,5.4,0,0,1-.38,2.15,4.11,4.11,0,0,1-1.09,1.52,4.52,4.52,0,0,1-1.76.9A8.59,8.59,0,0,1,78.1,225.79Zm0-6.89a3.07,3.07,0,0,0,1.35-.27,2.32,2.32,0,0,0,.91-.75,3,3,0,0,0,.52-1.13,5.9,5.9,0,0,0,.17-1.43,4.12,4.12,0,0,0-.73-2.54,2.62,2.62,0,0,0-2.24-1,2.5,2.5,0,0,0-2.12,1,4.2,4.2,0,0,0-.72,2.58,4.09,4.09,0,0,0,.74,2.59A2.52,2.52,0,0,0,78.06,218.9Zm15.64,2.8a1.54,1.54,0,0,1-.25-.56,4.85,4.85,0,0,1-.15-1h0a5.07,5.07,0,0,1-1.43,1.29,4.41,4.41,0,0,1-2.27.51,5.41,5.41,0,0,1-1.59-.22,3.42,3.42,0,0,1-1.27-.66,3.07,3.07,0,0,1-.83-1.08,3.45,3.45,0,0,1-.31-1.51,3.35,3.35,0,0,1,.36-1.64,3,3,0,0,1,1-1.05,5.36,5.36,0,0,1,1.52-.6,18.46,18.46,0,0,1,1.94-.34,8,8,0,0,0,2.18-.5,1.12,1.12,0,0,0,.72-1.11,1.54,1.54,0,0,0-.53-1.23,2.33,2.33,0,0,0-1.58-.46,2.69,2.69,0,0,0-1.77.5,1.88,1.88,0,0,0-.63,1.39H86.13a3.8,3.8,0,0,1,.34-1.44,3.58,3.58,0,0,1,1-1.22A4.79,4.79,0,0,1,89,210a6.77,6.77,0,0,1,2.18-.32,8.75,8.75,0,0,1,1.79.16,3.88,3.88,0,0,1,1.35.52A3.61,3.61,0,0,1,96,213.67v6.18a4,4,0,0,0,.12,1.12.89.89,0,0,0,.32.53v.2Zm-3.32-1.63a3.31,3.31,0,0,0,1.27-.23,2.9,2.9,0,0,0,.93-.59,2.61,2.61,0,0,0,.57-.84,2.56,2.56,0,0,0,.2-1v-1.74a4,4,0,0,1-1,.45,12.7,12.7,0,0,1-1.25.32,6.73,6.73,0,0,0-2,.63,1.42,1.42,0,0,0-.71,1.35,1.67,1.67,0,0,0,.17.78,1.37,1.37,0,0,0,.44.51,1.81,1.81,0,0,0,.65.26A3.87,3.87,0,0,0,90.38,220.07ZM98.43,210h2.71v1.78h.06a4.37,4.37,0,0,1,1.44-1.54,3.89,3.89,0,0,1,2.08-.55,3.4,3.4,0,0,1,1.93.55,3.36,3.36,0,0,1,1.2,1.65h0a4.63,4.63,0,0,1,1.65-1.67,4.15,4.15,0,0,1,2-.53,3.6,3.6,0,0,1,2.8,1.09,4.27,4.27,0,0,1,1,3v8H112.6v-7.59a2.28,2.28,0,0,0-.53-1.59,1.79,1.79,0,0,0-1.39-.57,2.17,2.17,0,0,0-1.7.77,3,3,0,0,0-.67,2v6.95h-2.8v-7.59a2.41,2.41,0,0,0-.48-1.59,1.69,1.69,0,0,0-1.36-.57,2.14,2.14,0,0,0-.93.21,2.58,2.58,0,0,0-1.32,1.45,3.25,3.25,0,0,0-.2,1.14v6.95H98.43Zm30.14,12.1a6.07,6.07,0,0,1-2.46-.48,6,6,0,0,1-1.89-1.32,5.71,5.71,0,0,1-1.19-2,7,7,0,0,1-.42-2.43,7.06,7.06,0,0,1,.42-2.46,5.85,5.85,0,0,1,1.18-2,5.57,5.57,0,0,1,1.86-1.3,6.07,6.07,0,0,1,2.46-.48,6.5,6.5,0,0,1,2,.31,4.9,4.9,0,0,1,1.58.86,4.48,4.48,0,0,1,1.11,1.33,5.69,5.69,0,0,1,.58,1.73H131.1a2.58,2.58,0,0,0-.85-1.53,2.47,2.47,0,0,0-1.7-.56,3.06,3.06,0,0,0-1.36.29,2.61,2.61,0,0,0-1,.85,4.19,4.19,0,0,0-.59,1.3,6.45,6.45,0,0,0-.19,1.63,6.19,6.19,0,0,0,.19,1.59,4.08,4.08,0,0,0,.59,1.28,2.67,2.67,0,0,0,1,.84,2.81,2.81,0,0,0,1.36.31,2.5,2.5,0,0,0,1.83-.64,2.74,2.74,0,0,0,.79-1.8h2.72a5,5,0,0,1-.46,1.88,4.24,4.24,0,0,1-1.09,1.45,5,5,0,0,1-1.64,1A6.18,6.18,0,0,1,128.57,222.05Zm14.87-.35a1.54,1.54,0,0,1-.25-.56,4.85,4.85,0,0,1-.15-1h0a5.07,5.07,0,0,1-1.43,1.29,4.41,4.41,0,0,1-2.27.51,5.41,5.41,0,0,1-1.59-.22,3.42,3.42,0,0,1-1.27-.66,3.07,3.07,0,0,1-.83-1.08,3.45,3.45,0,0,1-.31-1.51,3.35,3.35,0,0,1,.36-1.64,3,3,0,0,1,1-1.05,5.18,5.18,0,0,1,1.51-.6,18.93,18.93,0,0,1,1.94-.34,8,8,0,0,0,2.18-.5,1.12,1.12,0,0,0,.72-1.11,1.56,1.56,0,0,0-.52-1.23,2.38,2.38,0,0,0-1.59-.46,2.69,2.69,0,0,0-1.77.5,1.88,1.88,0,0,0-.63,1.39h-2.64a3.8,3.8,0,0,1,.34-1.44,3.58,3.58,0,0,1,.95-1.22,4.79,4.79,0,0,1,1.55-.85,6.77,6.77,0,0,1,2.18-.32,8.75,8.75,0,0,1,1.79.16,4,4,0,0,1,1.36.52,3.62,3.62,0,0,1,1.67,3.35v6.18a4,4,0,0,0,.12,1.12.89.89,0,0,0,.32.53v.2Zm-3.32-1.63a3.31,3.31,0,0,0,1.27-.23,2.9,2.9,0,0,0,.93-.59,2.61,2.61,0,0,0,.57-.84,2.56,2.56,0,0,0,.2-1v-1.74a4,4,0,0,1-1,.45,12.7,12.7,0,0,1-1.25.32,6.83,6.83,0,0,0-2,.63,1.42,1.42,0,0,0-.71,1.35,1.67,1.67,0,0,0,.17.78,1.37,1.37,0,0,0,.44.51,1.81,1.81,0,0,0,.65.26A3.87,3.87,0,0,0,140.12,220.07Zm7-5.41,1.61-1.21v-8.12h2.82v6l1.8-1.36v2.22l-1.8,1.37v8.16H148.7v-6l-1.61,1.21Zm9.44,11h-.44l-.64,0-.61,0a2.19,2.19,0,0,1-.35,0V223.3h.15a.68.68,0,0,0,.19,0l.33,0,.36,0h.29a1.9,1.9,0,0,0,1.12-.29,1.67,1.67,0,0,0,.59-1c0-.06,0-.16,0-.31s0-.32,0-.51,0-.39,0-.59a2.13,2.13,0,0,0-.12-.55l-4-10.21h3l1.94,5.46c.11.36.24.76.36,1.18s.23.83.32,1.19.2.85.31,1.28h0c.1-.44.21-.87.33-1.3s.21-.76.33-1.18l.35-1.17,1.87-5.46H165l-4.55,12.41a12.59,12.59,0,0,1-.75,1.62,3.84,3.84,0,0,1-.84,1,2.65,2.65,0,0,1-1,.54A5,5,0,0,1,156.53,225.7Zm20.55-3.65a6.15,6.15,0,0,1-2.47-.48,5.63,5.63,0,0,1-3.08-3.29,7.21,7.21,0,0,1-.41-2.43,7.3,7.3,0,0,1,.41-2.46,6,6,0,0,1,1.19-2,5.57,5.57,0,0,1,1.86-1.3,6.05,6.05,0,0,1,2.45-.48,6.52,6.52,0,0,1,2,.31,4.9,4.9,0,0,1,1.58.86,4.31,4.31,0,0,1,1.1,1.33,5.45,5.45,0,0,1,.59,1.73h-2.73a2.63,2.63,0,0,0-.85-1.53,2.47,2.47,0,0,0-1.7-.56,3.06,3.06,0,0,0-1.36.29,2.53,2.53,0,0,0-1,.85,4,4,0,0,0-.59,1.3,6.44,6.44,0,0,0-.2,1.63,6.18,6.18,0,0,0,.2,1.59,3.87,3.87,0,0,0,.59,1.28,2.59,2.59,0,0,0,1,.84,2.81,2.81,0,0,0,1.36.31,2.52,2.52,0,0,0,1.83-.64,2.69,2.69,0,0,0,.78-1.8h2.73a5.15,5.15,0,0,1-.46,1.88,4.24,4.24,0,0,1-1.09,1.45,5,5,0,0,1-1.64,1A6.18,6.18,0,0,1,177.08,222.05Zm6.64-2.46,4.69-5.75.51-.55.57-.57.61-.59v-.07l-.86.07a6.53,6.53,0,0,1-.78.05h-4.3V210h9.22v1.91l-4.66,5.72a8,8,0,0,1-.58.61l-.61.6c-.24.22-.46.44-.68.66v.07l.9,0,.82,0,.83,0h4.27v2.29h-9.95Zm19.47,2.11a1.54,1.54,0,0,1-.25-.56,5,5,0,0,1-.14-1h-.05a5.07,5.07,0,0,1-1.43,1.29,4.4,4.4,0,0,1-2.26.51,5.43,5.43,0,0,1-1.6-.22,3.3,3.3,0,0,1-1.26-.66,3,3,0,0,1-.84-1.08,3.45,3.45,0,0,1-.31-1.51,3.24,3.24,0,0,1,.37-1.64,2.87,2.87,0,0,1,1-1.05,5.18,5.18,0,0,1,1.51-.6,18.93,18.93,0,0,1,1.94-.34,8,8,0,0,0,2.18-.5,1.12,1.12,0,0,0,.72-1.11,1.56,1.56,0,0,0-.52-1.23,2.36,2.36,0,0,0-1.59-.46,2.69,2.69,0,0,0-1.77.5,1.88,1.88,0,0,0-.63,1.39h-2.64A3.8,3.8,0,0,1,196,212a3.58,3.58,0,0,1,.95-1.22,4.9,4.9,0,0,1,1.55-.85,6.77,6.77,0,0,1,2.18-.32,8.75,8.75,0,0,1,1.79.16,4,4,0,0,1,1.36.52,3.62,3.62,0,0,1,1.67,3.35v6.18a4,4,0,0,0,.12,1.12.94.94,0,0,0,.32.53v.2Zm-3.32-1.63a3.4,3.4,0,0,0,1.28-.23,3,3,0,0,0,.92-.59,2.61,2.61,0,0,0,.57-.84,2.56,2.56,0,0,0,.2-1v-1.74a3.94,3.94,0,0,1-1,.45c-.42.13-.83.23-1.26.32a6.83,6.83,0,0,0-2,.63,1.41,1.41,0,0,0-.7,1.35,1.67,1.67,0,0,0,.16.78,1.37,1.37,0,0,0,.44.51,1.81,1.81,0,0,0,.65.26A3.94,3.94,0,0,0,199.87,220.07Zm12.76,2a6.17,6.17,0,0,1-3.93-1.1,3.88,3.88,0,0,1-1.53-2.88h2.69a2.1,2.1,0,0,0,.92,1.53,3.48,3.48,0,0,0,1.87.47,2.7,2.7,0,0,0,1.72-.45,1.44,1.44,0,0,0,.55-1.15,1.16,1.16,0,0,0-.22-.72,1.68,1.68,0,0,0-.62-.46,4,4,0,0,0-1-.31l-1.24-.25a15,15,0,0,1-1.6-.38,4.74,4.74,0,0,1-1.37-.6,3.2,3.2,0,0,1-1-1,3.24,3.24,0,0,1-.36-1.62,3.2,3.2,0,0,1,.34-1.48,3.13,3.13,0,0,1,.95-1.1,4.21,4.21,0,0,1,1.46-.69,7.41,7.41,0,0,1,1.89-.23,5.62,5.62,0,0,1,3.56,1,3.78,3.78,0,0,1,1.42,2.5h-2.67c-.2-1-1-1.57-2.33-1.57a2.35,2.35,0,0,0-1.48.4,1.24,1.24,0,0,0-.5,1,.89.89,0,0,0,.22.64,1.72,1.72,0,0,0,.62.41,4.82,4.82,0,0,0,.94.27l1.21.24c.56.11,1.1.23,1.63.37a4.92,4.92,0,0,1,1.42.61,3,3,0,0,1,1,1.08,3.57,3.57,0,0,1,.38,1.75,3.41,3.41,0,0,1-.38,1.63,3.46,3.46,0,0,1-1,1.18,5,5,0,0,1-1.6.71A7.89,7.89,0,0,1,212.63,222.07Z%22%20fill%3D%22%23fff%22/%3E%3Cpath%20id%3D%22ae5dd1ce-a641-412a-9e57-45f658cab4d5%22%20data-name%3D%22365t%22%20d%3D%22M159.2,143l6.55-39H210v15H177.34L174,137h.25a18.58,18.58,0,0,1,6-4.79,19.89,19.89,0,0,1,8.88-1.74,23.72,23.72,0,0,1,17.31,7.37,24.1,24.1,0,0,1,3.72,5.16Zm-17.8,0a26.11,26.11,0,0,0-3.7-5.1,24.89,24.89,0,0,0-8-5.68,23.44,23.44,0,0,0-9.65-2,18.88,18.88,0,0,0-10.15,2.59,23,23,0,0,0-7.16,7.23h-.2q1.2-23.39,15.32-23.39c3,0,5.22.77,6.72,2.31a12.16,12.16,0,0,1,3,5.08h15.52a26.39,26.39,0,0,0-2.84-8,23.63,23.63,0,0,0-5.22-6.46,23.24,23.24,0,0,0-7.61-4.3,29.9,29.9,0,0,0-9.9-1.54,29.49,29.49,0,0,0-12.93,2.59,25.16,25.16,0,0,0-9.15,7.56,35.49,35.49,0,0,0-6.42,13.68A69,69,0,0,0,87.22,143ZM36.18,124.24a13.06,13.06,0,0,1,2.3-4.06,11,11,0,0,1,3.78-2.88,12,12,0,0,1,5.35-1.12A9.7,9.7,0,0,1,58,126.53q0,5.17-3.21,7.82T46,137H42v6H65.72A27.22,27.22,0,0,0,63,141.88,21.21,21.21,0,0,0,71,136.06q3.31-4,3.32-10.59a24.52,24.52,0,0,0-1.94-9.94A20.28,20.28,0,0,0,67,108.12a24.57,24.57,0,0,0-8.37-4.59,34,34,0,0,0-10.66-1.59A31.11,31.11,0,0,0,36,104.06a26.3,26.3,0,0,0-8.78,5.77,24.46,24.46,0,0,0-5.51,8.58,31.07,31.07,0,0,0-2,10.59H35.27A15.94,15.94,0,0,1,36.18,124.24Z%22%20fill%3D%22url(%23b804de10-04a7-49d6-8293-b61a3162ae7b)%22/%3E%3Cpath%20id%3D%22f69ea227-0803-4aab-a586-efb026778fc8%22%20data-name%3D%22365b%22%20d%3D%22M173.23,149h-15l.67-4h19.31l-.33.15A12.93,12.93,0,0,0,173.23,149Zm38-4H190.7a12.72,12.72,0,0,1,3.11,2.33q3.69,3.75,3.69,10.41,0,6.45-3.63,10.41a12.21,12.21,0,0,1-9.44,4,13.2,13.2,0,0,1-8.66-2.76,11.86,11.86,0,0,1-4.2-7.36H155.5a25.89,25.89,0,0,0,2.79,10.3,24.9,24.9,0,0,0,6.29,7.77,27.5,27.5,0,0,0,9.14,4.9A36.54,36.54,0,0,0,185,186.66a32.51,32.51,0,0,0,11.63-2,26,26,0,0,0,9.13-5.81,26.43,26.43,0,0,0,5.94-9.06,33.92,33.92,0,0,0,.15-23.25C211.69,146,211.46,145.5,211.23,145Zm-68.79,0h-19.9a12.74,12.74,0,0,1,6.47,7.45,17.67,17.67,0,0,1,1,5.87,16,16,0,0,1-1,5.76,15,15,0,0,1-2.72,4.58,11.78,11.78,0,0,1-4.08,3,12.28,12.28,0,0,1-5.09,1.06,13.51,13.51,0,0,1-5.4-1.06,12.53,12.53,0,0,1-4.28-3,14,14,0,0,1-2.82-4.58,16.32,16.32,0,0,1-1-5.87,14.87,14.87,0,0,1,3.73-10.45A12.23,12.23,0,0,1,111,145H87.21v.08A68.26,68.26,0,0,0,89.15,162a35.11,35.11,0,0,0,6.12,13,26.93,26.93,0,0,0,9.35,8,28.12,28.12,0,0,0,13,2.86,29,29,0,0,0,11-2,26,26,0,0,0,8.7-5.73,26.62,26.62,0,0,0,5.77-8.83,31.87,31.87,0,0,0,0-22.57C142.94,146.06,142.69,145.53,142.44,145Zm-73.35,0H42v4h4.39q6.42,0,9.9,2.78t3.47,8.33c0,3.71-1.08,6.59-3.22,8.67s-5.15,3.11-9,3.11a16,16,0,0,1-6.28-1.11,11.87,11.87,0,0,1-4.28-3,12.89,12.89,0,0,1-2.55-4.39A20.54,20.54,0,0,1,33.33,158H17.61a33.4,33.4,0,0,0,2.25,11.78A23.16,23.16,0,0,0,26.39,179a28.25,28.25,0,0,0,9.28,5.11,39.14,39.14,0,0,0,12.45,1.78A38.73,38.73,0,0,0,59,184.39a27.49,27.49,0,0,0,9.08-4.5,21.48,21.48,0,0,0,6.23-7.61,24.3,24.3,0,0,0,2.29-10.95q0-8-3.82-12.83A18.83,18.83,0,0,0,69.09,145Z%22%20fill%3D%22url(%23fb46bc1a-c6d2-4bad-9800-737f4de55d26)%22/%3E%3Cpath%20d%3D%22M231,248H0V0H231Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.deco-365:before {
  display: block;
  content: "";
  padding-top: 107.36%;
}

.constanthelp {
  background-color: #2653B9;
  width: 100%;
  padding: 64px 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  color: #fff;
}
.constanthelp__wrapper {
  max-width: 1339px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
@media (min-width: 992px) {
  .constanthelp {
    padding: 64px 120px;
  }
}
.constanthelp__text-and-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}
@media (min-width: 992px) {
  .constanthelp__text-and-logo {
    flex-direction: row;
    align-items: normal;
  }
}
.constanthelp__logo-wrapper {
  width: 150px;
  height: 150px;
}
@media (min-width: 992px) {
  .constanthelp__logo-wrapper {
    width: 100px;
    height: 100px;
  }
}
.constanthelp__text-wrapper {
  width: 100%;
  text-align: center;
}
@media (min-width: 992px) {
  .constanthelp__text-wrapper {
    text-align: left;
  }
}
.constanthelp__buttons-wrapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 25px;
}
@media (min-width: 992px) {
  .constanthelp__buttons-wrapper {
    flex-direction: row;
    gap: 64px;
  }
}
.constanthelp__small-buttons-wrapper {
  align-items: center;
  width: 100%;
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .constanthelp__small-buttons-wrapper {
    flex-direction: row;
  }
}
.constanthelp__small-buttons-and-tooltip-wrapper {
  display: flex;
  flex-direction: column-reverse;
  gap: 12px;
  width: 100%;
}
@media (min-width: 992px) {
  .constanthelp__small-buttons-and-tooltip-wrapper {
    flex-direction: column;
  }
}
.constanthelp__tooltip {
  width: 100%;
  height: auto;
  color: white;
  border: 1px solid #fff;
  padding: 10px;
  position: relative;
  text-align: center;
  border-radius: 8px;
  top: -5px;
}
@media (max-width: 992px) {
  .constanthelp__tooltip {
    top: 7px !important;
  }
}
.constanthelp__tooltip p {
  margin: 0 !important;
}
.constanthelp__tooltip::before {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  left: var(--arrow-x, 50%);
  transform: translateX(-50%);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #fff;
  z-index: 1;
  bottom: 100%;
}
@media (max-width: 992px) {
  .constanthelp__tooltip::before {
    top: 100%;
    border-bottom: none;
    border-top: 10px solid #fff;
  }
}
.constanthelp__tooltip::after {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  left: var(--arrow-x);
  transform: translateX(-50%);
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #2653B9;
  z-index: 2;
  bottom: 100%;
}
@media (max-width: 992px) {
  .constanthelp__tooltip::after {
    top: 100%;
    border-bottom: none;
    border-top: 9px solid #2653B9;
  }
}
.constanthelp__default-value-buttons {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  height: 88px;
}
@media (min-width: 992px) {
  .constanthelp__default-value-buttons {
    width: 75%;
  }
}
.constanthelp__custom-value-button {
  width: 100%;
  display: flex;
  flex-direction: row;
}
@media (max-width: 992px) {
  .constanthelp__custom-value-button .constanthelp__single-button {
    width: 100%;
  }
}
@media (min-width: 992px) {
  .constanthelp__custom-value-button {
    width: 25%;
  }
}
.constanthelp__single-button {
  width: 100%;
  border: 4px solid #2653B9;
  overflow: hidden;
}
@media (max-width: 992px) {
  .constanthelp__single-button {
    width: 33.33%;
  }
}
@media (min-width: 992px) {
  .constanthelp__single-button {
    border: 1px solid #2653B9;
  }
}
.constanthelp__radio {
  position: absolute;
  opacity: 0;
  z-index: -1;
  height: 0;
}
.constanthelp__radio:focus + label {
  background-color: #3447b9;
}
.tab-navigation .constanthelp__radio:focus + label {
  box-shadow: inset 0 0 0 3px #fff;
}
.constanthelp__submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  position: relative;
  overflow: hidden;
  background-color: #FFFF00;
  border: none;
  height: 60px;
  width: 100%;
  max-width: 100%;
  font-weight: 500;
  border-radius: 4px;
  color: #201d1d;
  text-transform: uppercase;
  margin: 8px auto 0;
  transition: background-color 0.2s;
  --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);
}
.constanthelp__submit-button::before, .constanthelp__submit-button::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.constanthelp__submit-button::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.constanthelp__submit-button.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.constanthelp__submit-button.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.constanthelp__submit-button.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.constanthelp__submit-button.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.constanthelp__submit-button.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.constanthelp__submit-button::before, .constanthelp__submit-button::after {
  top: calc(50% - 50%);
  /* @noflip */
  left: calc(50% - 50%);
  width: 100%;
  height: 100%;
}
.constanthelp__submit-button.mdc-ripple-upgraded::before, .constanthelp__submit-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%);
}
.constanthelp__submit-button.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.constanthelp__submit-button::before, .constanthelp__submit-button::after {
  background-color: #201d1d;
}
.constanthelp__submit-button:hover::before {
  opacity: 0;
}
.constanthelp__submit-button.mdc-ripple-upgraded--background-focused::before, .constanthelp__submit-button:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.constanthelp__submit-button:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.constanthelp__submit-button:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.2;
}
.constanthelp__submit-button.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.2;
}
@media (min-width: 992px) {
  .constanthelp__submit-button {
    max-width: 200px;
  }
}
.constanthelp__submit-button:focus {
  outline: none;
}
.constanthelp__submit-button:hover:not(:disabled), .constanthelp__submit-button:focus:not(:disabled) {
  background-color: #d7d700;
}
.constanthelp__submit-button:active {
  padding: 0;
}
.constanthelp__submit-button .mdc-button__label {
  display: block;
  position: absolute;
}
.tab-navigation .constanthelp__submit-button:focus {
  outline: none;
}
.tab-navigation .constanthelp__submit-button:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .constanthelp__submit-button:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.constanthelp__custominput-field:not(.mdc-text-field--outlined) {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0px;
}
.constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input {
  font-size: 22px;
  font-weight: 500;
  height: 58px;
  line-height: 58px;
  background-color: #07bafd;
  color: #fff !important;
  text-align: center;
  caret-color: #fff;
  -moz-appearance: textfield;
}
@media (min-width: 992px) {
  .constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input {
    font-size: 26px;
    height: 68px;
    line-height: 68px;
  }
}
.constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input::-webkit-outer-spin-button, .constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input:checked ~ .constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input {
  font-size: 26px;
  height: 58px;
  line-height: 58px;
}
@media (min-width: 992px) {
  input:checked ~ .constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-text-field__input {
    font-size: 26px;
    height: 88px;
    line-height: 88px;
  }
}
.constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-floating-label {
  color: #fff !important;
  text-align: center;
  width: 100%;
  display: block;
  left: 0;
}
.constanthelp__custominput-field:not(.mdc-text-field--outlined) .mdc-floating-label--float-above {
  transform-origin: top center;
  top: 28.5px;
}
.constanthelp__label {
  margin: 0;
  display: block;
  text-align: center;
  width: 100%;
  height: 68px;
  line-height: 68px;
  background-color: #fff;
  color: #07bafd;
  user-select: none;
  cursor: pointer;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0;
  transition: background-color 0.2s;
}
@media (min-width: 992px) {
  .constanthelp__label {
    font-size: 26px;
    height: 68px;
    line-height: 68px;
  }
}
.constanthelp__label:hover {
  background-color: white;
}
input:checked + .constanthelp__label {
  background-color: #07bafd;
  font-size: 26px;
  height: 88px;
  line-height: 88px;
  color: #fff;
}
@media (min-width: 992px) {
  input:checked + .constanthelp__label {
    font-size: 34px;
    height: 88px;
    line-height: 88px;
  }
}
.constanthelp__label--custom {
  font-size: 18px;
  background-color: #2653B9;
  border: 1px solid #fff;
  color: #fff;
}
@media (min-width: 992px) {
  .constanthelp__label--custom {
    font-size: 21px;
  }
}
input:checked + .constanthelp__label--custom {
  font-size: 18px;
}
@media (min-width: 992px) {
  input:checked + .constanthelp__label--custom {
    font-size: 21px;
  }
}
.constanthelp .mdc-text-field--disabled, .constanthelp .mdc-text-field--hidden {
  display: none;
}
.constanthelp .mdc-text-field:after, .constanthelp .mdc-text-field:before {
  background-color: transparent;
}

.about {
  padding-top: 45px;
  text-align: center;
  color: #595f8e;
  order: 40;
}
@media (min-width: 1200px) {
  .about {
    padding-top: 85px;
    order: 50;
  }
}
.about__title {
  font-size: 28px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 8px;
}
@media (min-width: 1200px) {
  .about__title {
    font-size: 48px;
    margin-bottom: 45px;
    margin-left: 35px;
    text-align: left;
  }
}
.about__subtitle {
  display: inline-flex;
  background-color: #FFFF00;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  line-height: 27px;
  letter-spacing: 0.7px;
  padding: 0 5px;
  margin-bottom: 35px;
}
@media (min-width: 1200px) {
  .about__subtitle {
    font-size: 24px;
    line-height: 41px;
    letter-spacing: 0.5px;
    padding: 0 12px;
    margin-bottom: 48px;
  }
}
.about__description {
  font-weight: 300;
  font-size: 15px;
  line-height: 1.65;
  letter-spacing: 0.4px;
  margin: 0 auto 17px auto;
  width: 100%;
  max-width: 1020px;
}
@media (min-width: 1200px) {
  .about__description {
    font-size: 24px;
    line-height: 1.65;
    letter-spacing: 0.8px;
    margin: 0 auto 40px auto;
  }
}
.about__description b, .about__description strong {
  font-weight: 500;
}
.about__scroll {
  margin: 0 -23px 15px -23px;
  width: calc(100% + 46px);
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 992px) {
  .about__scroll {
    margin: 0 -15px;
    overflow-x: hidden;
    margin: 0;
    width: 100%;
  }
}
.no-touchevents .about__scroll {
  overflow-x: auto;
}
.about__row {
  position: relative;
  padding: 0 18px;
  display: inline-flex;
  justify-content: space-between;
  width: auto;
  list-style-type: none;
}
@media (min-width: 992px) {
  .about__row {
    overflow: hidden;
  }
}
@media (min-width: 1200px) {
  .about__row {
    display: flex;
    width: 100%;
  }
}
.about__row:after {
  content: "";
  display: block;
  width: calc(100% - 40px);
  height: 0;
  border-bottom: 1px solid rgba(0, 174, 239, 0.5);
  position: absolute;
  z-index: -1;
  top: 76px;
  left: 20px;
}
@media (min-width: 1200px) {
  .about__row:after {
    top: 100px;
    width: calc(100% - 40px);
  }
}
.ie .about__row:after {
  left: -50px;
}
.about__row--more {
  margin-bottom: 40px;
}
@media (min-width: 1200px) {
  .about__row--more {
    margin-top: 40px;
    margin-bottom: 40px;
  }
}
.about__canvas {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 300px;
  background-color: #fff;
}
.ie .about__canvas {
  position: absolute;
  top: 0;
  left: -13px;
}
.about__item {
  text-align: center;
  position: relative;
  flex: 1 0 auto;
  max-width: 132px;
  margin-right: 29px;
}
@media (min-width: 1200px) {
  .about__item {
    max-width: 206px;
    width: 20%;
    margin-right: 0;
  }
}
.about__item:last-of-type {
  margin-right: 0;
}
.about__img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  position: absolute;
  top: 13px;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 1200px) {
  .about__img {
    max-width: 186px;
    top: 13px;
  }
}
.ie .about__img {
  position: relative;
  left: 0;
  transform: none;
}
.about__label {
  display: block;
  margin-top: 39px;
  padding: 0 7px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.5;
  color: #2653B9;
  user-select: none;
  padding-bottom: 9px;
}
@media (min-width: 1200px) {
  .about__label {
    line-height: 1.2;
    font-size: 21px;
    margin-top: 21px;
    padding-bottom: 0;
    user-select: auto;
  }
}

.news {
  margin-bottom: 20px;
}
.news__title {
  font-size: 28px;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 35px;
  text-align: center;
  margin-top: 35px;
}
@media (min-width: 992px) {
  .news__title {
    text-align: left;
    font-size: 36px;
    margin-bottom: 35px;
    margin-left: 35px;
  }
}
.news__row {
  margin: 35px -23px 0 -23px !important;
  border-bottom: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 992px) {
  .news__row {
    margin: 35px auto auto auto !important;
    display: flex;
    flex-wrap: wrap;
    border-bottom: none;
  }
}
.news__row--more {
  position: relative;
  margin-top: 3rem;
  margin-bottom: 2rem;
}
.news__hr {
  border: none;
  border-top: 1px solid #00AEEF;
  margin: 0;
}
.news__more {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  background-color: #fff;
  padding: 1rem;
  font-weight: 400;
  min-height: 45px;
  height: 45px;
}
@media (min-width: 992px) {
  .news__item {
    width: calc(33% - 17px);
    margin-right: 30px;
  }
}
@media (min-width: 1200px) {
  .news__item {
    width: calc(33% - 17px);
  }
}
@media (min-width: 1400px) {
  .news__item {
    width: calc(33% - 15.666px);
  }
}
@media (min-width: 992px) {
  .news__item:nth-of-type(3n) {
    margin-right: 0;
  }
}

.card {
  position: relative;
  overflow: hidden;
  display: flex;
  border-top: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 992px) {
  .card {
    flex: 1 0 calc(33.333% - 30px);
    margin-right: 30px;
    border: none;
  }
  .card:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 43%, rgba(250, 250, 252, 0) 44%, rgba(223, 225, 237, 0.09) 49%, rgb(27, 42, 135) 100%);
    opacity: 0.86;
    mix-blend-mode: multiply;
    z-index: 1;
  }
}
.card:last-child {
  margin-right: 0;
  border-bottom: 1px solid rgba(0, 174, 239, 0.4);
}
.card__canvas {
  background-color: #D8D1C9;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.card__headline {
  color: #2653B9;
  margin: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  padding: 21px 20px 21px 112px;
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0;
  z-index: 2;
  order: 0;
  letter-spacing: 0.4px;
}
@media (min-width: 992px) {
  .card__headline {
    align-items: center;
    font-size: 18px;
    color: #fff;
    padding: 20px;
    height: auto;
    min-height: 137px;
    letter-spacing: 0.2px;
    line-height: 1.4;
  }
}
@media (min-width: 1200px) {
  .card__headline {
    font-size: 21px;
    padding: 30px 40px;
    min-height: 157px;
  }
}
@media (min-width: 1400px) {
  .card__headline {
    font-size: 23px;
  }
}
.card__headline-text {
  padding-left: 23px;
}
@media (min-width: 992px) {
  .card__headline-text {
    padding-left: 0;
  }
}
.card__figure {
  margin: 0;
  position: relative;
  display: block;
  order: 1;
  width: 112px;
}
@media (min-width: 992px) {
  .card__figure {
    width: auto;
  }
}
.card__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .card__img {
  position: absolute;
  left: 0;
  top: 0;
}
.card__overlink {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s;
}
.card__overlink::before, .card__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.card__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.card__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.card__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.card__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.card__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.card__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.card__overlink::before, .card__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.card__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.card__overlink:hover::before {
  opacity: 0;
}
.card__overlink.mdc-ripple-upgraded--background-focused::before, .card__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
@media (max-width: 991.9px) {
  .card__overlink::before, .card__overlink::after {
    background-color: #201d1d;
  }
  .card__overlink:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear;
  }
  .card__overlink:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.04;
  }
  .card__overlink.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.04;
  }
}
@media (min-width: 992px) {
  .card__overlink::before, .card__overlink::after {
    background-color: #fff;
  }
  .card__overlink:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear;
  }
  .card__overlink:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12;
  }
  .card__overlink.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12;
  }
}
.tab-navigation .card__overlink:focus {
  outline: none;
}
.tab-navigation .card__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .card__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.card__overlink:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.stories {
  margin-top: 40px;
  margin-bottom: 30px;
  order: 999;
  position: relative;
}
@media (min-width: 992px) {
  .stories {
    margin-bottom: 40px;
  }
}
@media (min-width: 1656px) {
  .stories {
    margin-top: 100px;
    margin-bottom: 100px;
  }
}
.stories__row {
  width: 100%;
}
@media (min-width: 992px) {
  .stories__row {
    display: flex;
    justify-content: flex-end;
    position: absolute;
    max-width: 40.9%;
  }
}
@media (min-width: 1656px) {
  .stories__row {
    display: flex;
    justify-content: flex-end;
    position: absolute;
    max-width: 40.9%;
  }
}
.stories__title {
  display: none;
}
@media (min-width: 1200px) {
  .stories__title {
    font-size: 48px;
    line-height: 1.2;
    color: #00AEEF;
    text-transform: uppercase;
    margin-bottom: 20px;
    display: block;
    width: 88.4%;
  }
}
@media (min-width: 1400px) {
  .stories__title {
    font-size: 48px;
    margin: 0.74vw 0 0 0;
    padding-right: 8.8%;
    width: 88.4%;
  }
}
@media (min-width: 1656px) {
  .stories__title {
    width: 68.4%;
  }
}
@media (min-width: 1890px) {
  .stories__title {
    font-size: 2.36vw;
    width: 60.4%;
  }
}
@media (min-width: 2048px) {
  .stories__title {
    width: 58.2%;
  }
}
.stories__canvas {
  background-color: #D8D1C9;
  margin: 0 auto;
  display: block;
  width: 100%;
  max-width: 1339px;
  user-select: none;
}

.story {
  display: flex;
  align-items: flex-start;
  max-width: 640px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .story {
    max-width: none;
    margin: 0;
    align-items: stretch;
  }
}
.story__figure {
  position: relative;
  display: block;
  width: 94px;
  overflow: hidden;
  border-radius: 94px;
  margin: 0 15px;
  order: 1;
}
@media (min-width: 992px) {
  .story__figure {
    margin: 0;
    border-radius: 0;
    flex: 0 0 59.1%;
    max-width: 59.1%;
    order: 2;
    background-repeat: no-repeat;
  }
}
.story__content {
  margin: 0 15px;
  display: flex;
  justify-content: flex-end;
  font-weight: 300;
  color: #201d1d;
  order: 2;
  flex: 0 0 calc(100% - 154px);
  max-width: calc(100% - 154px);
}
@media (min-width: 992px) {
  .story__content {
    color: #2653B9;
    margin: 0;
    flex: 0 0 40.9%;
    max-width: 40.9%;
    order: 1;
  }
}
.story__blockquote {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin: 0;
  width: 100%;
}
@media (min-width: 992px) {
  .story__blockquote {
    width: 88.4%;
    padding-left: 0;
    padding-right: 8.8%;
  }
}
@media (min-width: 1400px) {
  .story__blockquote {
    width: 88.4%;
  }
}
@media (min-width: 1656px) {
  .story__blockquote {
    width: 68.4%;
  }
}
@media (min-width: 1890px) {
  .story__blockquote {
    width: 60.4%;
  }
}
@media (min-width: 2048px) {
  .story__blockquote {
    width: 58.2%;
  }
}
.story__canvas--mobile {
  display: block;
  background-color: #D8D1C9;
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
@media (min-width: 992px) {
  .story__canvas--mobile {
    display: none;
  }
}
.story__canvas--desktop {
  display: none;
}
@media (min-width: 992px) {
  .story__canvas--desktop {
    background-color: #D8D1C9;
    margin: 0;
    display: block;
    width: 100%;
    max-width: 100%;
    user-select: none;
  }
}
.story__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .story__img {
  position: absolute;
  margin: auto;
  left: -100%;
  right: -100%;
  top: -100%;
  bottom: -100%;
  width: auto;
  height: 100%;
}
.story__line-clamp {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
@media (min-width: 992px) {
  .story__line-clamp {
    -webkit-line-clamp: 7;
  }
}
@media (min-width: 1200px) {
  .story__line-clamp {
    -webkit-line-clamp: 6;
  }
}
@media (min-width: 1400px) {
  .story__line-clamp {
    -webkit-line-clamp: 7;
  }
}
@media (min-width: 1656px) {
  .story__line-clamp {
    -webkit-line-clamp: 8;
  }
}
.story__description {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  position: relative;
}
@media (min-width: 992px) {
  .story__description {
    font-size: 1.7vw;
    letter-spacing: 0.6px;
  }
}
@media (min-width: 1200px) {
  .story__description {
    font-size: 1.5vw;
  }
}
@media (min-width: 1400px) {
  .story__description {
    font-size: 1.4vw;
    padding-right: 5%;
  }
}
@media (min-width: 1656px) {
  .story__description {
    font-size: 1.209vw;
    letter-spacing: 1px;
  }
}
.story__description:before {
  content: "";
  display: block;
  width: 23px;
  height: 19px;
  position: absolute;
  top: -40px;
  left: -2px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22rgba(0, 174, 239, 0.5)%22%20viewBox%3D%220%200%2094%2070%22%3E%3Cpath%20d%3D%22M19,38C6,36,1,26,1,19,1,11,7,1,19,1S38,13,38,24C38,47,22,61,7,69L1,59C14,51,19,45,19,38ZM55,59l6,10c15-8,31-22,31-45C92,13,85,1,73,1S55,11,55,19c0,7,5,17,18,19C73,45,68,51,55,59Z%22/%3E%3Cpath%20d%3D%22M94,70H0V0H94Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}
@media (min-width: 992px) {
  .story__description:before {
    width: 4.878vw;
    height: 3.64vw;
    top: -6.2vw;
    left: -12px;
  }
}
@media (min-width: 1200px) {
  .story__description:before {
    top: -4.6vw;
  }
}
@media (min-width: 1400px) {
  .story__description:before {
    top: -4.6vw;
  }
}
@media (min-width: 1656px) {
  .story__description:before {
    top: -5.2vw;
  }
}
@media (min-width: 1890px) {
  .story__description:before {
    top: -6.2vw;
  }
}
.story__person {
  font-size: 13px;
  font-style: italic;
  margin-top: 12px;
  margin-bottom: 10px;
}
@media (min-width: 768px) {
  .story__person {
    font-size: 15px;
  }
}
@media (min-width: 992px) {
  .story__person {
    font-size: 17px;
    font-weight: 400;
    margin-top: 1.159vw;
    margin-bottom: 0;
  }
}
@media (min-width: 1656px) {
  .story__person {
    font-size: 1vw;
  }
}
.story__action {
  margin-top: 10px;
  margin-bottom: 0;
  margin-right: auto;
}
@media (min-width: 992px) {
  .story__action {
    min-width: 240px;
    width: 15.6vw;
    margin-top: 2.11vw;
    margin-bottom: 1.5vw;
  }
}
.story__overlink {
  position: absolute;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
}
.story__overlink::before, .story__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.story__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.story__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.story__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.story__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.story__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.story__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.story__overlink::before, .story__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.story__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.story__overlink:hover::before {
  opacity: 0;
}
.story__overlink.mdc-ripple-upgraded--background-focused::before, .story__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.story__overlink::before, .story__overlink::after {
  background-color: #201d1d;
}
.story__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.story__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.1;
}
.story__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.1;
}

.partners {
  margin-top: 27px;
  margin-bottom: 30px;
  padding: 0;
}
@media (min-width: 768px) {
  .partners {
    padding: 0 15px;
  }
}
@media (min-width: 1656px) {
  .partners {
    margin-top: 85px;
    margin-bottom: 50px;
  }
}
.partners__title {
  font-size: 28px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 35px;
  text-align: center;
}
@media (min-width: 1200px) {
  .partners__title {
    text-align: left;
    font-size: 48px;
    margin-bottom: 50px;
    margin-left: 35px;
  }
}
.partners__row--more {
  display: none;
}
@media (min-width: 1200px) {
  .partners__row--more {
    display: block;
    text-align: center;
    order: 1;
    margin-top: 60px;
  }
}
.partners__slider {
  width: calc(100% - 100px);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1656px) {
  .partners__slider {
    width: 100%;
  }
}

.partner {
  position: relative;
  text-align: center;
}
@media (min-width: 1200px) {
  .partner:focus-within .partner__content {
    opacity: 1;
    user-select: auto;
  }
}
.partner__canvas {
  background-color: #fff;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.partner__content {
  background-color: #2653B9;
  color: #fff;
  opacity: 1;
  user-select: none;
  transition: opacity 0.12s;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
@media (min-width: 1200px) {
  .partner__content {
    opacity: 0;
  }
}
@media (min-width: 1200px) {
  .partner:hover .partner__content {
    opacity: 1;
    user-select: auto;
  }
}
.partner__logo, .partner__image {
  position: absolute;
  margin: auto;
  top: -100%;
  bottom: -100%;
  left: -100%;
  right: -100%;
  max-width: 100%;
  max-height: 100%;
}
.partner__head {
  display: block;
  margin: 0 auto;
  width: 50%;
  height: 75px;
  background-color: #fff;
  border: 1px solid #fff;
  position: relative;
}
.partner__description .ezrichtext-field {
  font-size: 14px;
  line-height: 18px;
  font-weight: 300;
  padding: 0 30px;
  margin: 0;
  max-height: 108px;
  max-width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
@media (min-width: 480px) {
  .partner__description .ezrichtext-field {
    padding: 0 8px;
    font-size: 12px;
    line-height: 14px;
    -webkit-line-clamp: 5;
    max-height: 80px;
  }
}
@media (min-width: 768px) {
  .partner__description .ezrichtext-field {
    padding: 0 30px;
    font-size: 15px;
    line-height: 20px;
    max-height: 120px;
    -webkit-line-clamp: 6;
  }
}
.partner__more {
  margin-bottom: 25px;
  text-transform: none;
  min-width: 112px;
  font-size: 14px;
  font-weight: 300;
}
@media (min-width: 768px) {
  .partner__more {
    font-size: 15px;
  }
}
.partner__more:not(:disabled) {
  border-color: #a3adec;
  color: #fff;
}

.programs {
  margin-top: 27px;
  margin-bottom: 30px;
  padding: 0;
}
@media (min-width: 768px) {
  .programs {
    padding: 0 15px;
  }
}
@media (min-width: 1656px) {
  .programs {
    margin-top: 85px;
    margin-bottom: 50px;
  }
}
.programs__title {
  font-size: 28px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 35px;
  text-align: center;
}
@media (min-width: 1200px) {
  .programs__title {
    text-align: left;
    font-size: 48px;
    margin-bottom: 50px;
    margin-left: 35px;
  }
}
.programs__row--more {
  display: none;
}
@media (min-width: 1200px) {
  .programs__row--more {
    display: block;
    text-align: center;
    order: 1;
    margin-top: 60px;
    margin-bottom: 70px;
  }
}
.programs__item {
  position: relative;
  min-height: 290px;
}
.programs__item .program {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.programs__slider {
  width: calc(100% - 100px);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1656px) {
  .programs__slider {
    width: 100%;
  }
}
.programs .splide__slide:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  height: 100%;
  top: 0;
  left: -5px;
  border-right: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 480px) {
  .programs .splide__slide:first-of-type:after {
    left: -10px;
  }
}
@media (min-width: 768px) {
  .programs .splide__slide:first-of-type:after {
    left: -15px;
  }
}
.programs .splide__slide:before {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  height: 100%;
  top: 0;
  right: -5px;
  border-right: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 480px) {
  .programs .splide__slide:before {
    right: -10px;
  }
}
@media (min-width: 768px) {
  .programs .splide__slide:before {
    right: -15px;
  }
}

.program {
  position: relative;
  text-align: center;
  overflow: hidden;
  border-radius: 4px;
}
.program__canvas {
  background-color: #fff;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.program__logo {
  position: absolute;
  margin: auto;
  top: -100%;
  bottom: -100%;
  left: -100%;
  right: -100%;
  max-width: 100%;
  max-height: 100%;
}
.program__overlink {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s;
}
.program__overlink::before, .program__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.program__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.program__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.program__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.program__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.program__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.program__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.program__overlink::before, .program__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.program__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.program__overlink:hover::before {
  opacity: 0;
}
.program__overlink.mdc-ripple-upgraded--background-focused::before, .program__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.program__overlink::before, .program__overlink::after {
  background-color: #201d1d;
}
.program__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.program__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.04;
}
.program__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.04;
}
.tab-navigation .program__overlink:focus {
  outline: none;
}
.tab-navigation .program__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .program__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.program__overlink:hover {
  background-color: rgba(32, 29, 29, 0.03);
}

.toasts {
  position: fixed;
  top: 0;
  left: 0;
  margin: auto;
  z-index: 1912;
  width: 100%;
  pointer-events: none;
  user-select: none;
}
@media (min-width: 992px) {
  .toasts {
    z-index: 1912;
    width: 0;
    left: auto;
    right: 0;
    top: 0;
    height: 100vh;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    flex-direction: column;
  }
}

.toast {
  color: #fff;
  font-weight: 300;
  box-shadow: none;
  border: none;
  width: 100%;
  margin: 0;
  pointer-events: none;
  user-select: none;
  background-color: transparent;
  border-radius: 0;
  max-width: none;
  line-height: 1.4;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  flex-basis: auto;
}
@media (min-width: 992px) {
  .toast {
    width: 240px;
    margin: 20px 20px 10px 0;
    background-color: #6ec01e;
    border-radius: 5px;
    box-shadow: -3px 3px 6px rgba(0, 0, 0, 0.12);
    border-bottom: none;
  }
}
@media (min-width: 992px) {
  .toast.toast--warning {
    background-color: #F26A21;
  }
}
@media (min-width: 992px) {
  .toast.toast--alert {
    background-color: #ff0000;
  }
}
.toast a {
  color: #fff;
}
.toast-header {
  justify-content: center;
  background-color: #00AEEF;
  color: #fff;
  font-weight: 300;
  font-size: 16.5px;
  border: none;
  pointer-events: auto;
  width: 100%;
  height: 58px;
  line-height: 58px;
  padding: 0 55px 0 50px;
  text-align: center;
  margin-bottom: -3px;
}
@media (min-width: 992px) {
  .toast-header {
    padding: 15px 25px 0 15px;
    font-size: 19px;
    height: auto;
    line-height: inherit;
    background-color: transparent;
  }
}
.toast--warning .toast-header {
  background-color: #F26A21;
}
@media (min-width: 992px) {
  .toast--warning .toast-header {
    background-color: transparent;
  }
}
.toast--alert .toast-header {
  background-color: #ff0000;
}
@media (min-width: 992px) {
  .toast--alert .toast-header {
    background-color: transparent;
  }
}
.toast-header:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%2300AEEF%22%20viewBox%3D%220%200%2026%2026%22%3E%3Cpath%20d%3D%22M25,13A12,12,0,1,1,13,1,12,12,0,0,1,25,13Z%22%20fill%3D%22%23fff%22/%3E%3Cpath%20d%3D%22M11.3,18.66,5.65,13l2.26-2.26,3.39,3.39,6.79-6.79,2.26,2.27Z%22%20fill%3D%22%2300AEEF%22/%3E%3Cpath%20d%3D%22M26,26H0V0H26Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: center;
  margin-right: 5px;
}
@media (min-width: 992px) {
  .toast-header:before {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%236ec01e%22%20viewBox%3D%220%200%2026%2026%22%3E%3Cpath%20d%3D%22M25,13A12,12,0,1,1,13,1,12,12,0,0,1,25,13Z%22%20fill%3D%22%23fff%22/%3E%3Cpath%20d%3D%22M11.3,18.66,5.65,13l2.26-2.26,3.39,3.39,6.79-6.79,2.26,2.27Z%22%20fill%3D%22%236ec01e%22/%3E%3Cpath%20d%3D%22M26,26H0V0H26Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  }
}
.toast--warning .toast-header:before {
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M1%2021h22L12%202%201%2021zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z%22/%3E%3C/svg%3E");
}
@media (min-width: 992px) {
  .toast--warning .toast-header:before {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M1%2021h22L12%202%201%2021zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z%22/%3E%3C/svg%3E");
  }
}
.toast--alert .toast-header:before {
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202C6.48%202%202%206.48%202%2012s4.48%2010%2010%2010%2010-4.48%2010-10S17.52%202%2012%202zm1%2015h-2v-2h2v2zm0-4h-2V7h2v6z%22/%3E%3C/svg%3E");
}
@media (min-width: 992px) {
  .toast--alert .toast-header:before {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202C6.48%202%202%206.48%202%2012s4.48%2010%2010%2010%2010-4.48%2010-10S17.52%202%2012%202zm1%2015h-2v-2h2v2zm0-4h-2V7h2v6z%22/%3E%3C/svg%3E");
  }
}
.toast-body {
  background-color: #00AEEF;
  pointer-events: auto;
  font-size: 16.5px;
  text-align: center;
  padding: 5px 23px 23px 23px;
}
.toast--warning .toast-body {
  background-color: #F26A21;
}
.toast--alert .toast-body {
  background-color: #ff0000;
}
@media (min-width: 992px) {
  .toast-body {
    padding: 15px;
    font-size: 19px;
    background-color: transparent;
  }
}
@media (min-width: 992px) {
  .toast--warning .toast-body {
    background-color: transparent;
  }
}
@media (min-width: 992px) {
  .toast--alert .toast-body {
    background-color: transparent;
  }
}
.toast .close {
  color: #fff;
  opacity: 1;
}

.modal-full .mdc-dialog__scrim {
  background-color: rgba(38, 83, 185, 0.5);
}
.modal-full .mdc-dialog__surface {
  max-width: calc(100% - 40px);
  position: relative;
}
@media (min-width: 768px) {
  .modal-full .mdc-dialog__surface {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .modal-full .mdc-dialog__surface {
    max-width: 880px;
  }
}
@media (min-width: 1200px) {
  .modal-full .mdc-dialog__surface {
    max-width: 1080px;
  }
}
@media (min-width: 1400px) {
  .modal-full .mdc-dialog__surface {
    max-width: 1280px;
  }
}
@media (min-width: 1656px) {
  .modal-full .mdc-dialog__surface {
    max-width: 1500px;
  }
}
.mdc-dialog .modal-full__content {
  letter-spacing: 0.2px;
  padding: 5px;
}
@media (min-width: 768px) {
  .mdc-dialog .modal-full__content {
    padding: 10px;
  }
}
@media (min-width: 1200px) {
  .mdc-dialog .modal-full__content {
    padding: 20px;
  }
}
.modal-full__close {
  border: 0;
  margin: 0;
  padding: 0;
  background-color: transparent;
  position: absolute;
  z-index: 50;
  top: 2px;
  right: 2px;
  width: 48px;
  height: 48px;
  outline: none;
  user-select: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M2.54,1.17h0a1.08,1.08,0,0,1,.86.39L18,16.12,32.52,1.56a1.13,1.13,0,0,1,.92-.39,1.24,1.24,0,0,1,1,.39,1.32,1.32,0,0,1,.36.92,1.28,1.28,0,0,1-.39.92L19.79,18,34.36,32.52a1.26,1.26,0,0,1,.39.92,1.33,1.33,0,0,1-.36.92,1.2,1.2,0,0,1-.92.39,1.3,1.3,0,0,1-.95-.39L18,19.79,3.4,34.36a1.28,1.28,0,0,1-.92.39,1.26,1.26,0,0,1-.92-.39,1.28,1.28,0,0,1-.39-.92,1.26,1.26,0,0,1,.39-.92L16.12,18,1.56,3.4a1.28,1.28,0,0,1-.39-.92,1.26,1.26,0,0,1,.39-.92,1.26,1.26,0,0,1,.92-.39Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: center;
}
@media (min-width: 768px) {
  .modal-full__close {
    top: 24px;
    right: 24px;
    background-size: 22px 22px;
  }
}
.modal-full__close:hover, .modal-full__close:focus {
  cursor: pointer;
  outline: none;
}

body:before {
  display: none;
}

.main {
  opacity: 1;
}

.slick-slider {
  display: block;
}
.slick-slider.product-card__control {
  display: none;
}
@media (min-width: 992px) {
  .slick-slider.product-card__control {
    display: block;
  }
}

.site-form .mdc-text-field--outlined:not(.mdc-text-field--invalid):not(.mdc-text-field--disabled) input:-webkit-autofill {
  -webkit-text-fill-color: #00AEEF !important;
  -webkit-box-shadow: 0 0 0 60px #f5fcfe inset !important;
}
.site-form__checkbox--readonly {
  pointer-events: none;
  user-select: none;
  opacity: 0.3;
}
.site-form__checkbox--readonly ~ label {
  pointer-events: none;
  user-select: none;
}
.site-form__checkbox--readonly ~ label a {
  pointer-events: auto;
}
.site-form .mdc-floating-label {
  user-select: none;
  margin-bottom: 0;
  font-weight: 300;
  letter-spacing: -0.2px;
  line-height: 1.15;
  display: block;
}
@media (min-width: 768px) {
  .site-form .mdc-floating-label {
    letter-spacing: 0;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-floating-label {
    font-size: 19px;
  }
}
.site-form .mdc-floating-label.mdc-floating-label--float-above {
  text-overflow: clip;
  display: inline-block;
  vertical-align: top;
}
.site-form input[readonly] + .mdc-notched-outline--notched .mdc-notched-outline__leading,
.site-form input[readonly] + .mdc-notched-outline--notched .mdc-notched-outline__notch,
.site-form input[readonly] + .mdc-notched-outline--notched .mdc-notched-outline__trailing {
  border-width: 1px;
}
.site-form input[readonly] + .mdc-notched-outline--notched .mdc-floating-label {
  user-select: none;
}
.site-form .mdc-select--outlined .mdc-floating-label.mdc-floating-label--float-above {
  min-width: 0;
  max-width: none;
}
.site-form .mdc-checkbox {
  margin-left: -11px;
  margin-bottom: -8px;
  overflow: hidden;
}
.site-form .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
  border-color: #00a5e3;
  background-color: rgba(0, 0, 0, 0);
}
.site-form .mdc-checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.site-form .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background,
.site-form .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled ~ .mdc-checkbox__background {
  border-color: #00a5e3;
  background-color: #00a5e3;
}
@keyframes mdc-checkbox-fade-in-background-FF00A5E3FF00A5E300000000FF00A5E3 {
  0% {
    border-color: #00a5e3;
    background-color: rgba(0, 0, 0, 0);
  }
  50% {
    border-color: #00a5e3;
    background-color: #00a5e3;
  }
}
@keyframes mdc-checkbox-fade-out-background-FF00A5E3FF00A5E300000000FF00A5E3 {
  0%, 80% {
    border-color: #00a5e3;
    background-color: #00a5e3;
  }
  100% {
    border-color: #00a5e3;
    background-color: rgba(0, 0, 0, 0);
  }
}
.site-form .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .site-form .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-in-background-FF00A5E3FF00A5E300000000FF00A5E3;
}
.site-form .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .site-form .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-out-background-FF00A5E3FF00A5E300000000FF00A5E3;
}
.site-form .mdc-checkbox .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  color: #fff;
}
.site-form .mdc-checkbox .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  border-color: #fff;
}
.site-form .mdc-checkbox .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background::before,
.site-form .mdc-checkbox .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background::before,
.site-form .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true] ~ .mdc-checkbox__background::before {
  background-color: #00a5e3;
}
.site-form .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before, .site-form .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #00a5e3;
}
.site-form .mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before {
  opacity: 0.08;
}
.site-form .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before, .site-form .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.site-form .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after {
  transition: opacity 150ms linear;
}
.site-form .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after {
  transition-duration: 75ms;
  opacity: 0.24;
}
.site-form .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24;
}
.site-form .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.site-form .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #00a5e3;
}
.site-form .mdc-checkbox .mdc-checkbox__ripple {
  border-radius: 100px;
  overflow: hidden;
  transform: translateZ(0);
}
.site-form .mdc-checkbox .mdc-checkbox__ripple:before {
  background-color: #00AEEF;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.site-form .mdc-checkbox .mdc-checkbox__ripple:after {
  background-color: #00AEEF;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.site-form .mdc-checkbox:hover .mdc-checkbox__ripple:before {
  opacity: 0.08;
  background-color: #00AEEF;
}
.site-form .mdc-checkbox:hover .mdc-checkbox__ripple:after {
  background-color: #00AEEF;
}
.site-form .mdc-radio {
  margin-left: -11px;
  overflow: hidden;
}
.site-form .mdc-radio .mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background .mdc-radio__outer-circle {
  border-color: #00a5e3;
}
.site-form .mdc-radio .mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle {
  border-color: #00a5e3;
}
.site-form .mdc-radio .mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {
  border-color: #00a5e3;
}
.site-form .mdc-radio .mdc-radio__background::before {
  background-color: #00AEEF;
}
.site-form .mdc-radio + label {
  font-size: 12.5px;
  cursor: pointer;
  font-weight: 300;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .site-form .mdc-radio + label {
    font-size: 16px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-radio + label {
    font-size: 19px;
  }
}
.site-form .mdc-radio .mdc-radio__ripple {
  border-radius: 100px;
  overflow: hidden;
  transform: translateZ(0);
}
.site-form .mdc-radio .mdc-radio__ripple:before {
  background-color: #00AEEF;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.site-form .mdc-radio .mdc-radio__ripple:after {
  background-color: #00AEEF;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.site-form .mdc-radio:hover .mdc-radio__ripple:before {
  background-color: #00AEEF;
  opacity: 0.08;
}
.site-form .mdc-radio-field {
  position: relative;
  padding-bottom: 15px;
}
.site-form .mdc-form-field .mdc-radio + label {
  margin-top: 11.5px;
}
@media (min-width: 768px) {
  .site-form .mdc-form-field .mdc-radio + label {
    margin-top: 8px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-form-field .mdc-radio + label {
    margin-top: 6px;
    padding-left: 5px;
  }
}
.site-form .mdc-text-field .mdc-text-field__input {
  caret-color: #201d1d !important;
}
.site-form .mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label.mdc-floating-label--float-above {
  color: #00a5e3;
}
.site-form .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label {
  color: rgba(0, 0, 0, 0.6);
}
.site-form .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label:after {
  color: rgba(0, 0, 0, 0.6);
}
.site-form .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label:after {
  color: rgba(0, 0, 0, 0.6);
}
.site-form .mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label.mdc-floating-label--float-above:after {
  color: #00a5e3;
}
.was-validated .site-form .mdc-text-field--invalid, .site-form.was-validated .mdc-text-field--invalid {
  margin-bottom: 6px;
}
@media (min-width: 1656px) {
  .was-validated .site-form .mdc-text-field--invalid, .site-form.was-validated .mdc-text-field--invalid {
    margin-bottom: 0;
  }
}
.was-validated .site-form .mdc-checkbox .mdc-checkbox__native-control:invalid ~ .mdc-checkbox__background, .site-form.was-validated .mdc-checkbox .mdc-checkbox__native-control:invalid ~ .mdc-checkbox__background {
  border-color: #ff0000 !important;
}
.was-validated .site-form .mdc-checkbox .mdc-checkbox__native-control:invalid ~ label, .site-form.was-validated .mdc-checkbox .mdc-checkbox__native-control:invalid ~ label {
  color: #ff0000;
}
.was-validated .site-form .mdc-radio .mdc-radio__native-control:invalid ~ .mdc-radio__background .mdc-radio__outer-circle, .was-validated .site-form .mdc-radio .mdc-radio__native-control:invalid ~ .mdc-radio__background .mdc-radio__inner-circle, .site-form.was-validated .mdc-radio .mdc-radio__native-control:invalid ~ .mdc-radio__background .mdc-radio__outer-circle, .site-form.was-validated .mdc-radio .mdc-radio__native-control:invalid ~ .mdc-radio__background .mdc-radio__inner-circle {
  border-color: #ff0000 !important;
}
.was-validated .site-form .mdc-radio .mdc-radio__native-control:invalid ~ label, .site-form.was-validated .mdc-radio .mdc-radio__native-control:invalid ~ label {
  color: #ff0000;
}
.was-validated .site-form .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__leading,
.was-validated .site-form .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__notch,
.was-validated .site-form .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing, .site-form.was-validated .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__leading,
.site-form.was-validated .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__notch,
.site-form.was-validated .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
}
.was-validated .site-form .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-floating-label, .site-form.was-validated .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-floating-label {
  color: #ff0000 !important;
}
.was-validated .site-form .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-floating-label:after, .site-form.was-validated .mdc-text-field__input:invalid ~ .mdc-notched-outline .mdc-floating-label:after {
  color: #ff0000 !important;
}
.was-validated .site-form .site-form__checkbox--required.site-form__checkbox--unchecked ~ label, .site-form.was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ label {
  color: #ff0000;
}
.was-validated .site-form .site-form__checkbox--required.site-form__checkbox--unchecked ~ label:after, .site-form.was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ label:after {
  color: #ff0000;
}
.was-validated .site-form .site-form__checkbox--required.site-form__checkbox--unchecked ~ label a, .site-form.was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ label a {
  color: #ff0000;
  text-decoration: underline;
}
.was-validated .site-form .site-form__radio--required.site-form__radio--unchecked ~ label, .site-form.was-validated .site-form__radio--required.site-form__radio--unchecked ~ label {
  color: #ff0000;
}
.was-validated .site-form .site-form__radio--required.site-form__radio--unchecked ~ label:after, .site-form.was-validated .site-form__radio--required.site-form__radio--unchecked ~ label:after {
  color: #ff0000;
}
.was-validated .site-form .site-form__radio--required.site-form__radio--unchecked ~ label a, .site-form.was-validated .site-form__radio--required.site-form__radio--unchecked ~ label a {
  color: #ff0000;
  text-decoration: underline;
}
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .mdc-select__anchor, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid .mdc-select__anchor {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23ff0000%22%20viewBox%3D%220%200%2016%2032%22%3E%3Cpath%20d%3D%22M14,11.1H3L8.5,2ZM3,21H14L8.5,30.1Z%22/%3E%3Cpath%20d%3D%22M16,32H0V0H16Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-color: rgba(255, 0, 0, 0);
}
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid:hover .mdc-select__anchor, .was-validated .site-form .mdc-select--outlined.mdc-select--invalid:focus .mdc-select__anchor, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid:hover .mdc-select__anchor, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid:focus .mdc-select__anchor {
  background-color: rgba(255, 0, 0, 0);
}
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__leading,
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__notch,
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__trailing, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__leading,
.site-form.was-validated .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__notch,
.site-form.was-validated .mdc-select--outlined.mdc-select--invalid .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
}
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .mdc-floating-label, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid .mdc-floating-label {
  color: #ff0000 !important;
}
.was-validated .site-form .mdc-select--outlined.mdc-select--invalid .site-form__validation-text, .site-form.was-validated .mdc-select--outlined.mdc-select--invalid .site-form__validation-text {
  display: table;
}
.was-validated .site-form .mdc-radio-field .site-form__validation-text, .site-form.was-validated .mdc-radio-field .site-form__validation-text {
  left: 35px;
  bottom: 10px;
}
.was-validated .site-form .mdc-radio-field--invalid .site-form__validation-text, .site-form.was-validated .mdc-radio-field--invalid .site-form__validation-text {
  display: table;
}
.was-validated .site-form .mdc-form-field--invalid label, .site-form.was-validated .mdc-form-field--invalid label {
  color: #ff0000;
}
.was-validated .site-form .mdc-form-field--invalid label:after, .site-form.was-validated .mdc-form-field--invalid label:after {
  color: #ff0000;
}
.was-validated .site-form .mdc-form-field--invalid label a, .site-form.was-validated .mdc-form-field--invalid label a {
  color: #ff0000;
  text-decoration: underline;
}
.was-validated .site-form .mdc-form-field--invalid ~ .site-form__validation-text, .site-form.was-validated .mdc-form-field--invalid ~ .site-form__validation-text {
  display: block;
  position: static;
  padding-left: 0;
  padding-right: 0;
  background-color: transparent;
  margin: 6px 0 0 0;
  width: 100%;
  max-width: none;
  transform: none;
}
@media (min-width: 1656px) {
  .was-validated .site-form .mdc-form-field--invalid ~ .site-form__validation-text, .site-form.was-validated .mdc-form-field--invalid ~ .site-form__validation-text {
    padding-left: 44px;
  }
}
.was-validated .site-form .mdc-form-field--invalid ~ .newsletter-agreements__info ~ .site-form__validation-text, .site-form.was-validated .mdc-form-field--invalid ~ .newsletter-agreements__info ~ .site-form__validation-text {
  margin-top: -10px;
  margin-bottom: 18px;
}
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__leading,
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__notch,
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
  color: #ff0000 !important;
}
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__leading:after,
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__notch:after,
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing:after {
  color: #ff0000 !important;
}
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-floating-label {
  color: #ff0000 !important;
}
.site-form.server-side-validated .server-side--invalid ~ .mdc-notched-outline .mdc-floating-label:after {
  color: #ff0000 !important;
}
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .mdc-select__anchor {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23ff0000%22%20viewBox%3D%220%200%2016%2032%22%3E%3Cpath%20d%3D%22M14,11.1H3L8.5,2ZM3,21H14L8.5,30.1Z%22/%3E%3Cpath%20d%3D%22M16,32H0V0H16Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-color: rgba(255, 0, 0, 0);
}
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid:hover .mdc-select__anchor, .site-form.server-side-validated .mdc-select--outlined.server-side--invalid:focus .mdc-select__anchor {
  background-color: rgba(255, 0, 0, 0);
}
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .mdc-notched-outline__leading,
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .mdc-notched-outline__notch,
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
}
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .mdc-floating-label {
  color: #ff0000 !important;
}
.site-form.server-side-validated .mdc-select--outlined.server-side--invalid .site-form__validation-text {
  display: table;
}
.site-form.server-side-validated .fileinput-container.fileinput-container--invalid .fileinput:not(.fileinput-exists) ~ .site-form__server-validation-text {
  display: block;
  bottom: -5px;
}
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__leading,
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__notch,
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
  color: #ff0000 !important;
}
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__leading:after,
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__notch:after,
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-notched-outline__trailing:after {
  color: #ff0000 !important;
}
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-floating-label {
  color: #ff0000 !important;
}
.site-form.js-side-validated .js-side--invalid ~ .mdc-notched-outline .mdc-floating-label:after {
  color: #ff0000 !important;
}
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .mdc-select__anchor {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23ff0000%22%20viewBox%3D%220%200%2016%2032%22%3E%3Cpath%20d%3D%22M14,11.1H3L8.5,2ZM3,21H14L8.5,30.1Z%22/%3E%3Cpath%20d%3D%22M16,32H0V0H16Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-color: rgba(255, 0, 0, 0);
}
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid:hover .mdc-select__anchor, .site-form.js-side-validated .mdc-select--outlined.js-side--invalid:focus .mdc-select__anchor {
  background-color: rgba(255, 0, 0, 0);
}
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .mdc-notched-outline__leading,
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .mdc-notched-outline__notch,
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .mdc-notched-outline__trailing {
  border-color: #ff0000 !important;
}
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .mdc-floating-label {
  color: #ff0000 !important;
}
.site-form.js-side-validated .mdc-select--outlined.js-side--invalid .site-form__validation-text {
  display: table;
}
.site-form .mdc-form-field {
  display: flex;
  align-items: flex-start;
}
.site-form .mdc-form-field--checkbox {
  font-weight: 300;
  color: #414042;
  font-size: 15px;
  margin-bottom: 10px;
  position: relative;
  flex-wrap: wrap;
}
@media (min-width: 375px) {
  .site-form .mdc-form-field--checkbox {
    font-size: 17px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-form-field--checkbox {
    font-size: 19px;
    margin-bottom: 14px;
  }
}
.site-form .mdc-form-field--checkbox label {
  cursor: pointer;
  max-width: calc(100% - 40px);
  margin-top: 6px !important;
  line-height: 1.52;
}
@media (min-width: 1400px) {
  .site-form .mdc-form-field--checkbox label {
    line-height: 1.578;
  }
}
.site-form .mdc-form-field--checkbox label .ezrichtext-field {
  display: inline;
}
.site-form .mdc-form-field--checkbox label .ezrichtext-field p:last-of-type {
  display: inline;
}
.site-form .mdc-form-field--checkbox label .ezrichtext-field:after {
  content: none;
  display: none;
}
.site-form .mdc-form-field label {
  margin: 9px 0 0 0;
  padding-left: 2px;
}
@media (min-width: 375px) {
  .site-form .mdc-form-field label {
    padding-left: 5px;
    margin: 8px 0 0 0;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-form-field label {
    margin: 6px 0 0 0;
    padding-left: 14px;
  }
}
.site-form .mdc-form-field label a:hover, .site-form .mdc-form-field label a:focus {
  text-decoration: underline;
  color: #2653B9;
}
.site-form .mdc-text-field {
  border-radius: 0;
  letter-spacing: 0;
  line-height: 1.15;
  height: 48px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field {
    line-height: 1.55;
    height: 64px;
    font-size: 19px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field__input {
    font-size: 19px;
  }
}
.site-form .text-field-row {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.site-form .text-field-helper {
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.site-form .text-field-description {
  display: block;
  margin-top: 10px;
  font-size: 12px;
}
.site-form .text-field-container {
  margin-bottom: 13px;
  width: 100%;
  position: relative;
}
@media (min-width: 1656px) {
  .site-form .text-field-container {
    margin-bottom: 28px;
  }
}
.site-form .text-field-container .mdc-text-field {
  width: 100%;
}
.site-form .text-field-container .text-field-container {
  margin-bottom: 0;
}
.site-form .text-field-container--full {
  width: 100%;
}
.site-form .text-field-container--half {
  width: calc(50% - 6px);
  margin-right: 12px;
}
@media (min-width: 768px) {
  .site-form .text-field-container--half {
    width: calc(50% - 10px);
    margin-right: 20px;
  }
}
.site-form .text-field-container--half + .text-field-container--half {
  margin-right: 0;
}
.site-form .text-field-container--half-slash {
  width: calc(50% - 16px);
  margin-right: 0;
}
@media (min-width: 768px) {
  .site-form .text-field-container--desktop-half {
    width: calc(50% - 10px);
    margin-right: 20px;
  }
}
@media (min-width: 768px) {
  .site-form .text-field-container--desktop-half + .text-field-container--desktop-half {
    margin-right: 0;
  }
}
@media (max-width: 767.9px) {
  .site-form .text-field-container--mobile-full {
    width: 100%;
    margin-right: 0;
  }
}
.site-form .text-field-container--row-slash {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: nowrap;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%237a7a7a%22%20viewBox%3D%220%200%2019%2033%22%3E%3Cpath%20d%3D%22M17.55,1.54,3.89,31.78a.38.38,0,0,1-.34.22H1.38A.38.38,0,0,1,1,31.46L14.69,1.22A.39.39,0,0,1,15,1H17.2A.38.38,0,0,1,17.55,1.54Z%22/%3E%3Cpath%20d%3D%22M19,33H0V0H19Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-position: top 16px center;
  background-repeat: no-repeat;
  background-size: 9px 18px;
}
@media (min-width: 1656px) {
  .site-form .text-field-container--row-slash {
    background-position: top 21px center;
    background-size: 10px 20px;
  }
}
.site-form .mdc-button {
  min-height: 48px;
  font-size: 16px;
}
@media (min-width: 1656px) {
  .site-form .mdc-button {
    min-height: 64px;
    font-size: 24px;
  }
}
.site-form .mdc-text-field--outlined .mdc-floating-label,
.site-form .mdc-text-field--textarea .mdc-floating-label {
  top: 14px;
  transform: none;
}
.firefox .site-form .mdc-text-field--outlined .mdc-floating-label,
.firefox .site-form .mdc-text-field--textarea .mdc-floating-label {
  top: 13px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--outlined .mdc-floating-label,
  .site-form .mdc-text-field--textarea .mdc-floating-label {
    top: 19px;
  }
  .firefox .site-form .mdc-text-field--outlined .mdc-floating-label,
  .firefox .site-form .mdc-text-field--textarea .mdc-floating-label {
    top: 18px;
  }
}
.site-form .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.site-form .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  transform: translateY(-150%) scale(0.75);
  top: 21px;
}
.firefox .site-form .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.firefox .site-form .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 20px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .site-form .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 19px;
    top: 24px;
  }
  .firefox .site-form .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .firefox .site-form .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 20px;
  }
}
.site-form .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  transform: translateY(-150%) scale(0.75);
  top: 23px;
}
.firefox .site-form .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 22px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 19px;
    top: 25px;
  }
  .firefox .site-form .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 21px;
  }
}
.site-form .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.site-form .mdc-text-field--outlined.mdc-text-field--focused.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 20px;
}
.firefox .site-form .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.firefox .site-form .mdc-text-field--outlined.mdc-text-field--focused.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 19px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .site-form .mdc-text-field--outlined.mdc-text-field--focused.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 23px;
  }
  .firefox .site-form .mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .firefox .site-form .mdc-text-field--outlined.mdc-text-field--focused.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 19px;
  }
}
.site-form .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 23px;
}
.firefox .site-form .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  top: 22px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 25px;
  }
  .firefox .site-form .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 21px;
  }
}
.site-form .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,
.site-form .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing {
  border-radius: 0;
}
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__leading,
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__notch,
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__leading,
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__notch,
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--invalid) .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__leading,
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__notch,
.site-form .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__leading,
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__notch,
.site-form .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-text-field:not(.mdc-text-field--focused):not(.mdc-text-field--invalid) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-text-field:not(.mdc-text-field--focused):not(.mdc-text-field--invalid) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.site-form .mdc-text-field:not(.mdc-text-field--focused):not(.mdc-text-field--invalid) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-text-field:not(.mdc-text-field--focused).mdc-text-field--invalid .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-text-field:not(.mdc-text-field--focused).mdc-text-field--invalid .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.site-form .mdc-text-field:not(.mdc-text-field--focused).mdc-text-field--invalid .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form__validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: 0;
  transform: translateY(50%);
  left: 13px;
  color: #ff0000;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  background-color: #fff;
  font-weight: 300;
  user-select: none;
}
@media (min-width: 375px) {
  .site-form__validation-text {
    font-size: 12px;
  }
}
@media (min-width: 1656px) {
  .site-form__validation-text {
    font-size: 13px;
  }
}
input:valid ~ .site-form__validation-text {
  display: none !important;
}
.was-validated input:invalid ~ .site-form__validation-text {
  display: block !important;
}
.was-validated .mdc-text-field--invalid .site-form__validation-text {
  display: block;
}
.was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
  display: block;
  position: static;
  padding-left: 0;
  padding-right: 0;
  background-color: transparent;
  margin: 6px 0 0 0;
  width: 100%;
  max-width: none;
  transform: none;
}
@media (min-width: 1656px) {
  .was-validated .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
    padding-left: 44px;
  }
}
.site-form__server-error {
  color: #ff0000;
  font-weight: 300;
  margin-bottom: 20px;
}
.site-form__server-validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: 0;
  transform: translateY(50%);
  left: 13px;
  color: #ff0000;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  background-color: #fff;
  font-weight: 300;
  user-select: none;
}
@media (min-width: 375px) {
  .site-form__server-validation-text {
    font-size: 12px;
  }
}
@media (min-width: 1656px) {
  .site-form__server-validation-text {
    font-size: 13px;
  }
}
.server-side-validated .server-side--invalid ~ .site-form__server-validation-text {
  display: block;
}
.site-form__js-validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: 0;
  transform: translateY(50%);
  left: 13px;
  color: #ff0000;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  background-color: #fff;
  font-weight: 300;
  user-select: none;
}
@media (min-width: 375px) {
  .site-form__js-validation-text {
    font-size: 12px;
  }
}
@media (min-width: 1656px) {
  .site-form__js-validation-text {
    font-size: 13px;
  }
}
.js-side-validated .js-side--invalid ~ .site-form__js-validation-text {
  display: block;
}
.site-form .mdc-menu {
  z-index: 2000;
}
@media (min-width: 992px) {
  .site-form .mdc-menu {
    z-index: 10;
  }
}
.site-form .mdc-list-item {
  height: auto;
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 10px;
  display: block;
  text-overflow: ellipsis;
  width: 100%;
}
.site-form .mdc-select--outlined {
  border-radius: 0;
  letter-spacing: 0;
  line-height: 1.15;
  height: 48px;
}
.site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading {
  /* @noflip */
  border-radius: 0 0 0 0;
}
[dir=rtl] .site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading, .site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl] {
  /* @noflip */
  border-radius: 0 0 0 0;
}
.site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing {
  /* @noflip */
  border-radius: 0 0 0 0;
}
[dir=rtl] .site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .site-form .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl] {
  /* @noflip */
  border-radius: 0 0 0 0;
}
.site-form .mdc-select--outlined .mdc-select__selected-text {
  border-radius: 0;
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,
.site-form .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,
.site-form .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
  border-width: 2px;
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__leading,
.site-form .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__notch,
.site-form .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__anchor:hover .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #00a5e3;
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {
  color: #00a5e3;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined {
    background-size: 15px 31px;
    background-position: right 14px center;
    line-height: 1.4;
    height: 64px;
    font-size: 19px;
  }
}
.site-form .mdc-select--outlined .mdc-menu {
  width: 100%;
}
.site-form .mdc-select--outlined .mdc-select__anchor {
  width: 100%;
  height: 48px;
  background-position: right 12px center;
  background-size: 12px 25px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%2300AEEF%22%20viewBox%3D%220%200%2016%2032%22%3E%3Cpath%20d%3D%22M14,11.1H3L8.5,2ZM3,21H14L8.5,30.1Z%22/%3E%3Cpath%20d%3D%22M16,32H0V0H16Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-color: #fff;
  transition: background-color 0.2s;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined .mdc-select__anchor {
    height: 64px;
  }
}
.site-form .mdc-select--outlined .mdc-select__selected-text {
  line-height: 47px;
  padding-top: 0;
  padding-bottom: 0;
  height: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  white-space: nowrap;
  display: block;
  padding-right: 28px;
  min-width: 0;
  user-select: none;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined .mdc-select__selected-text {
    line-height: 62px;
    font-size: 19px;
    padding-right: 52px;
  }
}
.site-form .mdc-select--outlined .mdc-floating-label {
  top: 22px;
  cursor: pointer;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined .mdc-floating-label {
    top: 30px;
  }
}
.site-form .mdc-select--outlined .mdc-floating-label.mdc-floating-label--float-above {
  top: 13px;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined .mdc-floating-label.mdc-floating-label--float-above {
    top: 24px;
  }
}
.firefox .site-form .mdc-select--outlined .mdc-floating-label.mdc-floating-label--float-above {
  top: 12px;
}
@media (min-width: 1656px) {
  .firefox .site-form .mdc-select--outlined .mdc-floating-label.mdc-floating-label--float-above {
    top: 22px;
  }
}
.site-form .mdc-select--outlined .mdc-select__anchor .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.site-form .mdc-select--outlined .mdc-select__anchor.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  transform: translateY(-106%) scale(0.75);
  color: #00a5e3;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--outlined .mdc-select__anchor .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .site-form .mdc-select--outlined .mdc-select__anchor.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    transform: translateY(-147%) scale(0.75);
    font-size: 19px;
  }
}
.site-form .mdc-select--outlined:hover .mdc-select__anchor, .site-form .mdc-select--outlined:focus .mdc-select__anchor {
  background-color: rgba(0, 174, 239, 0.06);
}
.site-form .mdc-select--outlined:not(.mdc-select--disabled) .mdc-floating-label {
  color: #00a5e3;
}
.site-form .mdc-select--outlined .mdc-select-input-hidden {
  position: absolute;
  top: -100px;
  left: 0;
  z-index: -1;
  user-select: none;
  width: 100%;
  height: 100%;
  opacity: 0;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--compact {
    background-size: 15px 31px;
    background-position: right 14px center;
    line-height: 1.4;
    height: 54px;
    font-size: 16px;
  }
}
.site-form .mdc-select--compact .mdc-select__anchor {
  width: 100%;
  height: 48px;
  background-position: right 12px center;
  background-size: 12px 25px;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--compact .mdc-select__anchor {
    height: 54px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-select--compact .mdc-select__selected-text {
    line-height: 53px;
    font-size: 16px;
  }
}
.site-form .mdc-select--compact .mdc-floating-label.mdc-floating-label--float-above {
  top: 13px;
}
@media (min-width: 1656px) {
  .site-form .mdc-select--compact .mdc-floating-label.mdc-floating-label--float-above {
    top: 19px;
  }
}
.site-form .mdc-select--compact .mdc-select__anchor .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.site-form .mdc-select--compact .mdc-select__anchor.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  transform: translateY(-104%) scale(0.75);
}
@media (min-width: 1656px) {
  .site-form .mdc-select--compact .mdc-select__anchor .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .site-form .mdc-select--compact .mdc-select__anchor.mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    transform: translateY(-147%) scale(0.75);
    font-size: 16px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--compact {
    line-height: 1.55;
    height: 54px;
    font-size: 16px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--compact .mdc-floating-label {
    top: 17px;
    font-size: 16px;
  }
}
@media (min-width: 1656px) {
  .firefox .site-form .mdc-text-field--compact .mdc-floating-label {
    top: 16px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--compact .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 20px;
    font-size: 16px;
  }
}
@media (min-width: 1656px) {
  .firefox .site-form .mdc-text-field--compact .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 19px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--compact.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 19px;
  }
}
@media (min-width: 1656px) {
  .firefox .site-form .mdc-text-field--compact.mdc-text-field--focused .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    top: 18px;
  }
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--compact .mdc-text-field__input {
    font-size: 16px;
  }
}
.site-form .mdc-text-field--textarea {
  height: auto;
  width: 100%;
}
.site-form .mdc-text-field--textarea .mdc-text-field__input {
  resize: none;
  margin-top: 10px;
}
@media (min-width: 1656px) {
  .site-form .mdc-text-field--textarea .mdc-text-field__input {
    margin-top: 17px;
  }
}
.site-form__help-text {
  margin-top: 10px;
}
.mdc-form-field--checkbox > .site-form__help-text {
  padding-left: 45px;
}
.site-form__help-text--small {
  font-size: 10.5px;
  font-weight: 300;
}
@media (min-width: 375px) {
  .site-form__help-text--small {
    font-size: 12px;
  }
}
@media (min-width: 1656px) {
  .site-form__help-text--small {
    font-size: 13px;
  }
}
.site-form__info {
  text-align: left;
  font-weight: 300;
  font-size: 12.5px;
  margin-top: 15px;
  margin-bottom: 5px;
  padding: 0;
  line-height: 1.43;
}
.site-form__info--center {
  text-align: center;
}
.site-form__info--spaced {
  margin-top: 32px;
}
@media (min-width: 1656px) {
  .site-form__info {
    margin-top: 20px;
    margin-bottom: 10px;
    line-height: 1.7;
    font-size: 14px;
  }
}
.site-form__info a:hover, .site-form__info a:focus {
  text-decoration: underline;
}
.site-form .mdc-text-field__input:required ~ .mdc-floating-label:not(.required)::after, .site-form .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label:not(.required)::after {
  display: none;
}

.kaliopcustomforms-form--default {
  max-width: 620px;
  margin: 0 auto;
}
.kaliopcustomforms-form--default button[type=submit] {
  margin: 0 auto;
  display: block;
}
.kaliopcustomforms-form--default .btn--blue:disabled {
  background-color: #2653B9;
}
.kaliopcustomforms-form__message-container {
  padding-bottom: 10px;
  font-size: 16px;
}
.kaliopcustomforms-form__message-container--error {
  color: #ff0000;
}
.kaliopcustomforms-form__message-container--warning {
  color: #F26A21;
}
.kaliopcustomforms-form__message-container--success {
  color: #6ec01e;
}

.custom-field--indented {
  margin-left: 35px;
}

.static_text-field {
  display: inline-block;
}
.static_text-field--small {
  font-size: 12px;
}
.static_text-field--normal {
  font-size: 14px;
}
.static_text-field--large {
  font-size: 19px;
  font-weight: 400;
}

.timeless-form {
  max-width: 682px;
  margin: 0 auto;
}
.timeless-form__actions {
  text-align: center;
}

.annual-form {
  max-width: 400px;
}

.newsletter-agreements .ezrichtext-field, .newsletter-agreements .ngl-rich_text {
  font-size: 15px;
}
@media (min-width: 375px) {
  .newsletter-agreements .ezrichtext-field, .newsletter-agreements .ngl-rich_text {
    font-size: 17px;
  }
}
@media (min-width: 1656px) {
  .newsletter-agreements .ezrichtext-field, .newsletter-agreements .ngl-rich_text {
    font-size: 19px;
  }
}
.newsletter-agreements .ezrichtext-field p:not([class]), .newsletter-agreements .ngl-rich_text p:not([class]) {
  margin-bottom: 0;
}
.newsletter-agreements__title {
  font-weight: 300;
  padding-top: 8px;
  margin-bottom: 0.8rem;
  text-align: left;
}
.newsletter-agreements__title .ezrichtext-field, .newsletter-agreements__title .ngl-rich_text, .newsletter-agreements__title {
  font-size: 15px;
}
@media (min-width: 375px) {
  .newsletter-agreements__title .ezrichtext-field, .newsletter-agreements__title .ngl-rich_text, .newsletter-agreements__title {
    font-size: 17px;
  }
}
@media (min-width: 1656px) {
  .newsletter-agreements__title .ezrichtext-field, .newsletter-agreements__title .ngl-rich_text, .newsletter-agreements__title {
    font-size: 19px;
    letter-spacing: 0.4px;
  }
}
.newsletter-agreements__title--bold {
  font-weight: 500;
}
.newsletter-agreements__choices {
  /*padding-left: 48px;
  .newsletter-agreements--collapsable & {
      padding-left: 0;
  }*/
}
.client-settings .newsletter-agreements__choices {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.client-settings .newsletter-agreements__choices .newsletter-agreements__choice {
  width: 100%;
}
@media (min-width: 1200px) {
  .client-settings .newsletter-agreements__choices .newsletter-agreements__choice {
    width: 47%;
  }
}
.newsletter-agreements__choice {
  position: relative;
}
.newsletter-agreements__toggle {
  border: none;
  overflow: hidden;
  font-family: inherit;
  outline: none;
  margin: 0;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: right 0 center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M33.87,27a1.13,1.13,0,0,1-.8-.33L18,11.72l-15.07,15a1.13,1.13,0,0,1-1.6,0,1.12,1.12,0,0,1,0-1.59L17.2,9.33a1.13,1.13,0,0,1,1.6,0L34.67,25.08a1.13,1.13,0,0,1-.8,1.92Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-color: transparent;
  font-weight: 300;
  line-height: 1.25;
  user-select: none;
  position: absolute;
  top: 7px;
  right: 0;
  padding-right: 30px;
  color: #00AEEF;
  font-size: 15px;
}
@media (min-width: 375px) {
  .newsletter-agreements__toggle {
    font-size: 17px;
  }
}
@media (min-width: 1656px) {
  .newsletter-agreements__toggle {
    font-size: 19px;
  }
}
.newsletter-agreements__toggle:focus {
  outline: none;
}
.newsletter-agreements__toggle .newsletter-agreements__toggle--collapsed {
  display: none;
}
.newsletter-agreements__toggle .newsletter-agreements__toggle--shown {
  display: inline;
}
.newsletter-agreements__toggle.collapsed {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M2.13,9a1.13,1.13,0,0,1,.8.33L18,24.28,33.07,9.33a1.13,1.13,0,0,1,1.6,0,1.12,1.12,0,0,1,0,1.59L18.8,26.67a1.13,1.13,0,0,1-1.6,0L1.33,10.92A1.13,1.13,0,0,1,2.13,9Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.newsletter-agreements__toggle.collapsed .newsletter-agreements__toggle--collapsed {
  display: inline;
}
.newsletter-agreements__toggle.collapsed .newsletter-agreements__toggle--shown {
  display: none;
}
.newsletter-agreements__panel .newsletter-agreements__info {
  margin: 0;
  padding-bottom: 28px;
}
@media (min-width: 1656px) {
  .newsletter-agreements__panel .newsletter-agreements__info {
    padding-bottom: 16px;
  }
}
.newsletter-agreements__info {
  text-align: left;
  font-weight: 300;
  margin-top: 22px;
  margin-bottom: 28px;
  padding: 0;
  line-height: 1.43;
}
.newsletter-agreements__info--spaced {
  margin-top: 32px;
}
@media (min-width: 1656px) {
  .newsletter-agreements__info--spaced {
    margin-top: 22px;
  }
}
.newsletter-agreements__info--indented, .newsletter-agreements__choice .newsletter-agreements__info {
  padding-left: 35px;
}
@media (min-width: 1656px) {
  .newsletter-agreements__info--indented, .newsletter-agreements__choice .newsletter-agreements__info {
    padding-left: 45px;
  }
}
.newsletter-agreements__info .ezrichtext-field, .newsletter-agreements__info .ngl-rich_text, .newsletter-agreements__info {
  font-size: 12.5px;
}
@media (min-width: 1656px) {
  .newsletter-agreements__info .ezrichtext-field, .newsletter-agreements__info .ngl-rich_text, .newsletter-agreements__info {
    line-height: 1.7;
    font-size: 14px;
  }
}
@media (min-width: 1656px) {
  .newsletter-agreements__info {
    margin-bottom: 16px;
  }
}
.newsletter-agreements__info a:hover, .newsletter-agreements__info a:focus {
  text-decoration: underline;
}

.mdc-checkbox-multiple .site-form__validation-text {
  left: 0;
  bottom: 0;
  position: relative;
  margin-bottom: 14px;
  max-width: unset;
}

.server-side--invalid .site-form__validation-text {
  display: block;
}

.was-validated .newsletter-agreements .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
  padding-left: 35px;
}
@media (min-width: 1656px) {
  .was-validated .newsletter-agreements .site-form__checkbox--required.site-form__checkbox--unchecked ~ .site-form__validation-text {
    padding-left: 44px;
  }
}

.modal-full--newsletter .modal-full__content {
  padding: 0;
}
.modal-full--newsletter .modal-full__close {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23fff%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M2.54,1.17h0a1.08,1.08,0,0,1,.86.39L18,16.12,32.52,1.56a1.13,1.13,0,0,1,.92-.39,1.24,1.24,0,0,1,1,.39,1.32,1.32,0,0,1,.36.92,1.28,1.28,0,0,1-.39.92L19.79,18,34.36,32.52a1.26,1.26,0,0,1,.39.92,1.33,1.33,0,0,1-.36.92,1.2,1.2,0,0,1-.92.39,1.3,1.3,0,0,1-.95-.39L18,19.79,3.4,34.36a1.28,1.28,0,0,1-.92.39,1.26,1.26,0,0,1-.92-.39,1.28,1.28,0,0,1-.39-.92,1.26,1.26,0,0,1,.39-.92L16.12,18,1.56,3.4a1.28,1.28,0,0,1-.39-.92,1.26,1.26,0,0,1,.39-.92,1.26,1.26,0,0,1,.92-.39Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
@media (min-width: 992px) {
  .modal-full--newsletter .mdc-dialog__surface {
    max-width: 750px;
  }
}

.modal-newsletter__row {
  margin-bottom: 20px;
  position: relative;
}
.modal-newsletter__row--center {
  align-items: center;
  display: flex;
}
.modal-newsletter__form {
  padding: 0 50px;
  margin-top: -45px;
}
.modal-newsletter__form .mdc-text-field {
  border: 1px solid #00AEEF;
  border-radius: 0;
  background-color: #fff;
  width: 100%;
}
.modal-newsletter__form .custom-validation-text {
  position: absolute;
  margin: auto;
  max-width: calc(100% - 26px);
  bottom: -14px;
  -webkit-transform: translateY(50%);
  transform: translateY(50%);
  left: 0;
  font-size: 10.5px;
  line-height: 1;
  display: none;
  padding-left: 2px;
  padding-right: 2px;
  font-weight: 500;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  color: #ff0000 !important;
}
.modal-newsletter__form .mdc-text-field--invalid {
  border-color: #ff0000 !important;
}
.modal-newsletter__form .mdc-text-field--invalid label {
  color: #ff0000 !important;
}
.modal-newsletter__form .mdc-checkbox--invalid ~ label {
  color: #ff0000 !important;
}
.modal-newsletter__form .mdc-text-field--invalid ~ .custom-validation-text,
.modal-newsletter__form .mdc-checkbox--invalid ~ .custom-validation-text {
  display: block;
}
.modal-newsletter__send {
  width: 60%;
  margin-left: auto;
  margin-right: auto;
}
.modal-newsletter__info {
  font-weight: 300;
  font-size: 12px;
  line-height: 16px;
  margin-top: 10px;
}
.modal-newsletter .site-form .mdc-form-field--checkbox label {
  font-size: 14px !important;
}
.modal-newsletter__figure {
  position: relative;
  display: block;
}
.modal-newsletter__canvas {
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
  display: block;
}
.modal-newsletter__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .modal-newsletter__img {
  position: absolute;
  left: 0;
  top: 0;
}

.modal-newsletter-thanks__figure {
  position: relative;
  display: block;
}
.modal-newsletter-thanks__canvas {
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
  display: block;
}
.modal-newsletter-thanks__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .modal-newsletter-thanks__img {
  position: absolute;
  left: 0;
  top: 0;
}

.logos {
  margin-top: 27px;
  margin-bottom: 30px;
  padding: 0;
}
@media (min-width: 768px) {
  .logos {
    padding: 0 15px;
  }
}
@media (min-width: 1656px) {
  .logos {
    margin-top: 85px;
    margin-bottom: 50px;
  }
}
.logos .logo {
  width: auto;
  height: 80px;
}
.logos--small .logo {
  width: auto;
  height: 40px;
}
.logos__title {
  font-size: 28px;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00AEEF;
  margin-bottom: 35px;
  text-align: center;
}
@media (min-width: 992px) {
  .logos__title {
    text-align: left;
    font-size: 36px;
    margin-bottom: 35px;
    margin-left: 35px;
  }
}
.logos__row--more {
  display: none;
}
@media (min-width: 1200px) {
  .logos__row--more {
    display: block;
    text-align: center;
    order: 1;
    margin-top: 60px;
    margin-bottom: 70px;
  }
}
.logos__item {
  position: relative;
  min-height: 290px;
}
.logos__item .logo {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.logos__slider {
  width: calc(100% - 100px);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1656px) {
  .logos__slider {
    width: 100%;
  }
}
.logos .splide__slide:first-of-type:after {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  height: 100%;
  top: 0;
  left: -5px;
  border-right: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 480px) {
  .logos .splide__slide:first-of-type:after {
    left: -10px;
  }
}
@media (min-width: 768px) {
  .logos .splide__slide:first-of-type:after {
    left: -15px;
  }
}

.logo {
  position: relative;
  text-align: center;
  overflow: hidden;
  border-radius: 4px;
  display: flex;
}
.logo__canvas {
  background-color: #fff;
  margin: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.logo__img {
  position: absolute;
  margin: auto;
  top: -100%;
  bottom: -100%;
  left: -100%;
  right: -100%;
  max-width: 100%;
  max-height: 100%;
}
.logo__overlink {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s;
}
.logo__overlink::before, .logo__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.logo__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.logo__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.logo__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.logo__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.logo__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.logo__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.logo__overlink::before, .logo__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.logo__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.logo__overlink:hover::before {
  opacity: 0;
}
.logo__overlink.mdc-ripple-upgraded--background-focused::before, .logo__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.logo__overlink::before, .logo__overlink::after {
  background-color: #201d1d;
}
.logo__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.logo__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.04;
}
.logo__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.04;
}
.tab-navigation .logo__overlink:focus {
  outline: none;
}
.tab-navigation .logo__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .logo__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
.logo__overlink:hover {
  background-color: rgba(32, 29, 29, 0.03);
}

.card-2 {
  position: relative;
  overflow: hidden;
  display: flex;
  border-top: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 992px) {
  .card-2 {
    border: none;
    display: block;
    overflow: visible;
  }
}
.card-2__header {
  width: calc(100% - 112px);
  display: flex;
  flex-direction: column;
  padding: 17px 33px 17px 22px;
}
@media (min-width: 992px) {
  .card-2__header {
    padding: 0;
    width: 100%;
    position: relative;
    margin-bottom: 20px;
  }
}
@media (min-width: 1200px) {
  .card-2__header {
    margin-bottom: 30px;
  }
}
@media (min-width: 1400px) {
  .card-2__header {
    margin-bottom: 40px;
  }
}
@media (min-width: 1656px) {
  .card-2__header {
    margin-bottom: 50px;
  }
}
@media (min-width: 992px) {
  .card-2__header:after {
    content: "";
    display: block;
    width: 73px;
    height: 0;
    border-bottom: 2px solid #d6d8da;
    position: absolute;
    bottom: -10px;
    left: 0;
  }
}
@media (min-width: 1200px) {
  .card-2__header:after {
    bottom: -15px;
  }
}
@media (min-width: 1400px) {
  .card-2__header:after {
    bottom: -20px;
  }
}
@media (min-width: 1656px) {
  .card-2__header:after {
    bottom: -25px;
  }
}
.card-2__headline {
  color: #201d1d;
  margin: 0;
  overflow: hidden;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  width: 100%;
  letter-spacing: 0.4px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  order: 2;
  height: 76px;
}
.show .card-2__headline {
  height: 75px;
}
@media (min-width: 992px) {
  .card-2__headline {
    margin: 0 0 8px 0;
    order: 1;
    font-size: 18px;
    line-height: 26px;
    height: 52px;
    font-weight: 400;
    letter-spacing: 0.6px;
    padding: 0;
    position: static;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
  }
}
@media (min-width: 1200px) {
  .card-2__headline {
    font-size: 20px;
    line-height: 28px;
    height: 56px;
  }
}
@media (min-width: 1400px) {
  .card-2__headline {
    font-size: 22px;
    line-height: 30px;
    height: 60px;
  }
}
@media (min-width: 1656px) {
  .card-2__headline {
    font-size: 24px;
    line-height: 1.25;
    height: 60px;
  }
}
.card-2__info {
  order: 0;
  display: flex;
  justify-content: space-between;
  margin-bottom: 18px;
}
@media (min-width: 992px) {
  .card-2__info {
    margin-bottom: 16px;
  }
}
.card-2__label {
  display: inline-block;
  vertical-align: top;
  color: #fff;
  background-color: #00AEEF;
  font-size: 10.5px;
  line-height: 17px;
  height: 17px;
  padding: 0 6px;
  margin: 0;
}
@media (min-width: 992px) {
  .card-2__label {
    font-size: 12px;
    line-height: 27px;
    height: 27px;
  }
}
.card-2__time {
  display: inline-block;
  vertical-align: top;
  color: #201d1d;
  padding: 0;
  font-weight: 500;
  font-size: 10.5px;
  line-height: 17px;
  height: 17px;
}
@media (min-width: 992px) {
  .card-2__time {
    font-size: 12px;
    line-height: 27px;
    height: 27px;
  }
}
.card-2__description {
  display: none;
}
@media (min-width: 992px) {
  .card-2__description {
    overflow: hidden;
    font-size: 15px;
    line-height: 20px;
    font-weight: 300;
    letter-spacing: 0.3px;
    hyphens: auto;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
  }
}
@media (min-width: 1200px) {
  .card-2__description {
    font-size: 16px;
    line-height: 22px;
  }
}
@media (min-width: 1400px) {
  .card-2__description {
    line-height: 26px;
  }
}
@media (min-width: 1656px) {
  .card-2__description {
    line-height: 1.476;
  }
}
.card-2__figure {
  margin: 0;
  position: relative;
  display: block;
  order: 0;
  width: 112px;
}
@media (min-width: 992px) {
  .card-2__figure {
    order: unset;
    width: auto;
    margin-bottom: 20px;
  }
}
.card-2__canvas--desktop, .card-2__canvas--mobile {
  background-color: #D8D1C9;
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.card-2__canvas--desktop {
  display: none;
}
@media (min-width: 992px) {
  .card-2__canvas--desktop {
    display: block;
  }
}
.card-2__canvas--mobile {
  display: block;
}
@media (min-width: 992px) {
  .card-2__canvas--mobile {
    display: none;
  }
}
.card-2__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .card-2__img {
  position: absolute;
  left: 0;
  top: 0;
}
.card-2__overlink {
  position: absolute;
  overflow: hidden;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s, border-color 0.2s;
  border-top: none;
  border-bottom: none;
}
.card-2__overlink::before, .card-2__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.card-2__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.card-2__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.card-2__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.card-2__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.card-2__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.card-2__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.card-2__overlink::before, .card-2__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.card-2__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.card-2__overlink:hover::before {
  opacity: 0;
}
.card-2__overlink.mdc-ripple-upgraded--background-focused::before, .card-2__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.card-2__overlink::before, .card-2__overlink::after {
  background-color: #201d1d;
}
.card-2__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.card-2__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.04;
}
.card-2__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.04;
}
.tab-navigation .card-2__overlink:focus {
  outline: none;
}
.tab-navigation .card-2__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .card-2__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
@media (min-width: 992px) {
  .card-2__overlink {
    border-top: 4px solid rgba(0, 174, 239, 0);
    border-bottom: 4px solid rgba(0, 174, 239, 0);
    top: -15px;
    left: -15px;
    width: calc(100% + 30px);
    height: calc(100% + 30px);
  }
}
.card-2__overlink:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
@media (min-width: 992px) {
  .card-2:hover .card-2__overlink {
    border-top: 4px solid #00AEEF;
    border-bottom: 4px solid #00AEEF;
  }
}
.card-2--vertical {
  border-top: 0;
  flex-direction: column;
}
.card-2--vertical .card-2__header {
  padding: 0;
  width: 100%;
  position: relative;
  margin-bottom: 20px;
}
.card-2--vertical .card-2__figure {
  width: 100%;
}
.card-2--vertical .card-2__description {
  display: block;
}

.slider__item .card-2 {
  position: relative;
  overflow: hidden;
  display: flex;
  border-top: 1px solid rgba(0, 174, 239, 0.3);
}
@media (min-width: 768px) {
  .slider__item .card-2 {
    border: none;
    display: block;
    overflow: visible;
  }
}
.slider__item .card-2__header {
  width: calc(100% - 112px);
  display: flex;
  flex-direction: column;
  padding: 17px 33px 17px 22px;
}
@media (min-width: 768px) {
  .slider__item .card-2__header {
    padding: 0;
    width: 100%;
    position: relative;
    margin-bottom: 20px;
  }
}
@media (min-width: 1200px) {
  .slider__item .card-2__header {
    margin-bottom: 30px;
  }
}
@media (min-width: 1400px) {
  .slider__item .card-2__header {
    margin-bottom: 40px;
  }
}
@media (min-width: 1656px) {
  .slider__item .card-2__header {
    margin-bottom: 50px;
  }
}
@media (min-width: 768px) {
  .slider__item .card-2__header:after {
    content: "";
    display: block;
    width: 73px;
    height: 0;
    border-bottom: 2px solid #d6d8da;
    position: absolute;
    bottom: -10px;
    left: 0;
  }
}
@media (min-width: 1200px) {
  .slider__item .card-2__header:after {
    bottom: -15px;
  }
}
@media (min-width: 1400px) {
  .slider__item .card-2__header:after {
    bottom: -20px;
  }
}
@media (min-width: 1656px) {
  .slider__item .card-2__header:after {
    bottom: -25px;
  }
}
.slider__item .card-2__headline {
  color: #201d1d;
  margin: 0;
  overflow: hidden;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  width: 100%;
  letter-spacing: 0.4px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  order: 2;
  height: 76px;
}
.show .slider__item .card-2__headline {
  height: 75px;
}
@media (min-width: 768px) {
  .slider__item .card-2__headline {
    margin: 0 0 8px 0;
    order: 1;
    font-size: 18px;
    line-height: 26px;
    height: 52px;
    font-weight: 400;
    letter-spacing: 0.6px;
    padding: 0;
    position: static;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
  }
}
@media (min-width: 1200px) {
  .slider__item .card-2__headline {
    font-size: 20px;
    line-height: 28px;
    height: 56px;
  }
}
@media (min-width: 1400px) {
  .slider__item .card-2__headline {
    font-size: 22px;
    line-height: 30px;
    height: 60px;
  }
}
@media (min-width: 1656px) {
  .slider__item .card-2__headline {
    font-size: 24px;
    line-height: 1.25;
    height: 60px;
  }
}
.slider__item .card-2__info {
  order: 0;
  display: flex;
  justify-content: space-between;
  margin-bottom: 18px;
}
@media (min-width: 768px) {
  .slider__item .card-2__info {
    margin-bottom: 16px;
  }
}
.slider__item .card-2__label {
  display: inline-block;
  vertical-align: top;
  color: #fff;
  background-color: #00AEEF;
  font-size: 10.5px;
  line-height: 17px;
  height: 17px;
  padding: 0 6px;
  margin: 0;
}
@media (min-width: 768px) {
  .slider__item .card-2__label {
    font-size: 12px;
    line-height: 27px;
    height: 27px;
  }
}
.slider__item .card-2__time {
  display: inline-block;
  vertical-align: top;
  color: #201d1d;
  padding: 0;
  font-weight: 500;
  font-size: 10.5px;
  line-height: 17px;
  height: 17px;
}
@media (min-width: 768px) {
  .slider__item .card-2__time {
    font-size: 12px;
    line-height: 27px;
    height: 27px;
  }
}
.slider__item .card-2__description {
  display: none;
}
@media (min-width: 768px) {
  .slider__item .card-2__description {
    overflow: hidden;
    font-size: 15px;
    line-height: 20px;
    font-weight: 300;
    letter-spacing: 0.3px;
    hyphens: auto;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
  }
}
@media (min-width: 1200px) {
  .slider__item .card-2__description {
    font-size: 16px;
    line-height: 22px;
  }
}
@media (min-width: 1400px) {
  .slider__item .card-2__description {
    line-height: 26px;
  }
}
@media (min-width: 1656px) {
  .slider__item .card-2__description {
    line-height: 1.476;
  }
}
.slider__item .card-2__figure {
  margin: 0;
  position: relative;
  display: block;
  order: 0;
  width: 112px;
}
@media (min-width: 768px) {
  .slider__item .card-2__figure {
    order: unset;
    width: auto;
    margin-bottom: 20px;
  }
}
.slider__item .card-2__canvas--desktop, .slider__item .card-2__canvas--mobile {
  background-color: #D8D1C9;
  margin: 0;
  width: 100%;
  max-width: 100%;
  user-select: none;
}
.slider__item .card-2__canvas--desktop {
  display: none;
}
@media (min-width: 768px) {
  .slider__item .card-2__canvas--desktop {
    display: block;
  }
}
.slider__item .card-2__canvas--mobile {
  display: block;
}
@media (min-width: 768px) {
  .slider__item .card-2__canvas--mobile {
    display: none;
  }
}
.slider__item .card-2__img {
  width: 100%;
  display: block;
  user-select: none;
}
canvas + picture .slider__item .card-2__img {
  position: absolute;
  left: 0;
  top: 0;
}
.slider__item .card-2__overlink {
  position: absolute;
  overflow: hidden;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  --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);
  transition: background-color 0.2s, border-color 0.2s;
  border-top: none;
  border-bottom: none;
}
.slider__item .card-2__overlink::before, .slider__item .card-2__overlink::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.slider__item .card-2__overlink::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.slider__item .card-2__overlink.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.slider__item .card-2__overlink.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.slider__item .card-2__overlink::before, .slider__item .card-2__overlink::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.slider__item .card-2__overlink:hover::before {
  opacity: 0;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded--background-focused::before, .slider__item .card-2__overlink:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0;
}
.slider__item .card-2__overlink::before, .slider__item .card-2__overlink::after {
  background-color: #201d1d;
}
.slider__item .card-2__overlink:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.slider__item .card-2__overlink:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.04;
}
.slider__item .card-2__overlink.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.04;
}
.tab-navigation .slider__item .card-2__overlink:focus {
  outline: none;
}
.tab-navigation .slider__item .card-2__overlink:focus.mdc-ripple-upgraded--background-focused::before, .tab-navigation .slider__item .card-2__overlink:focus:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.2;
}
@media (min-width: 768px) {
  .slider__item .card-2__overlink {
    border-top: 4px solid rgba(0, 174, 239, 0);
    border-bottom: 4px solid rgba(0, 174, 239, 0);
    top: -15px;
    left: -15px;
    width: calc(100% + 30px);
    height: calc(100% + 30px);
  }
}
.slider__item .card-2__overlink:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
@media (min-width: 768px) {
  .card-2:hover .slider__item .card-2__overlink {
    border-top: 4px solid #00AEEF;
    border-bottom: 4px solid #00AEEF;
  }
}
.slider__item .card-2--vertical {
  border-top: 0;
  flex-direction: column;
}
.slider__item .card-2--vertical .card-2__header {
  padding: 0;
  width: 100%;
  position: relative;
  margin-bottom: 20px;
}
.slider__item .card-2--vertical .card-2__figure {
  width: 100%;
}
.slider__item .card-2--vertical .card-2__description {
  display: block;
  padding-top: 0px;
}
@media (max-width: 768px) {
  .slider__item .card-2--vertical .card-2__description {
    padding-top: 16px;
  }
}

.hero-view .topbar {
  position: static;
  top: unset;
}

.topbar {
  text-align: center;
  font-weight: 500;
  position: relative;
  top: 0;
  padding: 11px;
}
@media (min-width: 992px) {
  .topbar {
    top: -161px;
    height: 48px;
  }
}
.topbar p {
  margin: 0 !important;
}
.topbar-red {
  background-color: #ff0000;
  color: #fff;
}
.topbar-red a {
  color: #fff;
}
.topbar-red a:hover {
  color: #fff !important;
}
.topbar-yellow {
  background-color: #FFFF01;
  color: #000;
}
.topbar-yellow a {
  color: #000;
}
.topbar-yellow a:hover {
  color: #000 !important;
}
.topbar a {
  font-weight: bold;
  text-decoration: underline;
}
.topbar a:hover {
  text-decoration: none !important;
}
.topbar .ibexa-btn {
  background-color: transparent !important;
  border: 1px solid !important;
  padding: 6px;
  border-radius: 7px;
}
.topbar .ibexa-btn a {
  text-decoration: none !important;
}

.text_with_numbers {
  background-color: #e1f4fd;
  color: #2653B9;
  padding: 35px 0 35px 0;
  overflow: inherit;
}
@media (min-width: 1400px) {
  .text_with_numbers {
    padding: 70px 0;
  }
}
.text_with_numbers__body {
  max-width: 1342px;
  margin: 0 auto;
}
.text_with_numbers__content {
  width: 60%;
  position: relative;
  margin: auto;
}
.text_with_numbers__content a {
  color: #2653B9;
  text-decoration: underline;
}
.text_with_numbers__content a:hover {
  text-decoration: none !important;
}
@media (max-width: 768px) {
  .text_with_numbers__content {
    width: 80%;
  }
}
.text_with_numbers .splide__arrows {
  display: none;
}
@media (max-width: 992px) {
  .text_with_numbers .splide__arrows {
    display: block;
  }
}
.text_with_numbers .splide__arrows .splide__arrow {
  display: block;
}
.text_with_numbers__item {
  position: relative;
  font-size: 14px;
  padding: 0 75px;
  text-align: center;
  line-height: normal;
}
@media (min-width: 375px) {
  .text_with_numbers__item {
    font-size: 14px;
  }
}
@media (min-width: 1400px) {
  .text_with_numbers__item {
    font-size: 16px;
    padding: 0 75px;
  }
}
.text_with_numbers__text {
  letter-spacing: 0.5px;
  line-height: 24px;
  position: relative;
  z-index: 1;
  margin: 0;
}
.text_with_numbers__number {
  font-size: 48px;
  color: #2653B9;
  font-weight: 800;
  position: relative;
}
@media (min-width: 375px) {
  .text_with_numbers__number {
    font-size: 48px;
  }
}
@media (min-width: 1400px) {
  .text_with_numbers__number {
    font-size: 64px;
  }
}
.text_with_numbers__action {
  font-size: 14px;
  font-weight: 500;
}
@media (min-width: 375px) {
  .text_with_numbers__action {
    font-size: 18px;
  }
}
@media (min-width: 1400px) {
  .text_with_numbers__action {
    font-size: 21px;
  }
}
.text_with_numbers__cta {
  position: relative;
  margin-top: 4rem;
  margin-bottom: -35px;
}
@media (min-width: 992px) {
  .text_with_numbers__cta {
    margin-bottom: -35px;
  }
}
@media (min-width: 1400px) {
  .text_with_numbers__cta {
    margin-bottom: -70px;
  }
}
.text_with_numbers__hr {
  border: none;
  border-top: 1px solid #00AEEF;
  margin: 0;
}
.text_with_numbers__button {
  position: absolute;
  right: 50%;
  top: 50%;
  transform: translate(50%, -50%);
  background-color: #fff;
  padding: 1rem;
  font-weight: 400;
  min-height: 45px;
  height: 45px;
  z-index: 1;
}

.text_with_image {
  padding: 0;
}
.text_with_image__wrapper {
  display: flex;
  flex-wrap: wrap;
  min-height: 300px;
}
@media (max-width: 768px) {
  .text_with_image__wrapper {
    background: none !important;
    flex-direction: column;
  }
}
.text_with_image__image {
  width: 40%;
  flex-shrink: 0;
  min-height: 100%;
  background-position: left;
  background-repeat: no-repeat;
  background-size: cover;
}
.text_with_image__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.text_with_image__image picture {
  display: none;
}
@media (max-width: 768px) {
  .text_with_image__image {
    width: 100%;
  }
  .text_with_image__image picture {
    display: inline;
  }
}
.text_with_image__content-wrapper {
  width: 60%;
  display: grid;
  place-items: center;
}
@media (max-width: 768px) {
  .text_with_image__content-wrapper {
    width: 100%;
  }
}
.text_with_image__inner {
  max-width: 860px;
  padding: 40px;
  text-align: right;
}
.text_with_image__inner p {
  margin-bottom: 0px !important;
}
@media (max-width: 768px) {
  .text_with_image__inner p {
    margin-bottom: 30px !important;
  }
}
@media (max-width: 1400px) {
  .text_with_image__inner {
    padding: 40px;
  }
}
@media (max-width: 768px) {
  .text_with_image__inner {
    max-width: 100%;
    padding: 40px;
    margin-left: 0px;
    text-align: center !important;
  }
}
.text_with_image__cta {
  padding-bottom: 5px;
  margin-top: 20px;
  text-align: right;
}
@media (max-width: 768px) {
  .text_with_image__cta {
    display: flex;
    justify-content: center;
  }
}
.text_with_image__button {
  width: 250px;
  padding: 1rem;
  min-height: 45px;
  font-weight: 600;
  font-size: 18px;
}

.home-products {
  margin-bottom: 40px;
  overflow: hidden;
}
@media (min-width: 1200px) {
  .home-products {
    margin-bottom: 0;
  }
}
@media (min-width: 1400px) {
  .home-products {
    overflow: visible;
  }
}
@media (min-width: 992px) {
  .home-products .glide--swipeable {
    cursor: auto !important;
  }
}
.home-products__title {
  font-size: 28px;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #F26A21;
  margin-bottom: 35px;
  margin-top: 35px;
  text-align: center;
}
@media (min-width: 992px) {
  .home-products__title {
    text-align: left;
    font-size: 36px;
    margin-bottom: 35px;
    margin-left: 35px;
    margin-top: 35px;
  }
}
@media (min-width: 1656px) {
  .home-products__title {
    margin-top: 35px;
  }
}
.home-products__slider {
  margin: 0;
  width: auto;
}
@media (min-width: 1200px) {
  .home-products__slider {
    width: 100%;
  }
}
.home-products__slider .glide__track {
  overflow: visible;
}
@media (min-width: 1400px) {
  .home-products__slider .glide__track {
    overflow: hidden;
  }
}
.home-products__item {
  margin: 1px;
  max-height: 100%;
}
@media (min-width: 1200px) {
  .home-products__item {
    max-width: 396px;
    max-height: 381px;
  }
}
.home-products__control {
  display: block;
  position: absolute;
  top: -80px;
  left: 0;
  width: 100%;
  height: 100%;
}
@media (min-width: 992px) {
  .home-products__control {
    display: none;
  }
}
.home-products__prev {
  width: 50px;
  height: 50px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-size: 34px 34px;
  background-repeat: no-repeat;
  background-position: left 6px center;
  background-color: #fff;
  border-radius: 0px;
  z-index: 1;
  position: absolute;
  left: -20px;
  top: calc(50% - 25px);
}
.home-products__prev:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
.tab-navigation .home-products__prev:focus {
  background-color: rgba(32, 29, 29, 0.03);
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M27,2.13a1.13,1.13,0,0,1-.33.8L11.72,18l15,15.07a1.13,1.13,0,0,1,0,1.6,1.12,1.12,0,0,1-1.59,0L9.33,18.8a1.13,1.13,0,0,1,0-1.6L25.08,1.33a1.13,1.13,0,0,1,1.92.8Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.home-products__next {
  width: 50px;
  height: 50px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
  background-size: 34px 34px;
  background-repeat: no-repeat;
  background-position: right 6px center;
  background-color: #fff;
  border-radius: 0px;
  z-index: 1;
  position: absolute;
  right: -20px;
  top: calc(50% - 25px);
}
.home-products__next:hover {
  background-color: rgba(32, 29, 29, 0.03);
}
.tab-navigation .home-products__next:focus {
  background-color: rgba(32, 29, 29, 0.03);
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20fill%3D%22%23201d1d%22%20viewBox%3D%220%200%2036%2036%22%3E%3Cpath%20d%3D%22M9,33.87a1.13,1.13,0,0,1,.33-.8L24.28,18,9.33,2.93a1.13,1.13,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0L26.67,17.2a1.13,1.13,0,0,1,0,1.6L10.92,34.67A1.13,1.13,0,0,1,9,33.87Z%22/%3E%3Cpath%20d%3D%22M36,36H0V0H36Z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}
.home-products__actions {
  margin-top: 42px;
  text-align: center;
}
@media (min-width: 1656px) {
  .home-products__actions {
    margin-top: 105px;
  }
}
@media (min-width: 992px) {
  .home-products__actions--mobile {
    display: none;
  }
}
.home-products__cta {
  position: relative;
  margin-top: 4rem;
  margin-bottom: 4rem;
}
.home-products__hr {
  border: none;
  border-top: 1px solid #F26A21;
  margin: 0;
}
.home-products__button {
  position: absolute;
  right: 0;
  transform: translateY(-50%);
  top: 50%;
  color: #F26A21 !important;
  border-color: #F26A21 !important;
  padding: 1rem;
  font-weight: 400;
  min-height: 45px;
  height: 45px;
  z-index: 1;
}
@media (max-width: 992px) {
  .home-products__button {
    right: 50%;
    transform: translate(50%, -50%) !important;
  }
}

.card-8 {
  height: max-content;
  position: relative;
  overflow: hidden;
  background-color: #fff;
  padding: 0;
  border: none;
}
.card-8__info {
  padding: 8px;
}
@media (min-width: 768px) {
  .card-8__info {
    padding: 15px;
  }
}
@media (min-width: 992px) {
  .card-8__info {
    padding: 15px 20px;
  }
}
.card-8__figure {
  margin-bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.card-8__figure picture {
  display: block;
  border-bottom: 3px solid transparent;
}
.card-8__figure--main picture {
  border-color: #F26A21;
}
.card-8__figure--second {
  opacity: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.card-8__image {
  position: relative;
}
.card-8__image .card-8__figure {
  transition: opacity 0.5s;
}
.card-8__image--animated:hover .card-8__figure--main {
  opacity: 0;
}
.card-8__image--animated:hover .card-8__figure--second {
  opacity: 1;
}
.card-8__header {
  min-height: 82px;
}
.card-8__headline {
  margin-bottom: 0;
  color: #293b95;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.card-8__headline-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
}
.card-8__headline-count-info {
  color: #293b95;
  line-height: 20px;
  font-size: 14px;
  display: block;
}
@media (min-width: 768px) {
  .card-8__headline-count-info {
    line-height: 26px;
  }
}
.card-8__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card-8__price {
  color: #F26A21;
  font-weight: 700;
  font-size: 5vw;
  line-height: 6vw;
  transition: 0.45s;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .card-8__price {
    font-size: 24px;
    line-height: 1.5;
  }
}
.card-8__button.mdc-button:not(:disabled) {
  border: none;
  text-transform: none;
  background-color: #F26A21;
  color: white;
  padding: 3vw 5vw;
  border-radius: 10px;
  font-weight: 700;
  font-size: 4vw;
  line-height: 4vw;
  position: relative;
  width: auto;
  height: auto;
}
@media (min-width: 768px) {
  .card-8__button.mdc-button:not(:disabled) {
    font-size: 24px;
    line-height: 1.5;
    padding: 8px 30px;
  }
}

.homepage-view .section {
  order: 0;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZXBhZ2UuY3NzIiwibWFwcGluZ3MiOiJBQUFBO0VBQ0U7RUM0TU07RUQxTU4sZ0JFbVM0QjtFRmxTNUI7RUFDQSxXRVlTO0VGWFQseUJFc2xDa0M7RUZybENsQztBR0NGO0FGNElJO0VEcEpKO0lDa05VLGlDQVhRO0VFM0xoQjtBQUNGO0FDREU7RUpERSxXRU1PO0VGTFA7QUdLSjtBQ0RFO0VKQ0k7QUdHTjs7QUhRQTtFQUNFO0VBQ0E7RUFDQTtBR0xGOztBSFdBO0VBQ0U7QUdSRjs7QUU5QkE7RUFHRSxpQkh5NEJrQztFR3g0QmxDLGdCSHc0QmtDO0VEeHRCOUI7RUk3S0osMkNIMDRCa0M7RUd6NEJsQztFQUNBO0VBQ0EsZ0RIMjRCa0M7RUcxNEJsQztFQ09FO0FId0JKO0FFNUJFO0VBQ0Usc0JIODNCZ0M7QUNoMkJwQztBRTNCRTtFQUNFO0FGNkJKO0FFMUJFO0VBQ0U7RUFDQTtBRjRCSjtBRXpCRTtFQUNFO0FGMkJKOztBRXZCQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLGNIdkJTO0VHd0JULDJDSG0zQmtDO0VHbDNCbEM7RUFDQTtFQ1pFO0VBQ0E7QUh1Q0o7O0FFeEJBO0VBQ0UsZ0JIaTJCa0M7QUN0MEJwQzs7QUl4Q0U7RUFPTTtBSnFDUjs7QUtoQkU7RUFDRTtJQUVFLDZCQ1ZjO0VONEJsQjtFS2ZFO0lBQ0UscURFNUMrQjtFUDZEbkM7RUtkRTtJQUNFO0VMZ0JKO0FBQ0Y7QUtiRTtFQUNFO0lBRUU7RUxjSjtFS1hFO0lBQ0U7RUxhSjtFS1ZFO0lBQ0U7RUxZSjtBQUNGO0FLVEU7RUFDRTtJQUNFLHFERW5FK0I7SUZvRS9CO0lBQ0E7RUxXSjtFS1JFO0lBQ0U7SUFDQTtFTFVKO0FBQ0Y7QUtQRTtFQUNFO0lBQ0UscURFbEYrQjtJRm1GL0I7SUFDQTtFTFNKO0VLTkU7SUFDRTtJQUNBO0VMUUo7QUFDRjtBS0xFO0VBQ0U7SUFDRSxzRENoRW1DO0lEaUVuQztJQUNBO0VMT0o7RUtKRTtJQUNFO0lBQ0E7RUxNSjtBQUNGO0FLSEU7RUFDRTtJQUNFO0lBQ0E7SUFDQTtFTEtKO0VLRkU7SUFDRTtJQUNBO0VMSUo7QUFDRjtBS0RFO0VBQ0U7SUFDRSxzREMxRm1DO0lEMkZuQztJQUNBO0VMR0o7RUtBRTtJQUNFO0lBQ0E7RUxFSjtBQUNGO0FLQ0U7RUFDRTtJQUNFO0lBQ0E7SUFDQTtFTENKO0VLRUU7SUFFRTtJQUNBO0VMREo7QUFDRjtBUW5HRTtFQTRYQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdGaGFVO0VFaWFWLFlGamFVO0VFa2FWO0VBQ0E7RUFDQTtFQUNBO0VBdE1FLGFBSGlCO0FSNUVyQjs7QVE2TkU7OztFQzNURTtFQUNBO0VBQ0E7QVRvR0o7O0FVSEU7RURuR0U7RUFDQTtFQUNBO0FUMEdKOztBVWdDSTtFQUdJLGFBckIwQjtBVlZsQzs7QVVpRU07RUFlRjtFQUlBLGFBdEU4QjtBVlRsQzs7QVUyRkk7RUFFSTtBVnpGUjs7QVU4Rk07RUFFSSx5QkN0UlM7RUQyUlQsYUE1RndCO0FWSmxDOztBVXNHRTtFQUVJO0FWcEdOOztBVS9CRTs7RURuR0U7RUFDQTtFQUNBO0FUdUlKOztBUXVDRTtFQUVJLFNBUmU7RUFTZixVQVRlO0FSNUJyQjs7QVF5Q0U7RUFFSTtFQUNBO0VBQ0EsV0FoQ0c7RUFpQ0gsWUFqQ0c7QVJOVDs7QVFzTUk7RUFDRSxRQUpLO0VBS0wsVUFMSztFQU1MLFNBTks7RUFPTCxXQXBNRztFQXFNSCxZQXJNRztBUkVUOztBUXNiRTtFQzFsQkU7RUFBQTtBVHlLSjs7QVFpYkU7OztFQ25sQkU7RUFDQTtFQUNBO0VBRkE7RUFDQTtFQUNBO0FUMktKOztBS2hPRTtFQUNFO0lJMkNBO0lBQUE7RVQwTEY7RUtoT0U7SUk2Q0E7SUFDQTtJQUNBO0lBRkE7SUFDQTtJQUNBO0VUeUxGO0FBQ0Y7QUtuT0U7RUFDRTtJSXNDQTtJQUNBO0lBQ0E7SUFGQTtJQUNBO0lBQ0E7RVRtTUY7RUtyT0U7SUl5QkE7SUFBQTtFVGdORjtBQUNGO0FRNENRO0VBRUk7QVIzQ1o7O0FRa0RRO0VBRUk7QVJoRFo7O0FRa1lFO0VDMWxCRTtFQUFBO0FUNk5KOztBUTZYRTs7O0VDMWxCRTtFQUFBO0FUb09KOztBUW1mSTtFQ3Z0QkE7QVR3T0o7O0FRcWZJO0VDN3RCQTtBVDRPSjs7QVEyZUk7RUN2dEJBO0FUZ1BKOztBUTZlSTtFQzd0QkE7QVRvUEo7O0FRalBFO0VBdWxCQTtJQzFsQkU7SUFBQTtFVDBQRjtFUWdXQTs7O0lDMWxCRTtJQUFBO0VUZ1FGO0VRdWRFO0lDdnRCQTtFVG1RRjtFUTBkRTtJQzd0QkE7RVRzUUY7RVF6UEU7SUFFSTtFUjBQTjtBQUNGO0FRclBFO0VBeVdBO0VBQ0E7QVJqSEY7O0FRblBFO0VBb2hCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0YvbEJRO0VFZ21CUixZRmhtQlE7RUVrbUJSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFVQSxzSEFDRTtBUnhTTjs7QVFnU0U7RUN2akJFO0VBQ0E7RUFDQTtBVDJSSjs7QVFyUUU7RUEybkJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7QVJyWEo7O0FRd1hFO0VBRUk7QVJ0WE47O0FRaFJFO0VBeXNCRTtFQUlBO0VBQ0E7RUFDQSw2QkYxd0JnQjtFRTJ3QmhCLDRCRjN3QmdCO0FObVZwQjs7QVFwUkU7RUEydEJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBLDBHQUNFO0FSdmNOOztBUXhSSTs7OztFQTBWRjtBUjNERjs7QVF5RUk7RUFDRTtFQUNBO0FSdEVOOztBUTJFSTtFQUlFO0VBQ0E7QVIzRU47O0FRZ0ZJO0VBQ0U7RUFDQTtBUjdFTjs7QVFrRkk7RUFDRTtFQUNBO0FSL0VOOztBUW9GSTtFQUNFO0VBQ0E7QVJqRk47O0FRb0ZJO0VBQ0U7RUFDQTtBUmpGTjs7QVFzRkk7RUFDRTtFQUNBO0FSbkZOOztBUXNGSTtFQUNFO0VBQ0E7QVJuRk47O0FRd0ZJO0VBRUUseUVBQ0U7RUFDRjtBUnZGTjs7QVE1VEU7OztFQStnQkEsa0hBQ0U7QVI5TUo7O0FRM1RJOzs7RUFvckJGO0FSblhGOztBUXpURTtFQTZoQkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQSww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O0VBQ0U7QXRCNm1DSjtBc0IxbUNFO0VBQ0U7QXRCNG1DSjtBc0J6bUNFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXRCMm1DSjtBc0J6bUNJO0VBQ0U7QXRCMm1DTjtBc0J2bUNFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXRCeW1DSjtBc0J2bUNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXRCeW1DTjtBc0JybUNFO0VBQ0U7RUFDQTtBdEJ1bUNKO0FzQnBtQ0U7RUFDRTtFQUNBO0F0QnNtQ0o7QXNCbm1DRTtFQUNFO0F0QnFtQ0o7O0F1QmpxQ0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2Qm9xQ0o7QXVCbHFDSTtFQUFVO0F2QnFxQ2Q7QXVCcHFDSTtFQUFVO0F2QnVxQ2Q7QXVCcnFDSTtFQUNFO0F2QnVxQ047QXVCcHFDSTtFQUNFO0F2QnNxQ047QXVCbnFDSTtFQUNFO0F2QnFxQ047QXVCanFDRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2Qm1xQ0o7QXVCaHFDRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZCa3FDSjtBdUJocUNJO0VBQ0U7QXZCa3FDTjtBdUIvcENJO0VBRUU7RUFDQTtBdkJncUNOO0F1QjdwQ0k7RUFDRTtBdkIrcENOO0F1QjNwQ0U7RUFDRTtFQUNBO0VBQ0E7QXZCNnBDSjtBdUIxcENFO0VBQ0U7RUFDQTtFQUNBO0F2QjRwQ0o7O0F3Qmh2Q0k7RUFDSTtBeEJtdkNSO0F3Qmh2Q0k7RUFDSTtFQUNBO0F4Qmt2Q1I7QXdCL3VDSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RWQrREo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QVZrckNKO0FVOXFDRTtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY4cUNOO0FVMXFDRTtFQUdJLDZEQUNFO0VBS0Y7QVZxcUNOO0FVOXBDSTtFQUVJO0FWK3BDUjtBVTNwQ0k7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWNHBDUjtBVXRwQ0k7RUFFSTtFQUNBO0VBQ0E7QVZ1cENSO0FVanBDSTtFQUVJLHlGQUNFO0FWaXBDVjtBVTFvQ0k7RUFFSTtFQUtBO0FWdW9DUjtBVW41QkU7RUFHSTtFQUNBO0VBQ0E7RUFDQSxXQVRLO0VBVUwsWUFWSztBVjY1Qlg7QVU5NEJJO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVjg0QlI7QVUxNEJJO0VBRUk7RUFDQTtBVjI0QlI7QVUvb0NFO0VEMUdFO0FUNHZDSjtBVXptQ0k7RUFHSSxVY25Na0M7QXhCNHlDMUM7QVV2a0NNO0VBZUY7RUFJQSxVY3ZQc0M7QXhCK3lDMUM7QVU1aUNJO0VBRUk7QVY2aUNSO0FVeGlDTTtFQUVJLHlCQ3RSUztFRDJSVCxhY2hSZ0M7QXhCcXpDMUM7QVUvaENFO0VBRUk7QVZnaUNOO0F3QnR6Q1E7RUFDSTtBeEJ3ekNaO0F5Qng3QlE7RUFDSTtBekIwN0JaO0FVM2xDTTtFQWVGO0VBSUEsWWUrSTBDO0F6QjY3QjlDO0F3Qnp6Q1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBeEIyekNaO0F3Qnh6Q1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBeEIwekNaOztBMEI3MkNBO0VBQ0k7SUFDSTtFMUJnM0NOO0UwQjkyQ0U7SUFDSTtFMUJnM0NOO0FBQ0Y7QTBCNzJDQTtFQUNJO0VBQ0E7QTFCKzJDSjtBMEI3MkNJO0VBQ0k7QTFCKzJDUjtBMEJ6MkNnQjtFQUNJO0ExQjIyQ3BCO0EwQm4yQ1k7RUFDSTtBMUJxMkNoQjtBMEJuMkNnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTFCcTJDcEI7QTBCbjJDb0I7RUFDSTtFQUNBO0VBQ0E7QTFCcTJDeEI7QTBCOTFDSTtFQUNJO0ExQmcyQ1I7QTBCMzFDWTtFQUNJO0ExQjYxQ2hCO0EwQnoxQ1E7RUFDSTtBMUIyMUNaO0EwQnYxQ0k7RUFDSTtFQUNBO0ExQnkxQ1I7QTBCdDFDSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0ExQncxQ1I7QTBCcjFDSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUJ1MUNSO0EwQnIxQ1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBMUJ1MUNaO0EwQm4xQ0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBMUJxMUNSO0EwQm4xQ1E7RUFDSTtBMUJxMUNaO0EwQmoxQ0k7RUFDSTtBMUJtMUNSO0EwQmgxQ0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUJrMUNSO0EwQi8wQ0k7RUFDSTtFQUNBO0VBQ0E7QTFCaTFDUjtBMEI5MENJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUJnMUNSO0EwQjkwQ1E7RUFDSTtFQUNBO0ExQmcxQ1o7QTBCNzBDUTtFQUNJO0ExQiswQ1o7QTBCNTBDUTtFQUNJO0VBQ0E7QTFCODBDWjtBMEIzMENRO0VBQ0k7QTFCNjBDWjtBMEIzMENZO0VBQ0k7QTFCNjBDaEI7QTBCejBDUTtFQUNJO0ExQjIwQ1o7QTBCdjBDSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUJ5MENSO0EwQnYwQ1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUJ5MENaO0EwQnYwQ1k7RUFDSTtFQUNBO0ExQnkwQ2hCO0EwQnQwQ1k7RUFDSTtBMUJ3MENoQjtBMEJyMENZO0VBQ0k7RUFDQTtBMUJ1MENoQjtBMEJsMENJO0VBQ0k7RUFDQTtFQUNBO0ExQm8wQ1I7QTBCOXpDZ0I7RUFDSTtBMUJnMENwQjtBMEI5ekNvQjtFQUNJO0ExQmcwQ3hCO0EwQjd6Q29CO0VBQ0k7QTFCK3pDeEI7QTBCcnpDZ0I7RUFDSTtFQUNBO0ExQnV6Q3BCO0EwQnJ6Q29C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QnluRFI7QTJCdm5EUTtFQUNJO0VBQ0E7QTNCeW5EWjtBMkJ0bkRRO0VBQ0k7RUFDQTtBM0J3bkRaOztBMkJqbkRRO0VBREo7SUFFUTtFM0JxbkRWO0FBQ0Y7QTJCbG5ESTtFQUNJO0EzQm9uRFI7QTJCbG5EUTtFQUNJO0VBQ0E7QTNCb25EWjtBMkJqbkRRO0VBQ0k7RUFDQTtBM0JtbkRaOztBNkJoMkRBO0VBQ0k7RUFDQTtBN0JtMkRKOztBNkJoMkRBO0VBQ0k7RUFDQTtFQUNBO0E3Qm0yREo7QTZCajJESTtFQUNJO0VBQ0Esc0JES1E7QTVCODFEaEI7QTZCaDJESTtFQUNJO0VBQ0E7RUFDQTtFQUNBLHlCRGFZO0VDWlo7QTdCazJEUjtBNkI5MURRO0VBQ0k7RUFDQTtFQUNBO0E3QmcyRFo7O0E2QjExREk7RUFDSTtFQUNBO0E3QjYxRFI7O0E2QnoxREE7RUFDSTtBN0I0MURKOztBNkJ6MURBO0VBQ0k7RUFDQTtBN0I0MURKOztBNkJ4MURJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3QjIxRFI7QTZCejFEUTtFQVJKO0lBU1E7SUFDQTtFN0I0MURWO0FBQ0Y7O0E4QnQ1RFE7RUFDSTtBOUJ5NURaO0E4QnY1RFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHlCRldJO0E1Qjg0RHBCOztBK0JyNkRJO0VBQ0k7QS9CdzZEUjtBK0JyNkRZO0VBREo7SUFFUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0UvQnc2RGQ7QUFDRjs7QWdDeDdESTtFQUNJO0lBQ0k7RWhDMjdEVjtFZ0N6N0RNO0lBQ0k7SUFDQTtFaEMyN0RWO0FBQ0Y7QWdDdDdEUTtFQUNJLHlCSkhrQjtFSUlsQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoQ3c3RFo7QWlDLzRESTtFRC9DSTtJQVNRO0VoQ3k3RGQ7QUFDRjtBZ0N2N0RZO0VBQ0k7QWhDeTdEaEI7QWdDdDdEWTtFQUNJLHlCSkRBO0E1Qnk3RGhCO0FnQ3A3RFE7RUFDSSx5Qkp4QmtCO0VJeUJs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Q0U7SUkyQ0E7SUFBQTtFVGd2RkY7RUt0eEZFO0lJc0NBO0lBQUE7RVRvdkZGO0FBQ0Y7QUtyeEZFO0VBQ0U7SUkrQkE7SUFBQTtFVDB2RkY7RUtueEZFO0lJeUJBO0lBQUE7RVQ4dkZGO0FBQ0Y7QVFsZ0ZRO0VBRUk7QVJtZ0ZaO0FRNS9FUTtFQUVJO0FSNi9FWjtBUTlpRUk7RUN2dEJBO0FUd3dGSjtBUTNpRUk7RUM3dEJBO0FUMndGSjtBUXo4RUU7OztFQ2xVRTtBVGd4Rko7QVV0cUZFO0VEMUdFO0FUbXhGSjtBVWhvRkk7RUFHSSxhQXJCMEI7QVZxcEZsQztBVTlsRk07RUFlRjtFQUlBLGFBdEU4QjtBVnFwRmxDO0FVbmtGSTtFQUVJO0FWb2tGUjtBVS9qRk07RUFFSSx5QkN0UlM7RUQyUlQsYUE1RndCO0FWd3BGbEM7QVV0akZFO0VBRUk7QVZ1akZOO0FVMXJGRTs7RUQxR0U7QVR3eUZKO0FvQy90Rlk7RUFDSTtBcENpdUZoQjtBb0M1dEZJO0VBQ0ksY1J6SFk7QTVCdTFGcEI7QW9DM3RGSTs7RUFFSSxjUjlIWTtBNUIyMUZwQjtBb0MzdEZROztFQUNJLGNSaklRO0E1QisxRnBCO0FvQzF0Rkk7RUFDSSx5QlJ0S1M7QTVCazRGakI7QW9DenRGSTtFQUNJLHlCUnRLZTtBNUJpNEZ2QjtBb0N4dEZJOztFQUVJLGNSM0tlO0E1QnE0RnZCO0FvQ3h0RlE7O0VBQ0ksY1I5S1c7QTVCeTRGdkI7QW9DdHRGSTtFQUNJLGNSOUlnQjtFUStJaEI7RUFDQTtFQUNBO0VBQ0E7QXBDd3RGUjtBb0N0dEZRO0VBQ0k7QXBDd3RGWjtBb0N6c0ZJO0VBS0k7RUFDQTtFQUNBO0FwQ3VzRlI7QXFDbjZDRTtFNUJoN0NFO0FUczFGSjtBcUNyMkNFO0U1QmovQ0U7QVR5MUZKO0FxQ3B5Q0U7RTVCcmpERTtBVDQxRko7QW9DOXNGUTtFQVRKO0lBVVE7SUFDQTtFcENpdEZWO0FBQ0Y7QW9DenNGUTtFQUNJO0FwQzJzRlo7QW9DcnNGWTtFQUNJO0FwQ3VzRmhCO0FvQ2xzRkk7RUFDSTtBcENvc0ZSO0FvQzdyRlk7RUFFSTtF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QVVsL0hJO0VBR0ksVWtDeEdrQztBNUMwbEkxQztBVWg5SE07RUFlRjtFQUlBLFVrQzVKc0M7QTVDNmxJMUM7QTRDMWxJUTtFbEN3RE47SUQxR0U7RVRncElGO0VVejdIRTtJQUVJO0VWMDdITjtFVXI3SEk7SUFFSSx5QkN0UlM7SUQyUlQsYWtDakxvQztFNUNtbUk1QztFVTU2SEE7SUFFSTtFVjY2SEo7QUFDRjtBNENwbUlRO0VsQ21ETjtJRDFHRTtFVCtwSUY7RVV4OEhFO0lBRUk7RVZ5OEhOO0VVcDhISTtJQUVJLHlCQ3RSUztJRDJSVCxha0M1S29DO0U1QzZtSTVDO0VVMzdIQTtJQUVJO0VWNDdISjtBQUNGO0F5QmwxSFE7RUFDSTtBekJvMUhaO0FVci9ITTtFQWVGO0VBSUEsWWUrSTBDO0F6QnUxSDlDO0E0Q25uSVE7RUFDSTtBNUNxbklaOztBNkNod0lBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QTdDbXdJSjtBNkNqd0lJO0VBTko7SUFPUTtFN0Nvd0lOO0FBQ0Y7QTZDbHdJSTtFQVZKO0lBV1E7SUFDQTtFN0Nxd0lOO0FBQ0Y7QTZDbndJSTtFQUNJO0E3Q3F3SVI7QTZDbHdJUTtFQUpKO0lBS1E7SUFDQTtJQUNBO0lBQ0E7RTdDcXdJVjtBQUNGO0E2Q253SVE7RUFYSjtJQVlRO0lBQ0E7SUFDQTtJQUNBO0U3Q3N3SVY7QUFDRjtBNkNsd0lJO0VBQ0k7QTdDb3dJUjtBNkNsd0lRO0VBSEo7SUFJUTtJQUNBO0lBQ0EsY2pCdENLO0lpQnVDTDtJQUNBO0lBQ0E7SUFDQTtFN0Nxd0lWO0FBQ0Y7QTZDbndJUTtFQWJKO0lBY1E7SUFDQTtJQUNBO0lBQ0E7RTdDc3dJVjtBQUNGO0E2Q3B3SVE7RUFwQko7SUFxQlE7RTdDdXdJVjtBQUNGO0E2Q3J3SVE7RUF4Qko7SUF5QlE7SUFDQTtFN0N3d0lWO0FBQ0Y7QTZDdHdJUTtFQTdCSjtJQThCUTtFN0N5d0lWO0FBQ0Y7QTZDcHdJSTtFQUNJLHlCakI3RHNCO0VpQjhEdEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0Nzd0lSOztBOENuMUlBO0VBQ0k7RUFDQTtF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QUNBO0VBQ0E7QXREa3pLWjtBc0RoektZO0VBQ0k7RUFDQTtBdERrektoQjtBc0RoektnQjtFQUNJO0F0RGt6S3BCO0FzRDV5S0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXREOHlLUjtBc0Q1eUtRO0VBUko7SUFTUTtFdEQreUtWO0FBQ0Y7QXNEN3lLUTtFQVpKO0lBYVE7RXREZ3pLVjtBQUNGO0FzRDl5S1E7RUFDSTtFQUNBO0VBQ0E7QXREZ3pLWjtBc0QzeUtROzs7RUFHSTtBdEQ2eUtaO0FzRDF5S1E7RUFDSTtBdEQ0eUtaO0FzRHR5S1k7RUFDSTtFQUNBO0F0RHd5S2hCO0FzRG55S0k7RUFDSTtFQUNBO0VBQ0E7QXREcXlLUjtBUWx0SkU7RUMxbEJFO0VBQUE7QVRnektKO0FRdHRKRTs7O0VDMWxCRTtFQUFBO0FUc3pLSjtBS2wyS0U7RUFDRTtJSTJDQTtJQUFBO0VUMnpLRjtFS2oyS0U7SUlzQ0E7SUFBQTtFVCt6S0Y7QUFDRjtBS2gyS0U7RUFDRTtJSStCQTtJQUFBO0VUcTBLRjtFSzkxS0U7SUl5QkE7SUFBQTtFVHkwS0Y7QUFDRjtBUTdrS1E7RUFFSTtBUjhrS1o7QVF2a0tRO0VBRUk7QVJ3a0taO0FRem5KSTtFQ3Z0QkE7QVRtMUtKO0FRdG5KSTtFQzd0QkE7QVRzMUtKO0FRcGhLRTs7O0VDbFVFO0FUMjFLSjtBVWp2S0U7RUQxR0U7QVQ4MUtKO0FVM3NLSTtFQUdJLGFBckIwQjtBVmd1S2xDO0FVenFLTTtFQWVGO0VBSUEsYUF0RThCO0FWZ3VLbEM7QVU5b0tJO0VBRUk7QVYrb0tSO0FVMW9LTTtFQUVJLHlCQ3RSUztFRDJSVCxhQTVGd0I7QVZtdUtsQztBVWpvS0U7RUFFSTtBVmtvS047QVVyd0tFOztFRDFHRTtBVG0zS0o7QXNEdDJLUTtFQUNJO0VBQ0E7RUFDQTtBdER3MktaO0FzRHQyS1k7RUFDSSx5QjFCNUZDO0UwQjZGRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RHcyS2hCO0FzRHIyS1k7RUFDSSx5QjFCckdDO0UwQnNHRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RHUyS2hCO0FzRGoyS2dCO0VBQ0k7RUFDQSx5QjFCbEhIO0E1QnE5S2pCO0FzRGgyS2dCO0VBQ0kseUIxQnRISDtBNUJ3OUtqQjtBc0QzMUtJO0VBQ0k7RUFDQTtBdEQ2MUtSO0F1RHo5SkU7RTlDMWJFO0FUczVLSjtBdUQ1OUpFO0U5QzFiRTtBVHk1S0o7QXVEOStKRTtFOUMzYUU7QVQ0NUtKO0F1RC9wS0U7RTlDN1BFO0FUKzVLSjtBc0RoMktRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QXREazJLWjtBc0RoMktZO0VBTko7SUFPUTtFdERtMktkO0FBQ0Y7QXNEajJLWTtFQVZKO0lBV1E7RXREbzJLZDtBQUNGO0FzRGoyS1E7RUFDSTtFQUNBO0VBQ0E7QXREbTJLWjtBc0RqMktZO0VBQ0kseUIxQjdKQztFMEI4SkQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdERtMktoQjtBc0RoMktZO0VBQ0kseUIxQnRLQztFMEJ1S0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdERrMktoQjtBc0Q1MUtnQjtFQUNJLHlCMUJsTEg7RTBCbUxHO0F0RDgxS3BCO0FzRHYxS0k7RUFDSTtFQUNBO0F0RHkxS1I7QXNEcDFLWTtFQUNJO0F0RHMxS2hCO0FzRHAxS2dCO0VBSEo7SUFJUTtFdER1MUtsQjtBQUNGO0FzRHIxS2dCO0VBUEo7SUFRUTtJQUNBO0V0RHcxS2xCO0FBQ0Y7QXNEbjFLSTtFQUNJO0F0RHExS1I7QXNEbDFLSTtFQUNJLGMxQjdMWTtBNUJpaExwQjtBc0RqMUtJO0VBQ0k7QXREbTFLUjtBc0RqMUtRO0VBQ0k7QXREbTFLWjtBc0Q1MEtnQjtFQUNJO0F0RDgwS3BCO0FzRDEwS29CO0VBQ0ksYzFCak5KO0E1QjZoTHBCO0FzRGwwS1E7RUFDSTtBdERvMEtaO0FzRGwwS1k7RUFISjtJQUlRO0V0RHEwS2Q7QUFDRjtBc0RqMEtZO0VBQ0k7QXREbTBLaEI7QXNEaDBLWTtFQUNJLGMxQmpORTtBNUJtaExsQjtBc0Q1ektnQjtFQUNJO0F0RDh6S3BCO0FzRDF6S1k7RUFDSSxjMUI3TkU7QTVCeWhMbEI7QXNEeHpLUTs7Ozs7RUFHSTtBdEQ0ektaO0FzRHh6S1E7RUFDSTtBdEQwektaO0FzRHh6S1k7RUFDSTtBdEQwektoQjtBc0R0ektRO0VBQ0ksYzFCalBNO0E1QnlpTGxCO0FzRHR6S1k7RUFDSSxjMUJwUEU7QTVCNGlMbEI7QXNEcnpLWTtFQUNJLGMxQnhQRTtFMEJ5UEY7QXREdXpLaEI7QXNEbnpLUTtFQUNJLGMxQjlQTTtBNUJtakxsQjtBc0RuektZO0VBQ0ksYzFCalFFO0E1QnNqTGxCO0FzRGx6S1k7RUFDSSxjMUJyUUU7RTBCc1FGO0F0RG96S2hCO0FzRC95S1k7RUFDSTtFQUNBO0F0RGl6S2hCO0FzRDV5S2dCO0VBQ0k7QXREOHlLcEI7QXNEMXlLWTs7Ozs7RUFHSTtBdEQ4eUtoQjtBc0QzeUtZO0VBQ0k7QXRENnlLaEI7QXNEMXlLWTtFQUNJO0F0RDR5S2hCO0FzRHZ5S1k7RUFDSTtFQUNBO0F0RHl5S2hCO0FzRHJ5S2dCO0VBQ0k7QXREdXlLcEI7QXNEanlLWTtFQUNJLGMxQnJURTtBNUJ3bExsQjtBc0RqeUtnQjtFQUNJLGMxQnhURjtBNUIybExsQjtBc0RoeUtnQjtFQUNJLGMxQjVURjtFMEI2VEU7QXREa3lLcEI7QXNEOXhLWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdERneUtoQjtBc0Q5eEtnQjtFQVhKO0lBWVE7RXREaXlLbEI7QUFDRjtBc0Q5eEtZO0VBQ0k7RUFDQTtBdERneUtoQjtBc0QxeEtROzs7RUFHSTtFQUNBO0F0RDR4S1o7QXNEMXhLWTs7O0VBQ0k7QXREOHhLaEI7QXNEMXhLUTtFQUNJO0F0RDR4S1o7QXNEMXhLWTtFQUNJO0F0RDR4S2hCO0FzRHZ4S1k7RUFDSTtFQUNBO0F0RHl4S2hCO0FzRHB4S2dCO0VBQ0k7QXREc3hLcEI7QXNEbHhLWTs7O0VBR0k7QXREb3hLaEI7QXNEanhLWTtFQUNJO0F0RG14S2hCO0FzRGh4S1k7RUFDSTtBdERreEtoQjtBc0Q3d0tZO0VBQ0k7RUFDQTtBdEQrd0toQjtBc0R6d0tROzs7RUFHSTtFQUNBO0F0RDJ3S1o7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c0RudEtRO0VBQ0k7QXREcXRLWjtBc0RsdEtRO0VBQ0k7RUFDQTtBdERvdEtaO0FzRGx0S1k7RUFKSjtJQUtRO0V0RHF0S2Q7QUFDRjtBc0RudEtZO0VBUko7SUFTUTtFdERzdEtkO0FBQ0Y7QXNEbHRLSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0RG90S1I7QXNEbHRLUTtFQUNJO0F0RG90S1o7QXNEanRLUTtFQUNJO0F0RG10S1o7QXNEaHRLUTtFQWpCSjtJQWtCUTtJQUNBO0lBQ0E7SUFDQTtFdERtdEtWO0FBQ0Y7QXNEaHRLWTtFQUVJO0F0RGl0S2hCO0FzRDVzS0k7RUFDSTtBdEQ4c0tSOztBc0R4c0tJO0VBQ0k7RUFDQTtBdEQyc0tSO0FzRHpzS1E7RUFDSTtFQUNBO0F0RDJzS1o7QXNEeHNLUTtFQUNJLHlCMUJ2dUNPO0E1Qmk3TW5CO0FzRHRzS0k7RUFDSTtFQUNBO0F0RHdzS1I7QXNEdHNLUTtFQUNJLGMxQnJ1Q007QTVCNjZNbEI7QXNEcnNLUTtFQUNJLGMxQnJ4Q1c7QTVCNDlNdkI7QXNEcHNLUTtFQUNJLGMxQjN1Q0k7QTVCaTdNaEI7O0FzRGhzS0k7RUFDSTtBdERtc0tSOztBc0QvcktBO0VBQ0k7QXREa3NLSjtBc0Roc0tJO0VBQ0k7QXREa3NLUjtBc0QvcktJO0VBQ0k7QXREaXNLUjtBc0Q5cktJO0VBQ0k7RUFDQTtBdERnc0tSOztBc0Q1cktBO0VBQ0k7RUFDQTtBdEQrcktKO0FzRDdyS0k7RUFDSTtBdEQrcktSOztBc0QzcktBO0VBQ0k7QXREOHJLSjs7QXNEMXJLSTtFQUNJO0F0RDZyS1I7QXNEM3JLUTtFQUhKO0lBSVE7RXREOHJLVjtBQUNGO0FzRDVyS1E7RUFQSjtJQVFRO0V0RCtyS1Y7QUFDRjtBc0Q3cktRO0VBQ0k7QXREK3JLWjtBc0QzcktJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QXRENnJLUjtBc0QzcktRO0VBQ0k7QXRENnJLWjtBc0QzcktZO0VBSEo7SUFJUTtFdEQ4cktkO0FBQ0Y7QXNENXJLWTtFQVBKO0lBUVE7SUFDQTtFdEQrcktkO0FB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O0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVjB5T047QVVyeU9JO0VBRUk7RUFDQTtBVnN5T1I7QVU3OU9JO0VBR0ksVW9EcVZrQztBOUR3b08xQztBVTM3T007RUFlRjtFQUlBLFVvRGlTc0M7QTlEMm9PMUM7QVU3Z1BFO0VEMUdFO0FUMG5QSjtBVW42T0k7RUFFSTtBVm82T1I7QVUvNU9NO0VBRUkseUJDdFJTO0VEMlJULGFvRHlRZ0M7QTlEbXBPMUM7QVV0NU9FO0VBRUk7QVZ1NU9OO0F5QjV5T1E7RUFDSTtBekI4eU9aO0FVLzhPTTtFQWVGO0VBSUEsWWUrSTBDO0F6Qml6TzlDO0E4RHZwT1E7RUFuQko7SUFvQlE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0U5RDBwT1Y7QUFDRjtBOER4cE9RO0VBQ0k7QTlEMHBPWjtBOER0cE9ZO0VBREo7SUFFUTtJQUNBO0U5RHlwT2Q7QUFDRjtBOERycE9JO0VBQ0k7RUFDQTtBOUR1cE9SO0E4RHJwT1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBOUR1cE9aO0E4RHBwT1E7RUFDSTtBOURzcE9aO0E4RG5wT1E7RUFDSTtFQUNBO0E5RHFwT1o7QThEcHBPWTtFQUhKO0lBSVE7RTlEdXBPZDtBQUNGOztBK0QvdlBFO0VBQ0U7RUFDQTtBL0Rrd1BKOztBK0Q5dlBBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBL0Rpd1BKO0ErRC92UEk7RUFQSjtJQVFNO0lBQ0E7RS9Ea3dQSjtBQUNGO0ErRC92UEk7RUFDRTtBL0Rpd1BOO0ErRDl2UEk7RUFDSTtFQUNBO0EvRGd3UFI7QStEOXZQUTtFQUNJO0EvRGd3UFo7QStEOXZQWTtFQUNJO0EvRGd3UGhCO0ErRDN2UEk7RUFDSTtFQUNBO0EvRDZ2UFI7QStEM3ZQUTtFQUNJO0EvRDZ2UFo7QStEM3ZQWTtFQUNJO0EvRDZ2UGhCO0ErRHh2UEk7RUFDSTtFQUNBO0EvRDB2UFI7QStEeHZQUTtFQUNJO0EvRDB2UFo7QStEdHZQSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0EvRHd2UE47QStEdnZQTztFQUNFO0EvRHl2UFQ7O0Fn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bUVsc1FRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuRW9zUVo7QW1FaHNRSTtFQUNJO0FuRWtzUVI7QW1FaHNRUTtFQUNJO0FuRWtzUVo7QW1FN3JRZ0I7RUFDSTtBbkUrclFwQjtBbUU1clFnQjtFQUNJO0FuRThyUXBCO0FtRXhyUUk7RUFDSTtBbkUwclFSO0FtRXZyUUk7RUFDSTtFQUNBLGN2QzNCaUI7RXVDNEJqQjtFQUNBO0VBQ0E7QW5FeXJRUjtBbUV0clFJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkV3clFSO0FtRXJyUUk7RUFDSSxjdkMxQ2lCO0V1QzJDakI7RUFDQTtFQUNBO0FuRXVyUVI7QW1FcnJRUTtFQU5KO0lBT1E7RW5Fd3JRVjtBQUNGO0FtRXJyUUk7RUFDSTtFQUNBO0VBQ0E7QW5FdXJRUjtBbUVwclFJO0VBQ0ksY3ZDbEdlO0V1Q21HZjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuRXNyUVI7QW1FcHJRUTtFQVJKO0lBU1E7SUFDQTtFbkV1clFWO0FBQ0Y7QW1FbnJRUTtFQUNJO0VBQ0E7RUFDQSx5QnZDbkhXO0V1Q29IWDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5FcXJRWjtBbUVuclFZO0VBZEo7SUFlUTtJQUNBO0lBQ0E7RW5Fc3JRZDtBQUNGOztBQXBsUUU7RUFDRTtBQXVsUUosQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fY2xvc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvbGliL19vdmVycmlkZS1ib290c3RyYXA0LXZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9wYWdlcy9ob21lcGFnZS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2hvdmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL190b2FzdHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90b3VjaC10YXJnZXQvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvY2hlY2tib3gvX2tleWZyYW1lcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvY2hlY2tib3gvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvYW5pbWF0aW9uL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2NoZWNrYm94L19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3RoZW1lL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3JpcHBsZS9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9yaXBwbGUvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvdG91Y2gtdGFyZ2V0L192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3JpcHBsZS9fa2V5ZnJhbWVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9lbGV2YXRpb24vX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvZGlhbG9nL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2RpYWxvZy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9zaGFwZS9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9ydGwvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvdHlwb2dyYXBoeS9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9mb3JtLWZpZWxkL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL2xpbmUtcmlwcGxlL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGdsaWRlanMvZ2xpZGUvc3JjL2Fzc2V0cy9zYXNzL2dsaWRlLmNvcmUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGdsaWRlanMvZ2xpZGUvc3JjL2Fzc2V0cy9zYXNzL2dsaWRlLnRoZW1lLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX2dsaWRlLm92ZXJ3cml0ZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19idXR0b25zLW1peGlucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19zcGxpZGUtY2Fyb3VzZWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fc3BsaWRlLWNhcm91c2VsLWRlZmF1bHQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvbGliL19wcm9qZWN0LXZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19tYXRlcmlhbC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19oZWxwZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX2hlcm8taG9tZXBhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9faG9tZS1zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19hY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX3RlYXNlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC90ZXh0ZmllbGQvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX2RlY28uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fY29uc3RhbnRoZWxwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9idXR0b24vX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19hYm91dC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19uZXdzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fc3Rvcmllcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19zdG9yeS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19wYXJ0bmVycy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19wYXJ0bmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX3Byb2dyYW1zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX3Byb2dyYW0uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fdG9hc3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fbW9kYWwtZnVsbC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19tYWluLXBhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fc2l0ZS1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9yYWRpby9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvc2VsZWN0L19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsL3NlbGVjdC9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX21vZGFsLW5ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fbG9nb3Muc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fbG9nby5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19jYXJkLTIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdW5pY2VmL3Njc3MvY29tcG9uZW50cy9fdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX3RleHQtd2l0aC1udW1iZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX3RleHQtd2l0aC1pbWFnZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy91bmljZWYvc2Nzcy9jb21wb25lbnRzL19ob21lLXByb2R1Y3RzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3VuaWNlZi9zY3NzL2NvbXBvbmVudHMvX2NhcmQtOC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi5jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRjbG9zZS1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogJGNsb3NlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgdGV4dC1zaGFkb3c6ICRjbG9zZS10ZXh0LXNoYWRvdztcbiAgb3BhY2l0eTogLjU7XG5cbiAgLy8gT3ZlcnJpZGUgPGE+J3MgaG92ZXIgc3R5bGVcbiAgQGluY2x1ZGUgaG92ZXIoKSB7XG4gICAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cygpIHtcbiAgICAgIG9wYWNpdHk6IC43NTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBidXR0b24gdmVyc2lvblxuLy8gaU9TIHJlcXVpcmVzIHRoZSBidXR0b24gZWxlbWVudCBpbnN0ZWFkIG9mIGFuIGFuY2hvciB0YWcuXG4vLyBJZiB5b3Ugd2FudCB0aGUgYW5jaG9yIHZlcnNpb24sIGl0IHJlcXVpcmVzIGBocmVmPVwiI1wiYC5cbi8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5hLmNsb3NlLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3QsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgcmVzcG9uc2l2ZSBmb250IHNpemVzXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi92OC54L0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ICE9IHJlbSBhbmQgJHJmcy1mb250LXNpemUtdW5pdCAhPSBweCB7XG4gIEBlcnJvciBcImAjeyRyZnMtZm9udC1zaXplLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWZvbnQtc2l6ZS11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbn1cblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSBmb250LXNpemUgc3RhcnRzIGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcHggYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IGVtIGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSByZW0ge1xuICBAZXJyb3IgXCJgI3skcmZzLWJyZWFrcG9pbnQtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtYnJlYWtwb2ludC11bml0LiBVc2UgYHB4YCwgYGVtYCBvciBgcmVtYC5cIjtcbn1cblxuLy8gUmVzaXplIGZvbnQgc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbkBmdW5jdGlvbiBkaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCBvciAkZGl2aWRlbmQgPCAwIGFuZCAkZGl2aXNvciA8IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgIFwicHhcIjogMXB4LFxuICAgIFwicmVtXCI6IDFyZW0sXG4gICAgXCJlbVwiOiAxZW0sXG4gICAgXCIlXCI6IDElXG4gICk7XG4gIEBpZiAoJGRpdmlkZW5kLXVuaXQgIT0gJGRpdmlzb3ItdW5pdCBhbmQgbWFwLWhhcy1rZXkoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCkpIHtcbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogbWFwLWdldCgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6IGRpdmlkZSgkcmZzLWJhc2UtZm9udC1zaXplLCAkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicmVtXCIge1xuICAkcmZzLWJhc2UtZm9udC1zaXplOiBkaXZpZGUoJHJmcy1iYXNlLWZvbnQtc2l6ZSwgZGl2aWRlKCRyZnMtYmFzZS1mb250LXNpemUgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwicHhcIiB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1icmVha3BvaW50ICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJyZW1cIiBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcImVtXCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsIGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGRpc2FibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtZGlzYWJsZS1jbGFzcyB7XG4gIEBpZiAkcmZzLWNsYXNzID09IFwiZGlzYWJsZVwiIHtcbiAgICAvLyBBZGRpbmcgYW4gZXh0cmEgY2xhc3MgaW5jcmVhc2VzIHNwZWNpZmljaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUgbWVkaWEgcXVlcnkgdG8gb3ZlcnJpZGUgdGhlIGZvbnQgc2l6ZVxuICAgICYsXG4gICAgLmRpc2FibGUtcmVzcG9uc2l2ZS1mb250LXNpemUgJixcbiAgICAmLmRpc2FibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZW5hYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLWVuYWJsZS1jbGFzcyB7XG4gIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgIC5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUgJixcbiAgICAmLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1lZGlhIHF1ZXJ5IG5lZWRzIHRvIGJlIHVzZWRcbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5KCRtcS12YWx1ZSkge1xuICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRtcS12YWx1ZX0pLCAobWF4LWhlaWdodDogI3skbXEtdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRtcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBSZXNwb25zaXZlIGZvbnQgc2l6ZSBtaXhpblxuQG1peGluIHJmcygkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIC8vIENhY2hlICRmcyB1bml0XG4gICRmcy11bml0OiBpZih0eXBlLW9mKCRmcykgPT0gXCJudW1iZXJcIiwgdW5pdCgkZnMpLCBmYWxzZSk7XG5cbiAgLy8gQWRkICFpbXBvcnRhbnQgc3VmZml4IGlmIG5lZWRlZFxuICAkcmZzLXN1ZmZpeDogaWYoJGltcG9ydGFudCwgXCIgIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICAvLyBJZiAkZnMgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJGZzIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgQGlmIG5vdCAkZnMtdW5pdCBvciAkZnMtdW5pdCAhPSBcIlwiIGFuZCAkZnMtdW5pdCAhPSBcInB4XCIgYW5kICRmcy11bml0ICE9IFwicmVtXCIgb3IgJGZzID09IDAge1xuICAgIGZvbnQtc2l6ZTogI3skZnN9I3skcmZzLXN1ZmZpeH07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJGZzIGZvciBjYWxjdWxhdGlvbnNcbiAgICBAaWYgJGZzLXVuaXQgPT0gXCJweFwiIHtcbiAgICAgICRmczogZGl2aWRlKCRmcywgJGZzICogMCArIDEpO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZnMtdW5pdCA9PSBcInJlbVwiIHtcbiAgICAgICRmczogZGl2aWRlKCRmcywgZGl2aWRlKCRmcyAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IGZvbnQgc2l6ZVxuICAgICRyZnMtc3RhdGljOiBpZigkcmZzLWZvbnQtc2l6ZS11bml0ID09IHJlbSwgI3tkaXZpZGUoJGZzLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyRmc31weCk7XG5cbiAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIGZvbnQgc2l6ZSBpcyBiaWdnZXIgdGhhbiB0aGUgbWluaW11bSBmb250IHNpemVcbiAgICBAaWYgJGZzIDw9ICRyZnMtYmFzZS1mb250LXNpemUgb3Igbm90ICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHtcbiAgICAgIGZvbnQtc2l6ZTogI3skcmZzLXN0YXRpY30jeyRyZnMtc3VmZml4fTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBmb3IgJGZzXG4gICAgICAkZnMtbWluOiAkcmZzLWJhc2UtZm9udC1zaXplICsgZGl2aWRlKCRmcyAtICRyZnMtYmFzZS1mb250LXNpemUsICRyZnMtZmFjdG9yKTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkZnMgYW5kIHRoZSBtaW5pbXVtIGZvbnQgc2l6ZVxuICAgICAgJGZzLWRpZmY6ICRmcyAtICRmcy1taW47XG5cbiAgICAgIC8vIEJhc2UgZm9udC1zaXplIGZvcm1hdHRpbmdcbiAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkZnMtbWluLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyRmcy1taW59cHgpO1xuXG4gICAgICAvLyBVc2UgYHZtaW5gIGlmIHR3by1kaW1lbnNpb25hbCBpcyBlbmFibGVkXG4gICAgICAkdmFyaWFibGUtdW5pdDogaWYoJHJmcy10d28tZGltZW5zaW9uYWwsIHZtaW4sIHZ3KTtcblxuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YXJpYWJsZSB3aWR0aCBiZXR3ZWVuIDAgYW5kICRyZnMtYnJlYWtwb2ludFxuICAgICAgJHZhcmlhYmxlLXdpZHRoOiAje2RpdmlkZSgkZnMtZGlmZiAqIDEwMCwgJHJmcy1icmVha3BvaW50KX0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgLy8gU2V0IHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZVxuICAgICAgJHJmcy1mbHVpZDogY2FsYygjeyRtaW4td2lkdGh9ICsgI3skdmFyaWFibGUtd2lkdGh9KSAjeyRyZnMtc3VmZml4fTtcblxuICAgICAgLy8gQnJlYWtwb2ludCBmb3JtYXR0aW5nXG4gICAgICAkbXEtdmFsdWU6IGlmKCRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4LCAjeyRyZnMtYnJlYWtwb2ludH1weCwgI3tkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLXJlbS12YWx1ZSl9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuXG4gICAgICBAaW5jbHVkZSBfcmZzLWRpc2FibGUtY2xhc3Mge1xuICAgICAgICBmb250LXNpemU6ICN7JHJmcy1zdGF0aWN9I3skcmZzLXN1ZmZpeH07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkoJG1xLXZhbHVlKSB7XG4gICAgICAgIEBpbmNsdWRlIF9yZnMtZW5hYmxlLWNsYXNzIHtcbiAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoZSBmb250LXNpemUgJiByZXNwb25zaXZlLWZvbnQtc2l6ZSBtaXhpbnMgdXNlIFJGUyB0byByZXNjYWxlIHRoZSBmb250IHNpemVcbkBtaXhpbiBmb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cblxuQG1peGluIHJlc3BvbnNpdmUtZm9udC1zaXplKCRmcywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgcmZzKCRmcywgJGltcG9ydGFudCk7XG59XG4iLCIvLyBWYXJpYWJsZXNcbi8vXG4vLyBWYXJpYWJsZXMgc2hvdWxkIGZvbGxvdyB0aGUgYCRjb21wb25lbnQtc3RhdGUtcHJvcGVydHktc2l6ZWAgZm9ybXVsYSBmb3Jcbi8vIGNvbnNpc3RlbnQgbmFtaW5nLiBFeDogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yIGFuZCAkbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXhzLlxuXG4vLyBDb2xvciBzeXN0ZW1cblxuJHdoaXRlOiAgICAjZmZmO1xuJGdyYXktMTAwOiAjZjhmOWZhO1xuJGdyYXktMjAwOiAjZTllY2VmO1xuJGdyYXktMzAwOiAjZGVlMmU2O1xuJGdyYXktNDAwOiAjY2VkNGRhO1xuJGdyYXktNTAwOiAjYWRiNWJkO1xuJGdyYXktNjAwOiAjNmM3NTdkO1xuJGdyYXktNzAwOiAjNDk1MDU3O1xuJGdyYXktODAwOiAjMzQzYTQwO1xuJGdyYXktOTAwOiAjMjAxZDFkO1xuJGJsYWNrOiAgICAjMDAwO1xuXG4kZ3JheXM6ICgpO1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRncmF5czogbWFwLW1lcmdlKFxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMTAwXCI6ICRncmF5LTEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAwXCI6ICRncmF5LTIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAwXCI6ICRncmF5LTMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAwXCI6ICRncmF5LTQwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiNTAwXCI6ICRncmF5LTUwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiNjAwXCI6ICRncmF5LTYwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiNzAwXCI6ICRncmF5LTcwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiODAwXCI6ICRncmF5LTgwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiOTAwXCI6ICRncmF5LTkwMFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJGdyYXlzXG4pO1xuXG4kYmx1ZTogICAgJHByb2plY3QtcHJpbWFyeTsgLy8gbW9kICMwMDdiZmY7O1xuJGluZGlnbzogICM2NjEwZjI7XG4kcHVycGxlOiAgIzZmNDJjMTtcbiRwaW5rOiAgICAjZTgzZThjO1xuJHJlZDogICAgICNkYzM1NDU7XG4kb3JhbmdlOiAgI2ZkN2UxNDtcbiR5ZWxsb3c6ICAjZmZjMTA3O1xuJGdyZWVuOiAgICMyOGE3NDU7XG4kdGVhbDogICAgIzIwYzk5NztcbiRjeWFuOiAgICAjMTdhMmI4O1xuXG4kY29sb3JzOiAoKTtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kY29sb3JzOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJibHVlXCI6ICAgICAgICRibHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbmRpZ29cIjogICAgICRpbmRpZ28sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGlua1wiOiAgICAgICAkcGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVkXCI6ICAgICAgICAkcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmFuZ2VcIjogICAgICRvcmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInllbGxvd1wiOiAgICAgJHllbGxvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ3JlZW5cIjogICAgICAkZ3JlZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRlYWxcIjogICAgICAgJHRlYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImN5YW5cIjogICAgICAgJGN5YW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIndoaXRlXCI6ICAgICAgJHdoaXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJncmF5XCI6ICAgICAgICRncmF5LTYwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ3JheS1kYXJrXCI6ICAkZ3JheS04MDBcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICRjb2xvcnNcbik7XG5cbiRwcmltYXJ5OiAgICAgICAkYmx1ZTtcbiRzZWNvbmRhcnk6ICAgICAkZ3JheS02MDA7XG4kc3VjY2VzczogICAgICAgJGdyZWVuO1xuJGluZm86ICAgICAgICAgICRjeWFuO1xuJHdhcm5pbmc6ICAgICAgICR5ZWxsb3c7XG4kZGFuZ2VyOiAgICAgICAgJHJlZDtcbiRsaWdodDogICAgICAgICAkZ3JheS0xMDA7XG4kZGFyazogICAgICAgICAgJGdyYXktODAwO1xuXG4kdGhlbWUtY29sb3JzOiAoKTtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzZWNvbmRhcnlcIjogICRzZWNvbmRhcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImluZm9cIjogICAgICAgJGluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIndhcm5pbmdcIjogICAgJHdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhbmdlclwiOiAgICAgJGRhbmdlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibGlnaHRcIjogICAgICAkbGlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhcmtcIjogICAgICAgJGRhcmtcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICR0aGVtZS1jb2xvcnNcbik7XG5cbi8vIFNldCBhIHNwZWNpZmljIGp1bXAgcG9pbnQgZm9yIHJlcXVlc3RpbmcgY29sb3IganVtcHNcbiR0aGVtZS1jb2xvci1pbnRlcnZhbDogICAgICA4JTtcblxuLy8gVGhlIHlpcSBsaWdodG5lc3MgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZW4gdGhlIGxpZ2h0bmVzcyBvZiBjb2xvciBjaGFuZ2VzIGZyb20gXCJkYXJrXCIgdG8gXCJsaWdodFwiLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgYmV0d2VlbiAwIGFuZCAyNTUuXG4keWlxLWNvbnRyYXN0ZWQtdGhyZXNob2xkOiAgMTUwO1xuXG4vLyBDdXN0b21pemUgdGhlIGxpZ2h0IGFuZCBkYXJrIHRleHQgY29sb3JzIGZvciB1c2UgaW4gb3VyIFlJUSBjb2xvciBjb250cmFzdCBmdW5jdGlvbi5cbiR5aXEtdGV4dC1kYXJrOiAgICAgICAgICAgICAkZ3JheS05MDA7XG4keWlxLXRleHQtbGlnaHQ6ICAgICAgICAgICAgJHdoaXRlO1xuXG4vLyBDaGFyYWN0ZXJzIHdoaWNoIGFyZSBlc2NhcGVkIGJ5IHRoZSBlc2NhcGUtc3ZnIGZ1bmN0aW9uXG4kZXNjYXBlZC1jaGFyYWN0ZXJzOiAoXG4gICAgICAgICAgICAgICAgKFwiPFwiLFwiJTNjXCIpLFxuICAgICAgICAgICAgICAgIChcIj5cIixcIiUzZVwiKSxcbiAgICAgICAgICAgICAgICAoXCIjXCIsXCIlMjNcIiksXG4pO1xuXG5cbi8vIE9wdGlvbnNcbi8vXG4vLyBRdWlja2x5IG1vZGlmeSBnbG9iYWwgc3R5bGluZyBieSBlbmFibGluZyBvciBkaXNhYmxpbmcgb3B0aW9uYWwgZmVhdHVyZXMuXG5cbiRlbmFibGUtY2FyZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1yb3VuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XG4kZW5hYmxlLXNoYWRvd3M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2U7XG4kZW5hYmxlLWdyYWRpZW50czogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2U7XG4kZW5hYmxlLXRyYW5zaXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1tZWRpYS1xdWVyeTogICB0cnVlO1xuJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeTogICAgICAgICAgICAgICAgICAgIGZhbHNlOyAvLyBEZXByZWNhdGVkLCBubyBsb25nZXIgYWZmZWN0cyBhbnkgY29tcGlsZWQgQ1NTXG4kZW5hYmxlLWdyaWQtY2xhc3NlczogICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtcG9pbnRlci1jdXJzb3ItZm9yLWJ1dHRvbnM6ICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1wcmludC1zdHlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtdmFsaWRhdGlvbi1pY29uczogICAgICAgICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlczogICAgICAgICAgICAgICAgIHRydWU7XG5cblxuLy8gU3BhY2luZ1xuLy9cbi8vIENvbnRyb2wgdGhlIGRlZmF1bHQgc3R5bGluZyBvZiBtb3N0IEJvb3RzdHJhcCBlbGVtZW50cyBieSBtb2RpZnlpbmcgdGhlc2Vcbi8vIHZhcmlhYmxlcy4gTW9zdGx5IGZvY3VzZWQgb24gc3BhY2luZy5cbi8vIFlvdSBjYW4gYWRkIG1vcmUgZW50cmllcyB0byB0aGUgJHNwYWNlcnMgbWFwLCBzaG91bGQgeW91IG5lZWQgbW9yZSB2YXJpYXRpb24uXG5cbiRzcGFjZXI6IDFyZW07XG4kc3BhY2VyczogKCk7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJHNwYWNlcnM6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAwOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgMTogKCRzcGFjZXIgKiAuMjUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgMjogKCRzcGFjZXIgKiAuNSksXG4gICAgICAgICAgICAgICAgICAgICAgICAzOiAkc3BhY2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgNDogKCRzcGFjZXIgKiAxLjUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgNTogKCRzcGFjZXIgKiAzKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJHNwYWNlcnNcbik7XG5cbi8vIFRoaXMgdmFyaWFibGUgYWZmZWN0cyB0aGUgYC5oLSpgIGFuZCBgLnctKmAgY2xhc3Nlcy5cbiRzaXplczogKCk7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJHNpemVzOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgMjU6IDI1JSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDUwOiA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICA3NTogNzUlLFxuICAgICAgICAgICAgICAgICAgICAgICAgMTAwOiAxMDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0bzogYXV0b1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJHNpemVzXG4pO1xuXG5cbi8vIEJvZHlcbi8vXG4vLyBTZXR0aW5ncyBmb3IgdGhlIGA8Ym9keT5gIGVsZW1lbnQuXG5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICAgICAkd2hpdGU7XG4kYm9keS1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktOTAwO1xuXG5cbi8vIExpbmtzXG4vL1xuLy8gU3R5bGUgYW5jaG9yIGVsZW1lbnRzLlxuXG4kbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvamVjdC1ibHVlLWQ1MDA7XG4kbGluay1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBub25lO1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGxpbmstY29sb3I7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICB1bmRlcmxpbmU7XG4vLyBEYXJrZW4gcGVyY2VudGFnZSBmb3IgbGlua3Mgd2l0aCBgLnRleHQtKmAgY2xhc3MgKGUuZy4gYC50ZXh0LXN1Y2Nlc3NgKVxuJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZTogMTUlO1xuXG4vLyBQYXJhZ3JhcGhzXG4vL1xuLy8gU3R5bGUgcCBlbGVtZW50LlxuXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206ICAgMXJlbTtcblxuXG4vLyBHcmlkIGJyZWFrcG9pbnRzXG4vL1xuLy8gRGVmaW5lIHRoZSBtaW5pbXVtIGRpbWVuc2lvbnMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsXG4vLyBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLCBmb3IgdXNlIGluIG1lZGlhIHF1ZXJpZXMuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gICAgICAgIHhzOiAwLFxuICAgICAgICBzbTogNDgwcHgsXG4gICAgICAgIG1kOiA3NjhweCxcbiAgICAgICAgbGc6IDk5MnB4LFxuICAgICAgICB4bDogMTIwMHB4LFxuICAgICAgICBoZzogMTQyMHB4XG4pO1xuXG5AaW5jbHVkZSBfYXNzZXJ0LWFzY2VuZGluZygkZ3JpZC1icmVha3BvaW50cywgXCIkZ3JpZC1icmVha3BvaW50c1wiKTtcbkBpbmNsdWRlIF9hc3NlcnQtc3RhcnRzLWF0LXplcm8oJGdyaWQtYnJlYWtwb2ludHMsIFwiJGdyaWQtYnJlYWtwb2ludHNcIik7XG5cblxuLy8gR3JpZCBjb250YWluZXJzXG4vL1xuLy8gRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gICAgICAgIHNtOiA1NDBweCxcbiAgICAgICAgbWQ6IDc1MHB4LFxuICAgICAgICBsZzogOTYwcHgsXG4gICAgICAgIHhsOiAxMTQwcHgsXG4gICAgICAgIGhnOiAkc2l0ZS1jb250YWluZXJcbik7XG5cbkBpbmNsdWRlIF9hc3NlcnQtYXNjZW5kaW5nKCRjb250YWluZXItbWF4LXdpZHRocywgXCIkY29udGFpbmVyLW1heC13aWR0aHNcIik7XG5cblxuLy8gR3JpZCBjb2x1bW5zXG4vL1xuLy8gU2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgc3BlY2lmeSB0aGUgd2lkdGggb2YgdGhlIGd1dHRlcnMuXG5cbiRncmlkLWNvbHVtbnM6ICAgICAgICAgICAgICAgIDEyO1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgICAgMzBweDtcbiRncmlkLXJvdy1jb2x1bW5zOiAgICAgICAgICAgIDY7XG5cblxuLy8gQ29tcG9uZW50c1xuLy9cbi8vIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS5cblxuJGxpbmUtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgMS41O1xuJGxpbmUtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgMS41O1xuXG4kYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxcHg7XG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS0zMDA7XG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbTtcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zcmVtO1xuJGJvcmRlci1yYWRpdXMtc206ICAgICAgICAgICAgLjJyZW07XG5cbiRyb3VuZGVkLXBpbGw6ICAgICAgICAgICAgICAgIDUwcmVtO1xuXG4kYm94LXNoYWRvdy1zbTogICAgICAgICAgICAgICAwIC4xMjVyZW0gLjI1cmVtIHJnYmEoJGJsYWNrLCAuMDc1KTtcbiRib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE1KTtcbiRib3gtc2hhZG93LWxnOiAgICAgICAgICAgICAgIDAgMXJlbSAzcmVtIHJnYmEoJGJsYWNrLCAuMTc1KTtcblxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICAgJHdoaXRlO1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpO1xuXG4kY2FyZXQtd2lkdGg6ICAgICAgICAgICAgICAgICAuM2VtO1xuJGNhcmV0LXZlcnRpY2FsLWFsaWduOiAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1O1xuJGNhcmV0LXNwYWNpbmc6ICAgICAgICAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1O1xuXG4kdHJhbnNpdGlvbi1iYXNlOiAgICAgICAgICAgICBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuJHRyYW5zaXRpb24tZmFkZTogICAgICAgICAgICAgb3BhY2l0eSAuMTVzIGxpbmVhcjtcbiR0cmFuc2l0aW9uLWNvbGxhcHNlOiAgICAgICAgIGhlaWdodCAuMzVzIGVhc2U7XG5cbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6ICgpO1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6IGpvaW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDIxIDkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxNiA5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNCAzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvc1xuKTtcblxuLy8gVHlwb2dyYXBoeVxuLy9cbi8vIEZvbnQsIGxpbmUtaGVpZ2h0LCBhbmQgY29sb3IgZm9yIGJvZHkgdGV4dCwgaGVhZGluZ3MsIGFuZCBtb3JlLlxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiAgICAgICdSb2JvdG9XZWInLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogICAgICAgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiRmb250LWZhbWlseS1iYXNlOiAgICAgICAgICAgICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcblxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAgICAgMXJlbTsgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0LCB0eXBpY2FsbHkgYDE2cHhgXG4kZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1O1xuJGZvbnQtc2l6ZS1zbTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogLjg3NTtcblxuJGZvbnQtd2VpZ2h0LWxpZ2h0ZXI6ICAgICAgICAgbGlnaHRlcjtcbiRmb250LXdlaWdodC1saWdodDogICAgICAgICAgIDMwMDtcbiRmb250LXdlaWdodC1ub3JtYWw6ICAgICAgICAgIDQwMDtcbiRmb250LXdlaWdodC1ib2xkOiAgICAgICAgICAgIDcwMDtcbiRmb250LXdlaWdodC1ib2xkZXI6ICAgICAgICAgIGJvbGRlcjtcblxuJGZvbnQtd2VpZ2h0LWJhc2U6ICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgICAgIDEuNTtcblxuJGgxLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi41O1xuJGgyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMjtcbiRoMy1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjU7XG4kaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1O1xuJGg2LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlO1xuXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogICAgICAkc3BhY2VyIC8gMjtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogICAgICAgIG51bGw7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgICAgICA1MDA7XG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjI7XG4kaGVhZGluZ3MtY29sb3I6ICAgICAgICAgICAgICBudWxsO1xuXG4kZGlzcGxheTEtc2l6ZTogICAgICAgICAgICAgICA2cmVtO1xuJGRpc3BsYXkyLXNpemU6ICAgICAgICAgICAgICAgNS41cmVtO1xuJGRpc3BsYXkzLXNpemU6ICAgICAgICAgICAgICAgNC41cmVtO1xuJGRpc3BsYXk0LXNpemU6ICAgICAgICAgICAgICAgMy41cmVtO1xuXG4kZGlzcGxheTEtd2VpZ2h0OiAgICAgICAgICAgICAzMDA7XG4kZGlzcGxheTItd2VpZ2h0OiAgICAgICAgICAgICAzMDA7XG4kZGlzcGxheTMtd2VpZ2h0OiAgICAgICAgICAgICAzMDA7XG4kZGlzcGxheTQtd2VpZ2h0OiAgICAgICAgICAgICAzMDA7XG4kZGlzcGxheS1saW5lLWhlaWdodDogICAgICAgICAkaGVhZGluZ3MtbGluZS1oZWlnaHQ7XG5cbiRsZWFkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuMjU7XG4kbGVhZC1mb250LXdlaWdodDogICAgICAgICAgICAzMDA7XG5cbiRzbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgIDgwJTtcblxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgICAgICAgJGdyYXktNjAwO1xuXG4kYmxvY2txdW90ZS1zbWFsbC1jb2xvcjogICAgICAkZ3JheS02MDA7XG4kYmxvY2txdW90ZS1zbWFsbC1mb250LXNpemU6ICAkc21hbGwtZm9udC1zaXplO1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS4yNTtcblxuJGhyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4xKTtcbiRoci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICRib3JkZXItd2lkdGg7XG5cbiRtYXJrLXBhZGRpbmc6ICAgICAgICAgICAgICAgIC4yZW07XG5cbiRkdC1mb250LXdlaWdodDogICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkO1xuXG4ka2JkLWJveC1zaGFkb3c6ICAgICAgICAgICAgICBpbnNldCAwIC0uMXJlbSAwIHJnYmEoJGJsYWNrLCAuMjUpO1xuJG5lc3RlZC1rYmQtZm9udC13ZWlnaHQ6ICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cbiRsaXN0LWlubGluZS1wYWRkaW5nOiAgICAgICAgIC41cmVtO1xuXG4kbWFyay1iZzogICAgICAgICAgICAgICAgICAgICAjZmNmOGUzO1xuXG4kaHItbWFyZ2luLXk6ICAgICAgICAgICAgICAgICAkc3BhY2VyO1xuXG5cbi8vIFRhYmxlc1xuLy9cbi8vIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cblxuJHRhYmxlLWNlbGwtcGFkZGluZzogICAgICAgICAgLjc1cmVtO1xuJHRhYmxlLWNlbGwtcGFkZGluZy1zbTogICAgICAgLjNyZW07XG5cbiR0YWJsZS1jb2xvcjogICAgICAgICAgICAgICAgICRib2R5LWNvbG9yO1xuJHRhYmxlLWJnOiAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDUpO1xuJHRhYmxlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJHRhYmxlLWNvbG9yO1xuJHRhYmxlLWhvdmVyLWJnOiAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wNzUpO1xuJHRhYmxlLWFjdGl2ZS1iZzogICAgICAgICAgICAgJHRhYmxlLWhvdmVyLWJnO1xuXG4kdGFibGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAkYm9yZGVyLXdpZHRoO1xuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgJGJvcmRlci1jb2xvcjtcblxuJHRhYmxlLWhlYWQtYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwO1xuJHRhYmxlLWhlYWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktNzAwO1xuXG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGU7XG4kdGFibGUtZGFyay1iZzogICAgICAgICAgICAgICAkZ3JheS04MDA7XG4kdGFibGUtZGFyay1hY2NlbnQtYmc6ICAgICAgICByZ2JhKCR3aGl0ZSwgLjA1KTtcbiR0YWJsZS1kYXJrLWhvdmVyLWNvbG9yOiAgICAgICR0YWJsZS1kYXJrLWNvbG9yO1xuJHRhYmxlLWRhcmstaG92ZXItYmc6ICAgICAgICAgcmdiYSgkd2hpdGUsIC4wNzUpO1xuJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yOiAgICAgbGlnaHRlbigkdGFibGUtZGFyay1iZywgNy41JSk7XG5cbiR0YWJsZS1zdHJpcGVkLW9yZGVyOiAgICAgICAgIG9kZDtcblxuJHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgJHRleHQtbXV0ZWQ7XG5cbiR0YWJsZS1iZy1sZXZlbDogICAgICAgICAgICAgIC05O1xuJHRhYmxlLWJvcmRlci1sZXZlbDogICAgICAgICAgLTY7XG5cblxuLy8gQnV0dG9ucyArIEZvcm1zXG4vL1xuLy8gU2hhcmVkIHZhcmlhYmxlcyB0aGF0IGFyZSByZWFzc2lnbmVkIHRvIGAkaW5wdXQtYCBhbmQgYCRidG4tYCBzcGVjaWZpYyB2YXJpYWJsZXMuXG5cbiRpbnB1dC1idG4tcGFkZGluZy15OiAgICAgICAgIC4zNzVyZW07XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAuNzVyZW07XG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiAgICAgICBudWxsO1xuJGlucHV0LWJ0bi1mb250LXNpemU6ICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlO1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodDogICAgICAgJGxpbmUtaGVpZ2h0LWJhc2U7XG5cbiRpbnB1dC1idG4tZm9jdXMtd2lkdGg6ICAgICAgIC4ycmVtO1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjogICAgICAgcmdiYSgkY29tcG9uZW50LWFjdGl2ZS1iZywgLjI1KTtcbiRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdzogIDAgMCAwICRpbnB1dC1idG4tZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjI1cmVtO1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgLjVyZW07XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogICAgICAkZm9udC1zaXplLXNtO1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbTogICAgJGxpbmUtaGVpZ2h0LXNtO1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNXJlbTtcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDFyZW07XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZzogICAgICAkZm9udC1zaXplLWxnO1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZzogICAgJGxpbmUtaGVpZ2h0LWxnO1xuXG4kaW5wdXQtYnRuLWJvcmRlci13aWR0aDogICAgICAkYm9yZGVyLXdpZHRoO1xuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCwgYW5kIGJvcmRlciBjb2xvci5cblxuJGJ0bi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXk7XG4kYnRuLXBhZGRpbmcteDogICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteDtcbiRidG4tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1mYW1pbHk7XG4kYnRuLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZTtcbiRidG4tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQ7XG4kYnRuLXdoaXRlLXNwYWNlOiAgICAgICAgICAgICBudWxsOyAvLyBTZXQgdG8gYG5vd3JhcGAgdG8gcHJldmVudCB0ZXh0IHdyYXBwaW5nXG5cbiRidG4tcGFkZGluZy15LXNtOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LXNtO1xuJGJ0bi1wYWRkaW5nLXgtc206ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtc207XG4kYnRuLWZvbnQtc2l6ZS1zbTogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTtcbiRidG4tbGluZS1oZWlnaHQtc206ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtc207XG5cbiRidG4tcGFkZGluZy15LWxnOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LWxnO1xuJGJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc7XG4kYnRuLWZvbnQtc2l6ZS1sZzogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZztcbiRidG4tbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtbGc7XG5cbiRidG4tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoO1xuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsO1xuJGJ0bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKCR3aGl0ZSwgLjE1KSwgMCAxcHggMXB4IHJnYmEoJGJsYWNrLCAuMDc1KTtcbiRidG4tZm9jdXMtd2lkdGg6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGg7XG4kYnRuLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLWJveC1zaGFkb3c7XG4kYnRuLWRpc2FibGVkLW9wYWNpdHk6ICAgICAgICAuNjU7XG4kYnRuLWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICBpbnNldCAwIDNweCA1cHggcmdiYSgkYmxhY2ssIC4xMjUpO1xuXG4kYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAkZ3JheS02MDA7XG5cbiRidG4tYmxvY2stc3BhY2luZy15OiAgICAgICAgIC41cmVtO1xuXG4vLyBBbGxvd3MgZm9yIGN1c3RvbWl6aW5nIGJ1dHRvbiByYWRpdXMgaW5kZXBlbmRlbnRseSBmcm9tIGdsb2JhbCBib3JkZXIgcmFkaXVzXG4kYnRuLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcbiRidG4tYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICRib3JkZXItcmFkaXVzLWxnO1xuJGJ0bi1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgJGJvcmRlci1yYWRpdXMtc207XG5cbiRidG4tdHJhbnNpdGlvbjogICAgICAgICAgICAgIGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDtcblxuXG4vLyBGb3Jtc1xuXG4kbGFiZWwtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICAgLjVyZW07XG5cbiRpbnB1dC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteTtcbiRpbnB1dC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteDtcbiRpbnB1dC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtZmFtaWx5O1xuJGlucHV0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1zaXplO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1iYXNlO1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXktc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1zbTtcbiRpbnB1dC1wYWRkaW5nLXgtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1zbTtcbiRpbnB1dC1mb250LXNpemUtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTtcbiRpbnB1dC1saW5lLWhlaWdodC1zbTogICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXNtO1xuXG4kaW5wdXQtcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc7XG4kaW5wdXQtcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc7XG4kaW5wdXQtZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1mb250LXNpemUtbGc7XG4kaW5wdXQtbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZztcblxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZTtcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDA7XG5cbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS03MDA7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXktNDAwO1xuJGlucHV0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoO1xuJGlucHV0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIGluc2V0IDAgMXB4IDFweCByZ2JhKCRibGFjaywgLjA3NSk7XG5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZztcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbTtcblxuJGlucHV0LWZvY3VzLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZztcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAyNSUpO1xuJGlucHV0LWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvcjtcbiRpbnB1dC1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLXdpZHRoO1xuJGlucHV0LWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdztcblxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTYwMDtcbiRpbnB1dC1wbGFpbnRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1jb2xvcjtcblxuJGlucHV0LWhlaWdodC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggKiAyO1xuXG4kaW5wdXQtaGVpZ2h0LWlubmVyOiAgICAgICAgICAgICAgICAgICAgYWRkKCRpbnB1dC1saW5lLWhlaWdodCAqIDFlbSwgJGlucHV0LXBhZGRpbmcteSAqIDIpO1xuJGlucHV0LWhlaWdodC1pbm5lci1oYWxmOiAgICAgICAgICAgICAgIGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAuNWVtLCAkaW5wdXQtcGFkZGluZy15KTtcbiRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlcjogICAgICAgICAgICBhZGQoJGlucHV0LWxpbmUtaGVpZ2h0ICogLjI1ZW0sICRpbnB1dC1wYWRkaW5nLXkgLyAyKTtcblxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAxZW0sIGFkZCgkaW5wdXQtcGFkZGluZy15ICogMiwgJGlucHV0LWhlaWdodC1ib3JkZXIsIGZhbHNlKSk7XG4kaW5wdXQtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgICAgICAgICAgYWRkKCRpbnB1dC1saW5lLWhlaWdodC1zbSAqIDFlbSwgYWRkKCRpbnB1dC1wYWRkaW5nLXktc20gKiAyLCAkaW5wdXQtaGVpZ2h0LWJvcmRlciwgZmFsc2UpKTtcbiRpbnB1dC1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgICAgICBhZGQoJGlucHV0LWxpbmUtaGVpZ2h0LWxnICogMWVtLCBhZGQoJGlucHV0LXBhZGRpbmcteS1sZyAqIDIsICRpbnB1dC1oZWlnaHQtYm9yZGVyLCBmYWxzZSkpO1xuXG4kaW5wdXQtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDtcblxuJGZvcm0tdGV4dC1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgIC4yNXJlbTtcblxuJGZvcm0tY2hlY2staW5wdXQtZ3V0dGVyOiAgICAgICAgICAgICAgIDEuMjVyZW07XG4kZm9ybS1jaGVjay1pbnB1dC1tYXJnaW4teTogICAgICAgICAgICAgLjNyZW07XG4kZm9ybS1jaGVjay1pbnB1dC1tYXJnaW4teDogICAgICAgICAgICAgLjI1cmVtO1xuXG4kZm9ybS1jaGVjay1pbmxpbmUtbWFyZ2luLXg6ICAgICAgICAgICAgLjc1cmVtO1xuJGZvcm0tY2hlY2staW5saW5lLWlucHV0LW1hcmdpbi14OiAgICAgIC4zMTI1cmVtO1xuXG4kZm9ybS1ncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgICAgICAgMTBweDtcbiRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAxcmVtO1xuXG4kaW5wdXQtZ3JvdXAtYWRkb24tY29sb3I6ICAgICAgICAgICAgICAgJGlucHV0LWNvbG9yO1xuJGlucHV0LWdyb3VwLWFkZG9uLWJnOiAgICAgICAgICAgICAgICAgICRncmF5LTIwMDtcbiRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4kY3VzdG9tLWZvcm1zLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0O1xuXG4kY3VzdG9tLWNvbnRyb2wtZ3V0dGVyOiAgICAgICAgICAgICAgICAgLjVyZW07XG4kY3VzdG9tLWNvbnRyb2wtc3BhY2VyLXg6ICAgICAgICAgICAgICAgMXJlbTtcbiRjdXN0b20tY29udHJvbC1jdXJzb3I6ICAgICAgICAgICAgICAgICBudWxsO1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgMXJlbTtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAkaW5wdXQtYmc7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZTogICAgICA1MCUgNTAlO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3gtc2hhZG93OiAgICRpbnB1dC1ib3gtc2hhZG93O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3I6ICRncmF5LTUwMDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuXG4kY3VzdG9tLWNvbnRyb2wtbGFiZWwtY29sb3I6ICAgICAgICAgICAgbnVsbDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1kaXNhYmxlZC1iZzogICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnO1xuJGN1c3RvbS1jb250cm9sLWxhYmVsLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgJGdyYXktNjAwO1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3I6ICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvcjtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZzogICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnOiAgcmdiYSh0aGVtZS1jb2xvcihcInByaW1hcnlcIiksIC41KTtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1ib3gtc2hhZG93OiAgIG5vbmU7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm9yZGVyLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYmc7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZm9jdXMtYm94LXNoYWRvdzogICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3JkZXItY29sb3I6ICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtY29sb3I6ICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3I7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAzNSUpO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm94LXNoYWRvdzogICAgbm9uZTtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJvcmRlci1jb2xvcjogICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuXG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1ib3JkZXItcmFkaXVzOiAgICAgICAkYm9yZGVyLXJhZGl1cztcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24tY2hlY2tlZDogICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzgnIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDggOCc+PHBhdGggZmlsbD0nI3skY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3J9JyBkPSdNNi41NjQuNzVsLTMuNTkgMy42MTItMS41MzgtMS41NUwwIDQuMjZsMi45NzQgMi45OUw4IDIuMTkzeicvPjwvc3ZnPlwiKTtcblxuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZzogICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnO1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1jb2xvcjogICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcjtcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24taW5kZXRlcm1pbmF0ZTogICAgICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzQnIHZpZXdCb3g9JzAgMCA0IDQnPjxwYXRoIHN0cm9rZT0nI3skY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWNvbG9yfScgZD0nTTAgMmg0Jy8+PC9zdmc+XCIpO1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1ib3gtc2hhZG93OiAgIG5vbmU7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvcjogJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZztcblxuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAgNTAlO1xuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInIHZpZXdCb3g9Jy00IC00IDggOCc+PGNpcmNsZSByPSczJyBmaWxsPScjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcn0nLz48L3N2Zz5cIik7XG5cbiRjdXN0b20tc3dpdGNoLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSAqIDEuNzU7XG4kY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUgLyAyO1xuJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgICAgICAgICAgc3VidHJhY3QoJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplLCAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJvcmRlci13aWR0aCAqIDQpO1xuXG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk6ICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14OiAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5OiAgICAgICAgICRpbnB1dC1mb250LWZhbWlseTtcbiRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZTogICAgICAgICAgICRpbnB1dC1mb250LXNpemU7XG4kY3VzdG9tLXNlbGVjdC1oZWlnaHQ6ICAgICAgICAgICAgICAkaW5wdXQtaGVpZ2h0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc6ICAgMXJlbTsgLy8gRXh0cmEgcGFkZGluZyB0byBhY2NvdW50IGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIGJhY2tncm91bmQtaW1hZ2UgYmFzZWQgaW5kaWNhdG9yXG4kY3VzdG9tLXNlbGVjdC1mb250LXdlaWdodDogICAgICAgICAkaW5wdXQtZm9udC13ZWlnaHQ7XG4kY3VzdG9tLXNlbGVjdC1saW5lLWhlaWdodDogICAgICAgICAkaW5wdXQtbGluZS1oZWlnaHQ7XG4kY3VzdG9tLXNlbGVjdC1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3I7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS02MDA7XG4kY3VzdG9tLXNlbGVjdC1iZzogICAgICAgICAgICAgICAgICAkaW5wdXQtYmc7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZzogICAgICAgICAkZ3JheS0yMDA7XG4kY3VzdG9tLXNlbGVjdC1iZy1zaXplOiAgICAgICAgICAgICA4cHggMTBweDsgLy8gSW4gcGl4ZWxzIGJlY2F1c2UgaW1hZ2UgZGltZW5zaW9uc1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLWNvbG9yOiAgICAgJGdyYXktODAwO1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yOiAgICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNCcgaGVpZ2h0PSc1JyB2aWV3Qm94PScwIDAgNCA1Jz48cGF0aCBmaWxsPScjeyRjdXN0b20tc2VsZWN0LWluZGljYXRvci1jb2xvcn0nIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLz48L3N2Zz5cIik7XG4kY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kOiAgICAgICAgICBlc2NhcGUtc3ZnKCRjdXN0b20tc2VsZWN0LWluZGljYXRvcikgbm8tcmVwZWF0IHJpZ2h0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCBjZW50ZXIgLyAkY3VzdG9tLXNlbGVjdC1iZy1zaXplOyAvLyBVc2VkIHNvIHdlIGNhbiBoYXZlIG11bHRpcGxlIGJhY2tncm91bmQgZWxlbWVudHMgKGUuZy4sIGFycm93IGFuZCBmZWVkYmFjayBpY29uKVxuXG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctcmlnaHQ6IGFkZCgxZW0gKiAuNzUsICgyICogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICogLjc1KSArICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nKTtcbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb246ICAgICAgY2VudGVyIHJpZ2h0ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZyk7XG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXNpemU6ICAgICAgICAgICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY7XG5cbiRjdXN0b20tc2VsZWN0LWJvcmRlci13aWR0aDogICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGg7XG4kY3VzdG9tLXNlbGVjdC1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgJGJvcmRlci1yYWRpdXM7XG4kY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93OiAgICAgICAgICBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIC4wNzUpO1xuXG4kY3VzdG9tLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3I6ICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGg6ICAgICAgICAgJGlucHV0LWZvY3VzLXdpZHRoO1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdzogICAgMCAwIDAgJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1zbTtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtc207XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtc206ICAgICAgICAkaW5wdXQtZm9udC1zaXplLXNtO1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1zbTtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LWxnOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1sZztcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZzogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtbGc7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtbGc6ICAgICAgICAkaW5wdXQtZm9udC1zaXplLWxnO1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LWxnOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1sZztcblxuJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDogICAgICAgICAgMTAwJTtcbiRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgIC41cmVtO1xuJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I6ICAgICAgICAgcG9pbnRlcjtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYmc6ICAgICAgICAgICAgICRncmF5LTMwMDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1czogIDFyZW07XG4kY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3c6ICAgICBpbnNldCAwIC4yNXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKTtcblxuJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDogICAgICAgICAgICAgICAgICAgMXJlbTtcbiRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZztcbiRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyOiAgICAgICAgICAgICAgICAgIDA7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAxcmVtO1xuJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgMCAuMXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKTtcbiRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzogICAgICAgIDAgMCAwIDFweCAkYm9keS1iZywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3c7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg6ICAkaW5wdXQtZm9jdXMtd2lkdGg7IC8vIEZvciBmb2N1cyBib3ggc2hhZG93IGlzc3VlIGluIElFL0VkZ2VcbiRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSk7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnOiAgICAgICAgICAgICAkZ3JheS01MDA7XG5cbiRjdXN0b20tZmlsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICRpbnB1dC1oZWlnaHQ7XG4kY3VzdG9tLWZpbGUtaGVpZ2h0LWlubmVyOiAgICAgICAgICAkaW5wdXQtaGVpZ2h0LWlubmVyO1xuJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjogICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiRjdXN0b20tZmlsZS1mb2N1cy1ib3gtc2hhZG93OiAgICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuJGN1c3RvbS1maWxlLWRpc2FibGVkLWJnOiAgICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnO1xuXG4kY3VzdG9tLWZpbGUtcGFkZGluZy15OiAgICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15O1xuJGN1c3RvbS1maWxlLXBhZGRpbmcteDogICAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteDtcbiRjdXN0b20tZmlsZS1saW5lLWhlaWdodDogICAgICAgICAgICRpbnB1dC1saW5lLWhlaWdodDtcbiRjdXN0b20tZmlsZS1mb250LWZhbWlseTogICAgICAgICAgICRpbnB1dC1mb250LWZhbWlseTtcbiRjdXN0b20tZmlsZS1mb250LXdlaWdodDogICAgICAgICAgICRpbnB1dC1mb250LXdlaWdodDtcbiRjdXN0b20tZmlsZS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvcjtcbiRjdXN0b20tZmlsZS1iZzogICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZztcbiRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGg7XG4kY3VzdG9tLWZpbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuJGN1c3RvbS1maWxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGlucHV0LWJvcmRlci1yYWRpdXM7XG4kY3VzdG9tLWZpbGUtYm94LXNoYWRvdzogICAgICAgICAgICAkaW5wdXQtYm94LXNoYWRvdztcbiRjdXN0b20tZmlsZS1idXR0b24tY29sb3I6ICAgICAgICAgICRjdXN0b20tZmlsZS1jb2xvcjtcbiRjdXN0b20tZmlsZS1idXR0b24tYmc6ICAgICAgICAgICAgICRpbnB1dC1ncm91cC1hZGRvbi1iZztcbiRjdXN0b20tZmlsZS10ZXh0OiAoXG4gICAgICAgIGVuOiBcIkJyb3dzZVwiXG4pO1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG4kZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wOiAgICAgICAgICAkZm9ybS10ZXh0LW1hcmdpbi10b3A7XG4kZm9ybS1mZWVkYmFjay1mb250LXNpemU6ICAgICAgICAgICAkc21hbGwtZm9udC1zaXplO1xuJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3I6ICAgICAgICAgdGhlbWUtY29sb3IoXCJzdWNjZXNzXCIpO1xuJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcjogICAgICAgdGhlbWUtY29sb3IoXCJkYW5nZXJcIik7XG5cbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3I6ICAgICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yO1xuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nOCcgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgOCA4Jz48cGF0aCBmaWxsPScjeyRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3J9JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8+PC9zdmc+XCIpO1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yOiAgJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcjtcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZDogICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyBmaWxsPSdub25lJyBzdHJva2U9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgdmlld0JveD0nMCAwIDEyIDEyJz48Y2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8+PHBhdGggc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTUuOCAzLjZoLjRMNiA2LjV6Jy8+PGNpcmNsZSBjeD0nNicgY3k9JzguMicgcj0nLjYnIGZpbGw9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgc3Ryb2tlPSdub25lJy8+PC9zdmc+XCIpO1xuXG4kZm9ybS12YWxpZGF0aW9uLXN0YXRlczogKCk7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJGZvcm0tdmFsaWRhdGlvbi1zdGF0ZXM6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhbGlkXCI6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2xvclwiOiAkZm9ybS1mZWVkYmFjay12YWxpZC1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpY29uXCI6ICRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBcImludmFsaWRcIjogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbG9yXCI6ICRmb3JtLWZlZWRiYWNrLWludmFsaWQtY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWNvblwiOiAkZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAkZm9ybS12YWxpZGF0aW9uLXN0YXRlc1xuKTtcblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuXG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAgICAgICAgICAxMDAwO1xuJHppbmRleC1zdGlja3k6ICAgICAgICAgICAgICAgICAgICAgMTAyMDtcbiR6aW5kZXgtZml4ZWQ6ICAgICAgICAgICAgICAgICAgICAgIDEwMzA7XG4kemluZGV4LW1vZGFsLWJhY2tkcm9wOiAgICAgICAgICAgICAxMDQwO1xuJHppbmRleC1tb2RhbDogICAgICAgICAgICAgICAgICAgICAgMTA1MDtcbiR6aW5kZXgtcG9wb3ZlcjogICAgICAgICAgICAgICAgICAgIDEwNjA7XG4kemluZGV4LXRvb2x0aXA6ICAgICAgICAgICAgICAgICAgICAxMDcwO1xuXG5cbi8vIE5hdnNcblxuJG5hdi1saW5rLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW07XG4kbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgICAgICAgICAxcmVtO1xuJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgJGdyYXktNjAwO1xuXG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkZ3JheS0zMDA7XG4kbmF2LXRhYnMtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoO1xuJG5hdi10YWJzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgJGJvcmRlci1yYWRpdXM7XG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAkZ3JheS0yMDAgJGdyYXktMjAwICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAkZ3JheS03MDA7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkYm9keS1iZztcbiRuYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I6ICRncmF5LTMwMCAkZ3JheS0zMDAgJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnO1xuXG4kbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yO1xuJG5hdi1waWxscy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmc7XG5cbiRuYXYtZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LTIwMDtcbiRuYXYtZGl2aWRlci1tYXJnaW4teTogICAgICAgICAgICAgICRzcGFjZXIgLyAyO1xuXG5cbi8vIE5hdmJhclxuXG4kbmF2YmFyLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAkc3BhY2VyIC8gMjtcbiRuYXZiYXItcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICRzcGFjZXI7XG5cbiRuYXZiYXItbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgIC41cmVtO1xuXG4kbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZTogICAgICAgICAgICAkZm9udC1zaXplLWxnO1xuLy8gQ29tcHV0ZSB0aGUgbmF2YmFyLWJyYW5kIHBhZGRpbmcteSBzbyB0aGUgbmF2YmFyLWJyYW5kIHdpbGwgaGF2ZSB0aGUgc2FtZSBoZWlnaHQgYXMgbmF2YmFyLXRleHQgYW5kIG5hdi1saW5rXG4kbmF2LWxpbmstaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSArICRuYXYtbGluay1wYWRkaW5nLXkgKiAyO1xuJG5hdmJhci1icmFuZC1oZWlnaHQ6ICAgICAgICAgICAgICAgJG5hdmJhci1icmFuZC1mb250LXNpemUgKiAkbGluZS1oZWlnaHQtYmFzZTtcbiRuYXZiYXItYnJhbmQtcGFkZGluZy15OiAgICAgICAgICAgICgkbmF2LWxpbmstaGVpZ2h0IC0gJG5hdmJhci1icmFuZC1oZWlnaHQpIC8gMjtcblxuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteTogICAgICAgICAgLjI1cmVtO1xuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDogICAgICAgICAgLjc1cmVtO1xuJG5hdmJhci10b2dnbGVyLWZvbnQtc2l6ZTogICAgICAgICAgJGZvbnQtc2l6ZS1sZztcbiRuYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzOiAgICAgICRidG4tYm9yZGVyLXJhZGl1cztcblxuJG5hdmJhci1kYXJrLWNvbG9yOiAgICAgICAgICAgICAgICAgcmdiYSgkd2hpdGUsIC41KTtcbiRuYXZiYXItZGFyay1ob3Zlci1jb2xvcjogICAgICAgICAgIHJnYmEoJHdoaXRlLCAuNzUpO1xuJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJHdoaXRlO1xuJG5hdmJhci1kYXJrLWRpc2FibGVkLWNvbG9yOiAgICAgICAgcmdiYSgkd2hpdGUsIC4yNSk7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnOiAgICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMCcgaGVpZ2h0PSczMCcgdmlld0JveD0nMCAwIDMwIDMwJz48cGF0aCBzdHJva2U9JyN7JG5hdmJhci1kYXJrLWNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLz48L3N2Zz5cIik7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1ib3JkZXItY29sb3I6ICByZ2JhKCR3aGl0ZSwgLjEpO1xuXG4kbmF2YmFyLWxpZ2h0LWNvbG9yOiAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjUpO1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogICAgICAgICAgcmdiYSgkYmxhY2ssIC43KTtcbiRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yOiAgICAgICAgIHJnYmEoJGJsYWNrLCAuOSk7XG4kbmF2YmFyLWxpZ2h0LWRpc2FibGVkLWNvbG9yOiAgICAgICByZ2JhKCRibGFjaywgLjMpO1xuJG5hdmJhci1saWdodC10b2dnbGVyLWljb24tYmc6ICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHZpZXdCb3g9JzAgMCAzMCAzMCc+PHBhdGggc3Ryb2tlPScjeyRuYXZiYXItbGlnaHQtY29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvPjwvc3ZnPlwiKTtcbiRuYXZiYXItbGlnaHQtdG9nZ2xlci1ib3JkZXItY29sb3I6IHJnYmEoJGJsYWNrLCAuMSk7XG5cbiRuYXZiYXItbGlnaHQtYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yO1xuJG5hdmJhci1saWdodC1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICAgJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I7XG4kbmF2YmFyLWRhcmstYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yO1xuJG5hdmJhci1kYXJrLWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjtcblxuXG4vLyBEcm9wZG93bnNcbi8vXG4vLyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbiRkcm9wZG93bi1taW4td2lkdGg6ICAgICAgICAgICAgICAgIDEwcmVtO1xuJGRyb3Bkb3duLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW07XG4kZHJvcGRvd24tc3BhY2VyOiAgICAgICAgICAgICAgICAgICAuMTI1cmVtO1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlO1xuJGRyb3Bkb3duLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGJvZHktY29sb3I7XG4kZHJvcGRvd24tYmc6ICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGU7XG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjE1KTtcbiRkcm9wZG93bi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzO1xuJGRyb3Bkb3duLWJvcmRlci13aWR0aDogICAgICAgICAgICAgJGJvcmRlci13aWR0aDtcbiRkcm9wZG93bi1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgIHN1YnRyYWN0KCRkcm9wZG93bi1ib3JkZXItcmFkaXVzLCAkZHJvcGRvd24tYm9yZGVyLXdpZHRoKTtcbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICAgICRncmF5LTIwMDtcbiRkcm9wZG93bi1kaXZpZGVyLW1hcmdpbi15OiAgICAgICAgICRuYXYtZGl2aWRlci1tYXJnaW4teTtcbiRkcm9wZG93bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE3NSk7XG5cbiRkcm9wZG93bi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTkwMDtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkZ3JheS05MDAsIDUlKTtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICRncmF5LTEwMDtcblxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3I7XG4kZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZztcblxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgJGdyYXktNjAwO1xuXG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXk6ICAgICAgICAgICAuMjVyZW07XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXg6ICAgICAgICAgICAxLjVyZW07XG5cbiRkcm9wZG93bi1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICRncmF5LTYwMDtcblxuXG4vLyBQYWdpbmF0aW9uXG5cbiRwYWdpbmF0aW9uLXBhZGRpbmcteTogICAgICAgICAgICAgIC41cmVtO1xuJHBhZ2luYXRpb24tcGFkZGluZy14OiAgICAgICAgICAgICAgLjc1cmVtO1xuJHBhZ2luYXRpb24tcGFkZGluZy15LXNtOiAgICAgICAgICAgLjI1cmVtO1xuJHBhZ2luYXRpb24tcGFkZGluZy14LXNtOiAgICAgICAgICAgLjVyZW07XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXktbGc6ICAgICAgICAgICAuNzVyZW07XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAxLjVyZW07XG4kcGFnaW5hdGlvbi1saW5lLWhlaWdodDogICAgICAgICAgICAxLjI1O1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkbGluay1jb2xvcjtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGg7XG4kcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZ3JheS0zMDA7XG5cbiRwYWdpbmF0aW9uLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdztcbiRwYWdpbmF0aW9uLWZvY3VzLW91dGxpbmU6ICAgICAgICAgIDA7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICRsaW5rLWhvdmVyLWNvbG9yO1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwO1xuJHBhZ2luYXRpb24taG92ZXItYm9yZGVyLWNvbG9yOiAgICAgJGdyYXktMzAwO1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvcjtcbiRwYWdpbmF0aW9uLWFjdGl2ZS1iZzogICAgICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnO1xuJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAkZ3JheS02MDA7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAkd2hpdGU7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICAkZ3JheS0zMDA7XG5cblxuLy8gSnVtYm90cm9uXG5cbiRqdW1ib3Ryb24tcGFkZGluZzogICAgICAgICAgICAgICAgIDJyZW07XG4kanVtYm90cm9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICBudWxsO1xuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgJGdyYXktMjAwO1xuXG5cbi8vIENhcmRzXG5cbiRjYXJkLXNwYWNlci15OiAgICAgICAgICAgICAgICAgICAgIC43NXJlbTtcbiRjYXJkLXNwYWNlci14OiAgICAgICAgICAgICAgICAgICAgIDEuMjVyZW07XG4kY2FyZC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXM7XG4kY2FyZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjEyNSk7XG4kY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgICAgICBzdWJ0cmFjdCgkY2FyZC1ib3JkZXItcmFkaXVzLCAkY2FyZC1ib3JkZXItd2lkdGgpO1xuJGNhcmQtY2FwLWJnOiAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wMyk7XG4kY2FyZC1jYXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICBudWxsO1xuJGNhcmQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiRjYXJkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4kY2FyZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGU7XG5cbiRjYXJkLWltZy1vdmVybGF5LXBhZGRpbmc6ICAgICAgICAgIDEuMjVyZW07XG5cbiRjYXJkLWdyb3VwLW1hcmdpbjogICAgICAgICAgICAgICAgICRncmlkLWd1dHRlci13aWR0aCAvIDI7XG4kY2FyZC1kZWNrLW1hcmdpbjogICAgICAgICAgICAgICAgICAkY2FyZC1ncm91cC1tYXJnaW47XG5cbiRjYXJkLWNvbHVtbnMtY291bnQ6ICAgICAgICAgICAgICAgIDM7XG4kY2FyZC1jb2x1bW5zLWdhcDogICAgICAgICAgICAgICAgICAxLjI1cmVtO1xuJGNhcmQtY29sdW1ucy1tYXJnaW46ICAgICAgICAgICAgICAgJGNhcmQtc3BhY2VyLXk7XG5cblxuLy8gVG9vbHRpcHNcblxuJHRvb2x0aXAtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1zbTtcbiR0b29sdGlwLW1heC13aWR0aDogICAgICAgICAgICAgICAgIDIwMHB4O1xuJHRvb2x0aXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJHdoaXRlO1xuJHRvb2x0aXAtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgJGJsYWNrO1xuJHRvb2x0aXAtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJGJvcmRlci1yYWRpdXM7XG4kdG9vbHRpcC1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAuOTtcbiR0b29sdGlwLXBhZGRpbmcteTogICAgICAgICAgICAgICAgIC4yNXJlbTtcbiR0b29sdGlwLXBhZGRpbmcteDogICAgICAgICAgICAgICAgIC41cmVtO1xuJHRvb2x0aXAtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgMDtcblxuJHRvb2x0aXAtYXJyb3ctd2lkdGg6ICAgICAgICAgICAgICAgLjhyZW07XG4kdG9vbHRpcC1hcnJvdy1oZWlnaHQ6ICAgICAgICAgICAgICAuNHJlbTtcbiR0b29sdGlwLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICR0b29sdGlwLWJnO1xuXG4vLyBGb3JtIHRvb2x0aXBzIG11c3QgY29tZSBhZnRlciByZWd1bGFyIHRvb2x0aXBzXG4kZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteTogICAgICR0b29sdGlwLXBhZGRpbmcteTtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtcGFkZGluZy14OiAgICAgJHRvb2x0aXAtcGFkZGluZy14O1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemU6ICAgICAkdG9vbHRpcC1mb250LXNpemU7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0OiAgICRsaW5lLWhlaWdodC1iYXNlO1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5OiAgICAgICAkdG9vbHRpcC1vcGFjaXR5O1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1ib3JkZXItcmFkaXVzO1xuXG5cbi8vIFBvcG92ZXJzXG5cbiRwb3BvdmVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICRmb250LXNpemUtc207XG4kcG9wb3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGU7XG4kcG9wb3Zlci1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAyNzZweDtcbiRwb3BvdmVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICRib3JkZXItd2lkdGg7XG4kcG9wb3Zlci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjIpO1xuJHBvcG92ZXItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMtbGc7XG4kcG9wb3Zlci1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgICBzdWJ0cmFjdCgkcG9wb3Zlci1ib3JkZXItcmFkaXVzLCAkcG9wb3Zlci1ib3JkZXItd2lkdGgpO1xuJHBvcG92ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgMCAuMjVyZW0gLjVyZW0gcmdiYSgkYmxhY2ssIC4yKTtcblxuJHBvcG92ZXItaGVhZGVyLWJnOiAgICAgICAgICAgICAgICAgZGFya2VuKCRwb3BvdmVyLWJnLCAzJSk7XG4kcG9wb3Zlci1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAkaGVhZGluZ3MtY29sb3I7XG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy15OiAgICAgICAgICAuNXJlbTtcbiRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXg6ICAgICAgICAgIC43NXJlbTtcblxuJHBvcG92ZXItYm9keS1jb2xvcjogICAgICAgICAgICAgICAgJGJvZHktY29sb3I7XG4kcG9wb3Zlci1ib2R5LXBhZGRpbmcteTogICAgICAgICAgICAkcG9wb3Zlci1oZWFkZXItcGFkZGluZy15O1xuJHBvcG92ZXItYm9keS1wYWRkaW5nLXg6ICAgICAgICAgICAgJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteDtcblxuJHBvcG92ZXItYXJyb3ctd2lkdGg6ICAgICAgICAgICAgICAgMXJlbTtcbiRwb3BvdmVyLWFycm93LWhlaWdodDogICAgICAgICAgICAgIC41cmVtO1xuJHBvcG92ZXItYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgJHBvcG92ZXItYmc7XG5cbiRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yOiAgICAgICAgIGZhZGUtaW4oJHBvcG92ZXItYm9yZGVyLWNvbG9yLCAuMDUpO1xuXG5cbi8vIFRvYXN0c1xuXG4kdG9hc3QtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAzNTBweDtcbiR0b2FzdC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgIC43NXJlbTtcbiR0b2FzdC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgIC4yNXJlbTtcbiR0b2FzdC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgIC44NzVyZW07XG4kdG9hc3QtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xuJHRvYXN0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgcmdiYSgkd2hpdGUsIC44NSk7XG4kdG9hc3QtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxcHg7XG4kdG9hc3QtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICByZ2JhKDAsIDAsIDAsIC4xKTtcbiR0b2FzdC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbTtcbiR0b2FzdC1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgIDAgLjI1cmVtIC43NXJlbSByZ2JhKCRibGFjaywgLjEpO1xuXG4kdG9hc3QtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS02MDA7XG4kdG9hc3QtaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICAgICByZ2JhKCR3aGl0ZSwgLjg1KTtcbiR0b2FzdC1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICAgICAgIHJnYmEoMCwgMCwgMCwgLjA1KTtcblxuXG4vLyBCYWRnZXNcblxuJGJhZGdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgNzUlO1xuJGJhZGdlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQ7XG4kYmFkZ2UtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAuMjVlbTtcbiRiYWRnZS1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgIC40ZW07XG4kYmFkZ2UtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcblxuJGJhZGdlLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgICAgJGJ0bi10cmFuc2l0aW9uO1xuJGJhZGdlLWZvY3VzLXdpZHRoOiAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1mb2N1cy13aWR0aDtcblxuJGJhZGdlLXBpbGwtcGFkZGluZy14OiAgICAgICAgICAgICAgLjZlbTtcbi8vIFVzZSBhIGhpZ2hlciB0aGFuIG5vcm1hbCB2YWx1ZSB0byBlbnN1cmUgY29tcGxldGVseSByb3VuZGVkIGVkZ2VzIHdoZW5cbi8vIGN1c3RvbWl6aW5nIHBhZGRpbmcgb3IgZm9udC1zaXplIG9uIGxhYmVscy5cbiRiYWRnZS1waWxsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgIDEwcmVtO1xuXG5cbi8vIE1vZGFsc1xuXG4vLyBQYWRkaW5nIGFwcGxpZWQgdG8gdGhlIG1vZGFsIGJvZHlcbiRtb2RhbC1pbm5lci1wYWRkaW5nOiAgICAgICAgICAgICAgIDFyZW07XG5cbi8vIE1hcmdpbiBiZXR3ZWVuIGVsZW1lbnRzIGluIGZvb3RlciwgbXVzdCBiZSBsb3dlciB0aGFuIG9yIGVxdWFsIHRvIDIgKiAkbW9kYWwtaW5uZXItcGFkZGluZ1xuJG1vZGFsLWZvb3Rlci1tYXJnaW4tYmV0d2VlbjogICAgICAgLjVyZW07XG5cbiRtb2RhbC1kaWFsb2ctbWFyZ2luOiAgICAgICAgICAgICAgIC41cmVtO1xuJG1vZGFsLWRpYWxvZy1tYXJnaW4teS1zbS11cDogICAgICAgMS43NXJlbTtcblxuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgJGxpbmUtaGVpZ2h0LWJhc2U7XG5cbiRtb2RhbC1jb250ZW50LWNvbG9yOiAgICAgICAgICAgICAgIG51bGw7XG4kbW9kYWwtY29udGVudC1iZzogICAgICAgICAgICAgICAgICAkd2hpdGU7XG4kbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I6ICAgICAgICByZ2JhKCRibGFjaywgLjIpO1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAgICAgICAgJGJvcmRlci13aWR0aDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci1yYWRpdXM6ICAgICAgICRib3JkZXItcmFkaXVzLWxnO1xuJG1vZGFsLWNvbnRlbnQtaW5uZXItYm9yZGVyLXJhZGl1czogc3VidHJhY3QoJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXJhZGl1cywgJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoKTtcbiRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHM6ICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuNSk7XG4kbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXNtLXVwOiAgICAwIC41cmVtIDFyZW0gcmdiYSgkYmxhY2ssIC41KTtcblxuJG1vZGFsLWJhY2tkcm9wLWJnOiAgICAgICAgICAgICAgICAgJGJsYWNrO1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6ICAgICAgICAgICAgLjU7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICAkYm9yZGVyLWNvbG9yO1xuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICAgICAgICAgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtY29udGVudC1ib3JkZXItd2lkdGg7XG4kbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy15OiAgICAgICAgICAgIDFyZW07XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteDogICAgICAgICAgICAxcmVtO1xuJG1vZGFsLWhlYWRlci1wYWRkaW5nOiAgICAgICAgICAgICAgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXg7IC8vIEtlZXAgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblxuJG1vZGFsLXhsOiAgICAgICAgICAgICAgICAgICAgICAgICAgMTE0MHB4O1xuJG1vZGFsLWxnOiAgICAgICAgICAgICAgICAgICAgICAgICAgODAwcHg7XG4kbW9kYWwtbWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA1MDBweDtcbiRtb2RhbC1zbTogICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4O1xuXG4kbW9kYWwtZmFkZS10cmFuc2Zvcm06ICAgICAgICAgICAgICB0cmFuc2xhdGUoMCwgLTUwcHgpO1xuJG1vZGFsLXNob3ctdHJhbnNmb3JtOiAgICAgICAgICAgICAgbm9uZTtcbiRtb2RhbC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7XG4kbW9kYWwtc2NhbGUtdHJhbnNmb3JtOiAgICAgICAgICAgICBzY2FsZSgxLjAyKTtcblxuXG4vLyBBbGVydHNcbi8vXG4vLyBEZWZpbmUgYWxlcnQgY29sb3JzLCBib3JkZXIgcmFkaXVzLCBhbmQgcGFkZGluZy5cblxuJGFsZXJ0LXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgLjc1cmVtO1xuJGFsZXJ0LXBhZGRpbmcteDogICAgICAgICAgICAgICAgICAgMS4yNXJlbTtcbiRhbGVydC1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgIDFyZW07XG4kYWxlcnQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcbiRhbGVydC1saW5rLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkO1xuJGFsZXJ0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgJGJvcmRlci13aWR0aDtcblxuJGFsZXJ0LWJnLWxldmVsOiAgICAgICAgICAgICAgICAgICAgLTEwO1xuJGFsZXJ0LWJvcmRlci1sZXZlbDogICAgICAgICAgICAgICAgLTk7XG4kYWxlcnQtY29sb3ItbGV2ZWw6ICAgICAgICAgICAgICAgICA2O1xuXG5cbi8vIFByb2dyZXNzIGJhcnNcblxuJHByb2dyZXNzLWhlaWdodDogICAgICAgICAgICAgICAgICAgMXJlbTtcbiRwcm9ncmVzcy1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIC43NTtcbiRwcm9ncmVzcy1iZzogICAgICAgICAgICAgICAgICAgICAgICRncmF5LTIwMDtcbiRwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzO1xuJHByb2dyZXNzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgaW5zZXQgMCAuMXJlbSAuMXJlbSByZ2JhKCRibGFjaywgLjEpO1xuJHByb2dyZXNzLWJhci1jb2xvcjogICAgICAgICAgICAgICAgJHdoaXRlO1xuJHByb2dyZXNzLWJhci1iZzogICAgICAgICAgICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpO1xuJHByb2dyZXNzLWJhci1hbmltYXRpb24tdGltaW5nOiAgICAgMXMgbGluZWFyIGluZmluaXRlO1xuJHByb2dyZXNzLWJhci10cmFuc2l0aW9uOiAgICAgICAgICAgd2lkdGggLjZzIGVhc2U7XG5cblxuLy8gTGlzdCBncm91cFxuXG4kbGlzdC1ncm91cC1jb2xvcjogICAgICAgICAgICAgICAgICBudWxsO1xuJGxpc3QtZ3JvdXAtYmc6ICAgICAgICAgICAgICAgICAgICAgJHdoaXRlO1xuJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4xMjUpO1xuJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgJGJvcmRlci13aWR0aDtcbiRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICRib3JkZXItcmFkaXVzO1xuXG4kbGlzdC1ncm91cC1pdGVtLXBhZGRpbmcteTogICAgICAgICAuNzVyZW07XG4kbGlzdC1ncm91cC1pdGVtLXBhZGRpbmcteDogICAgICAgICAxLjI1cmVtO1xuXG4kbGlzdC1ncm91cC1ob3Zlci1iZzogICAgICAgICAgICAgICAkZ3JheS0xMDA7XG4kbGlzdC1ncm91cC1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvcjtcbiRsaXN0LWdyb3VwLWFjdGl2ZS1iZzogICAgICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnO1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogICAgJGxpc3QtZ3JvdXAtYWN0aXZlLWJnO1xuXG4kbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjogICAgICAgICAkZ3JheS02MDA7XG4kbGlzdC1ncm91cC1kaXNhYmxlZC1iZzogICAgICAgICAgICAkbGlzdC1ncm91cC1iZztcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWNvbG9yOiAgICAgICAgICAgJGdyYXktNzAwO1xuJGxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yOiAgICAgJGxpc3QtZ3JvdXAtYWN0aW9uLWNvbG9yO1xuXG4kbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWNvbG9yOiAgICAkYm9keS1jb2xvcjtcbiRsaXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtYmc6ICAgICAgICRncmF5LTIwMDtcblxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG5cbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgICAgICAgIC4yNXJlbTtcbiR0aHVtYm5haWwtYmc6ICAgICAgICAgICAgICAgICAgICAgICRib2R5LWJnO1xuJHRodW1ibmFpbC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgJGJvcmRlci13aWR0aDtcbiR0aHVtYm5haWwtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICRncmF5LTMwMDtcbiR0aHVtYm5haWwtYm9yZGVyLXJhZGl1czogICAgICAgICAgICRib3JkZXItcmFkaXVzO1xuJHRodW1ibmFpbC1ib3gtc2hhZG93OiAgICAgICAgICAgICAgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAuMDc1KTtcblxuXG4vLyBGaWd1cmVzXG5cbiRmaWd1cmUtY2FwdGlvbi1mb250LXNpemU6ICAgICAgICAgIDkwJTtcbiRmaWd1cmUtY2FwdGlvbi1jb2xvcjogICAgICAgICAgICAgICRncmF5LTYwMDtcblxuXG4vLyBCcmVhZGNydW1ic1xuXG4kYnJlYWRjcnVtYi1mb250LXNpemU6ICAgICAgICAgICAgICBudWxsO1xuXG4kYnJlYWRjcnVtYi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAuNzVyZW07XG4kYnJlYWRjcnVtYi1wYWRkaW5nLXg6ICAgICAgICAgICAgICAxcmVtO1xuJGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nOiAgICAgICAgICAgLjVyZW07XG5cbiRicmVhZGNydW1iLW1hcmdpbi1ib3R0b206ICAgICAgICAgIDFyZW07XG5cbiRicmVhZGNydW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LTIwMDtcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICAgICAgICAgICRncmF5LTYwMDtcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRncmF5LTYwMDtcbiRicmVhZGNydW1iLWRpdmlkZXI6ICAgICAgICAgICAgICAgIHF1b3RlKFwiL1wiKTtcblxuJGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogICAgICAgICAgJGJvcmRlci1yYWRpdXM7XG5cblxuLy8gQ2Fyb3VzZWxcblxuJGNhcm91c2VsLWNvbnRyb2wtY29sb3I6ICAgICAgICAgICAgICR3aGl0ZTtcbiRjYXJvdXNlbC1jb250cm9sLXdpZHRoOiAgICAgICAgICAgICAxNSU7XG4kY2Fyb3VzZWwtY29udHJvbC1vcGFjaXR5OiAgICAgICAgICAgLjU7XG4kY2Fyb3VzZWwtY29udHJvbC1ob3Zlci1vcGFjaXR5OiAgICAgLjk7XG4kY2Fyb3VzZWwtY29udHJvbC10cmFuc2l0aW9uOiAgICAgICAgb3BhY2l0eSAuMTVzIGVhc2U7XG5cbiRjYXJvdXNlbC1pbmRpY2F0b3Itd2lkdGg6ICAgICAgICAgICAzMHB4O1xuJGNhcm91c2VsLWluZGljYXRvci1oZWlnaHQ6ICAgICAgICAgIDNweDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItaGl0LWFyZWEtaGVpZ2h0OiAxMHB4O1xuJGNhcm91c2VsLWluZGljYXRvci1zcGFjZXI6ICAgICAgICAgIDNweDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICAgICAkd2hpdGU7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLXRyYW5zaXRpb246ICAgICAgb3BhY2l0eSAuNnMgZWFzZTtcblxuJGNhcm91c2VsLWNhcHRpb24td2lkdGg6ICAgICAgICAgICAgIDcwJTtcbiRjYXJvdXNlbC1jYXB0aW9uLWNvbG9yOiAgICAgICAgICAgICAkd2hpdGU7XG5cbiRjYXJvdXNlbC1jb250cm9sLWljb24td2lkdGg6ICAgICAgICAyMHB4O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24tYmc6ICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPScjeyRjYXJvdXNlbC1jb250cm9sLWNvbG9yfScgd2lkdGg9JzgnIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDggOCc+PHBhdGggZD0nTTUuMjUgMGwtNCA0IDQgNCAxLjUtMS41TDQuMjUgNGwyLjUtMi41TDUuMjUgMHonLz48L3N2Zz5cIik7XG4kY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24tYmc6ICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPScjeyRjYXJvdXNlbC1jb250cm9sLWNvbG9yfScgd2lkdGg9JzgnIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDggOCc+PHBhdGggZD0nTTIuNzUgMGwtMS41IDEuNUwzLjc1IDRsLTIuNSAyLjVMMi43NSA4bDQtNC00LTR6Jy8+PC9zdmc+XCIpO1xuXG4kY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgLjZzO1xuJGNhcm91c2VsLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAkY2Fyb3VzZWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDsgLy8gRGVmaW5lIHRyYW5zZm9ybSB0cmFuc2l0aW9uIGZpcnN0IGlmIHVzaW5nIG11bHRpcGxlIHRyYW5zaXRpb25zIChlLmcuLCBgdHJhbnNmb3JtIDJzIGVhc2UsIG9wYWNpdHkgLjVzIGVhc2Utb3V0YClcblxuXG4vLyBTcGlubmVyc1xuXG4kc3Bpbm5lci13aWR0aDogICAgICAgICAycmVtO1xuJHNwaW5uZXItaGVpZ2h0OiAgICAgICAgJHNwaW5uZXItd2lkdGg7XG4kc3Bpbm5lci1ib3JkZXItd2lkdGg6ICAuMjVlbTtcblxuJHNwaW5uZXItd2lkdGgtc206ICAgICAgICAxcmVtO1xuJHNwaW5uZXItaGVpZ2h0LXNtOiAgICAgICAkc3Bpbm5lci13aWR0aC1zbTtcbiRzcGlubmVyLWJvcmRlci13aWR0aC1zbTogLjJlbTtcblxuXG4vLyBDbG9zZVxuXG4kY2xvc2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjU7XG4kY2xvc2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAkZm9udC13ZWlnaHQtYm9sZDtcbiRjbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRibGFjaztcbiRjbG9zZS10ZXh0LXNoYWRvdzogICAgICAgICAgICAgICAgIDAgMXB4IDAgJHdoaXRlO1xuXG5cbi8vIENvZGVcblxuJGNvZGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgODcuNSU7XG4kY29kZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkcGluaztcblxuJGtiZC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgLjJyZW07XG4ka2JkLXBhZGRpbmcteDogICAgICAgICAgICAgICAgICAgICAuNHJlbTtcbiRrYmQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICRjb2RlLWZvbnQtc2l6ZTtcbiRrYmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZTtcbiRrYmQtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmF5LTkwMDtcblxuJHByZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktOTAwO1xuJHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ6ICAgICAgICAgMzQwcHg7XG5cblxuLy8gVXRpbGl0aWVzXG5cbiRkaXNwbGF5czogbm9uZSwgaW5saW5lLCBpbmxpbmUtYmxvY2ssIGJsb2NrLCB0YWJsZSwgdGFibGUtcm93LCB0YWJsZS1jZWxsLCBmbGV4LCBpbmxpbmUtZmxleDtcbiRvdmVyZmxvd3M6IGF1dG8sIGhpZGRlbjtcbiRwb3NpdGlvbnM6IHN0YXRpYywgcmVsYXRpdmUsIGFic29sdXRlLCBmaXhlZCwgc3RpY2t5O1xuXG5cbi8vIFByaW50aW5nXG5cbiRwcmludC1wYWdlLXNpemU6ICAgICAgICAgICAgICAgICAgIGEzO1xuJHByaW50LWJvZHktbWluLXdpZHRoOiAgICAgICAgICAgICAgbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgXCJsZ1wiKTtcblxuIiwiLy8gcmVuZGVyIGJsb2NraW5nIGNzcyBmb3IgbW9zdCBpbXBvcnRhbnQgc2l0ZSBlbGVtZW50cyBsaWtlIGhlYWRlciwgZm9vdGVyLCBtZW51XG5cbi8vIHN0YXJ0ZXIgdmFyaWFibGVzXG5AdXNlIFwiLi4vbGliL3Byb2plY3QtdmFyaWFibGVzXCIgYXMgcHJvamVjdFZhcmlhYmxlcztcbi8vXG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lXCIgd2l0aCAoXG4gICAgJHByaW1hcnk6IHByb2plY3RWYXJpYWJsZXMuJHByb2plY3QtcHJpbWFyeVxuKTtcblxuLy8gc3RhcnRlciB2YXJpYWJsZXNcbkBpbXBvcnQgXCIuLi9saWIvcHJvamVjdC12YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9saWIvb3ZlcnJpZGUtbWF0ZXJpYWwtdmFyaWFibGVzXCI7XG5cbi8vXG5cbi8vIG1peGluc1xuQGltcG9ydCBcIi4uL2xpYi9taXhpbnMvcHJvamVjdC1taXhpbnNcIjtcblxuQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL21peGluc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2xpYi9vdmVycmlkZS1ib290c3RyYXA0LXZhcmlhYmxlc1wiO1xuLy9AaW1wb3J0IFwiLi4vbGliL21peGlucy9pY29ucy1tYXRlcmlhbFwiO1xuLy9AaW1wb3J0IFwiLi4vbGliL21peGlucy9pY29ucy1zb2NpYWxcIjtcbi8vQGltcG9ydCBcIi4uL2xpYi9taXhpbnMvaWNvbnMtZmFcIjtcbi8vQGltcG9ydCBcIi4uL2xpYi9taXhpbnMvaWNvbnMtZmVhdGhlclwiO1xuQGltcG9ydCBcIi4uL2xpYi9taXhpbnMvaWNvbnMtcHJvamVjdFwiO1xuQGltcG9ydCBcIi4uL2xpYi9taXhpbnMvaWNvbnMtbWF0ZXJpYWxcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2J1dHRvbnMtbWl4aW5zXCI7XG4vL1xuXG5cblxuLy8gQm9vdHN0cmFwIG1vZHVsZXNcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcmVib290XCI7IC8vIHJlYm9vdCBtb2RcblxuXG4vLyBCb290c3RyYXAgbW9kdWxlc1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3Mvcm9vdFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvcmVib290XCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy90eXBlXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9pbWFnZXNcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2NvZGVcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2dyaWRcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3RhYmxlc1wiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvZm9ybXNcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2J1dHRvbnNcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3RyYW5zaXRpb25zXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9kcm9wZG93blwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvYnV0dG9uLWdyb3VwXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9pbnB1dC1ncm91cFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvY3VzdG9tLWZvcm1zXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9uYXZcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL25hdmJhclwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvY2FyZFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvYnJlYWRjcnVtYlwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvcGFnaW5hdGlvblwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvYmFkZ2VcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2p1bWJvdHJvblwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvYWxlcnRcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3Byb2dyZXNzXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9tZWRpYVwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL2Nsb3NlXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdG9hc3RzXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy9tb2RhbFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdG9vbHRpcFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvcG9wb3ZlclwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvY2Fyb3VzZWxcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3NwaW5uZXJzXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvYWxpZ25cIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9iYWNrZ3JvdW5kXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvYm9yZGVyc1wiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL2NsZWFyZml4XCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvZGlzcGxheVwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL2VtYmVkXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvZmxleFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL2Zsb2F0XCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvb3ZlcmZsb3dcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9wb3NpdGlvblwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL3NjcmVlbnJlYWRlcnNcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9zaGFkb3dzXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvc2l6aW5nXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvc3RyZXRjaGVkLWxpbmtcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3V0aWxpdGllcy9zcGFjaW5nXCI7XG4vL0BpbXBvcnQgXCJib290c3RyYXAvc2Nzcy91dGlsaXRpZXMvdGV4dFwiO1xuLy9AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL3Zpc2liaWxpdHlcIjtcbi8vQGltcG9ydCBcImJvb3RzdHJhcC9zY3NzL3ByaW50XCI7XG4vL1xuXG5cblxuLy8gQ29tcG9uZW50cyB1c2VkIGF0IGFsbCBwYWdlcywgbGlrZSBoZWFkZXIsIGZvb3RlciwgbWVudVxuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2J1dHRvbi9tZGMtYnV0dG9uXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2J1dHRvbi9taXhpbnNcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9jYXJkL21kYy1jYXJkXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2NoZWNrYm94L21kYy1jaGVja2JveFwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2NoaXBzL21kYy1jaGlwc1wiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2RhdGEtdGFibGUvbWRjLWRhdGEtdGFibGVcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZGlhbG9nL21kYy1kaWFsb2dcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9kcmF3ZXIvbWRjLWRyYXdlclwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9tZGMtZWxldmF0aW9uXCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvZmFiL21kYy1mYWJcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9mbG9hdGluZy1sYWJlbC9tZGMtZmxvYXRpbmctbGFiZWxcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZm9ybS1maWVsZC9tZGMtZm9ybS1maWVsZFwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2dyaWQtbGlzdC9tZGMtZ3JpZC1saXN0XCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvaWNvbi1idXR0b24vbWRjLWljb24tYnV0dG9uXCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvaW1hZ2UtbGlzdC9tZGMtaW1hZ2UtbGlzdFwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2xheW91dC1ncmlkL21kYy1sYXlvdXQtZ3JpZFwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9saW5lLXJpcHBsZS9tZGMtbGluZS1yaXBwbGVcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9saW5lYXItcHJvZ3Jlc3MvbWRjLWxpbmVhci1wcm9ncmVzc1wiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL2xpc3QvbWRjLWxpc3RcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9tZW51L21kYy1tZW51XCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvbWVudS1zdXJmYWNlL21kYy1tZW51LXN1cmZhY2VcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvbWRjLW5vdGNoZWQtb3V0bGluZVwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL3JhZGlvL21kYy1yYWRpb1wiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9tZGMtcmlwcGxlXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC9zZWxlY3QvbWRjLXNlbGVjdFwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL3NsaWRlci9tZGMtc2xpZGVyXCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvc25hY2tiYXIvbWRjLXNuYWNrYmFyXCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvc3dpdGNoL21kYy1zd2l0Y2hcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC90YWIvbWRjLXRhYlwiO1xuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL3RhYi1iYXIvbWRjLXRhYi1iYXJcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC90YWItaW5kaWNhdG9yL21kYy10YWItaW5kaWNhdG9yXCI7XG4vL0BpbXBvcnQgXCJAbWF0ZXJpYWwvdGFiLXNjcm9sbGVyL21kYy10YWItc2Nyb2xsZXJcIjtcblxuLy9AaW1wb3J0IFwiQG1hdGVyaWFsL3RleHRmaWVsZC9tZGMtdGV4dC1maWVsZFwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90ZXh0ZmllbGQvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RleHRmaWVsZC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGV4dGZpZWxkL3ZhcmlhYmxlc1wiO1xuXG5cbi8vQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9tZGMtdGhlbWVcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC90b3AtYXBwLWJhci9tZGMtdG9wLWFwcC1iYXJcIjtcbi8vQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21kYy10eXBvZ3JhcGh5XCI7XG5cbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcmVib290XCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvbnQtbWF0ZXJpYWwtaWNvbnNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm9udC1tb250c2VycmF0XCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvbnQtb3BlbnNhbnNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm9udC1wdC1zZXJpZlwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb250LXJvYm90b1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9icm93c2Vycy11cGRhdGVcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvY29udGV4dC1tZW51LTAxXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Nvb2tpZXMtd2FybmluZ1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jeWNsZS1zbGlkZXNob3dcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZGV0ZWN0LXRvdWNoZGV2aWNlXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2VsbGlwc2lzXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZpbGUtaW5wdXRcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZml4ZXNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZmlndXJlXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2dhbGxlcnlcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvaWNvbnMtbWF0ZXJpYWxcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvaWNvbnMtc29jaWFsXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ljb25zLWZhXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ljb25zLWZlYXRoZXJcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWE1LW1lbnVcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWE1c2xpZGVyXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL21hNS10b3VydGlwXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL293bDItY2Fyb3VzZWxcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvdWktYXV0b2NvbXBsZXRlXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL3NlYXJjaC1zdGlja2VkXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL3NpbXBsZWJhclwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9za2lwLW5hdi1saW5rXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL21lbnUtZGVza3RvcC0wMVwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9ib290c3RyYXAtc2VsZWN0XCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2NoZWNrYm94ZXNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm9ybXNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbm91aXNsaWRlclwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9hZ2dyZWdhdGUtcmF0aW5nXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2RhdGVwaWNrZXJcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcGhvdG9zd2lwZVwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jb250ZW50LXRhYnNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcHdhXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL3Njcm9sbC10b3BcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc2Nyb2xsLW5hdlwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy93YXZlc1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy93b3dcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvYW5pbWF0ZVwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9zd2lwZS10by1hY3Rpb25zXCI7XG5cbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvYnV0dG9uc1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jdXN0b20tZ3JpZFwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9oZWFkZXJcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm9vdGVyXCI7XG5cbkBpbXBvcnQgXCJAZ2xpZGVqcy9nbGlkZS9zcmMvYXNzZXRzL3Nhc3MvZ2xpZGUuY29yZVwiO1xuQGltcG9ydCBcIkBnbGlkZWpzL2dsaWRlL3NyYy9hc3NldHMvc2Fzcy9nbGlkZS50aGVtZVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZ2xpZGUub3ZlcndyaXRlXCI7XG5cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3NwbGlkZS1jYXJvdXNlbFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc3BsaWRlLWNhcm91c2VsLWRlZmF1bHRcIjtcblxuLy9AaW1wb3J0IFwic3dpcGVyL3N3aXBlclwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWF0ZXJpYWxcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hlbHBlcnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hlcm8taG9tZXBhZ2VcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hvbWUtc2xpZGVyXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9hY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy90ZWFzZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25ld3NsZXR0ZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3N1bW1hcnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2RlY29cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2NvbnN0YW50aGVscFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvYWJvdXRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25ld3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2NhcmRcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcHJvZHVjdHNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcHJvZHVjdFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc3Rvcmllc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc3RvcnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3BhcnRuZXJzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9wYXJ0bmVyXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9wcm9ncmFtc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcHJvZ3JhbVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvdG9hc3RcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbW9kYWwtaGFsZlwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbW9kYWwtZnVsbFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWFpbi1wYWdlXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9zaXRlLWZvcm1cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL21vZGFsLW5ld3NsZXR0ZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2xvZ29zXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9sb2dvXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jYXJkLTJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3RvcGJhclwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvdGV4dC13aXRoLW51bWJlcnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3RleHQtd2l0aC1pbWFnZVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvaG9tZS1wcm9kdWN0c1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvY2FyZC04XCI7XG5cblxuLy9cblxuLmhvbWVwYWdlLXZpZXcge1xuICAuc2VjdGlvbiB7XG4gICAgb3JkZXI6MDtcbiAgfVxufSIsIi8vIEhvdmVyIG1peGluIGFuZCBgJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeWAgYXJlIGRlcHJlY2F0ZWQuXG4vL1xuLy8gT3JpZ2luYWxseSBhZGRlZCBkdXJpbmcgb3VyIGFscGhhcyBhbmQgbWFpbnRhaW5lZCBkdXJpbmcgYmV0YXMsIHRoaXMgbWl4aW4gd2FzXG4vLyBkZXNpZ25lZCB0byBwcmV2ZW50IGA6aG92ZXJgIHN0aWNraW5lc3Mgb24gaU9TLWFuIGlzc3VlIHdoZXJlIGhvdmVyIHN0eWxlc1xuLy8gd291bGQgcGVyc2lzdCBhZnRlciBpbml0aWFsIHRvdWNoLlxuLy9cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3ZSd2ZSBrZXB0IHRoZXNlIG1peGlucyBhbmQgdXBkYXRlZCB0aGVtIHRvXG4vLyBhbHdheXMgcmV0dXJuIHRoZWlyIHJlZ3VsYXIgcHNldWRvLWNsYXNzZXMgaW5zdGVhZCBvZiBhIHNoaW1tZWQgbWVkaWEgcXVlcnkuXG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjUxOTVcblxuQG1peGluIGhvdmVyKCkge1xuICAmOmhvdmVyIHsgQGNvbnRlbnQ7IH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzKCkge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcGxhaW4taG92ZXItZm9jdXMoKSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cy1hY3RpdmUoKSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLnRvYXN0IHtcbiAgLy8gUHJldmVudHMgZnJvbSBzaHJpbmtpbmcgaW4gSUUxMSwgd2hlbiBpbiBhIGZsZXggY29udGFpbmVyXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI4MzQxXG4gIGZsZXgtYmFzaXM6ICR0b2FzdC1tYXgtd2lkdGg7XG4gIG1heC13aWR0aDogJHRvYXN0LW1heC13aWR0aDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCR0b2FzdC1mb250LXNpemUpO1xuICBjb2xvcjogJHRvYXN0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAkdG9hc3QtYm9yZGVyLXdpZHRoIHNvbGlkICR0b2FzdC1ib3JkZXItY29sb3I7XG4gIGJveC1zaGFkb3c6ICR0b2FzdC1ib3gtc2hhZG93O1xuICBvcGFjaXR5OiAwO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCR0b2FzdC1ib3JkZXItcmFkaXVzKTtcblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206ICR0b2FzdC1wYWRkaW5nLXg7XG4gIH1cblxuICAmLnNob3dpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmLnNob3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnRvYXN0LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6ICR0b2FzdC1wYWRkaW5nLXkgJHRvYXN0LXBhZGRpbmcteDtcbiAgY29sb3I6ICR0b2FzdC1oZWFkZXItY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b2FzdC1oZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyLWJvdHRvbTogJHRvYXN0LWJvcmRlci13aWR0aCBzb2xpZCAkdG9hc3QtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoc3VidHJhY3QoJHRvYXN0LWJvcmRlci1yYWRpdXMsICR0b2FzdC1ib3JkZXItd2lkdGgpKTtcbn1cblxuLnRvYXN0LWJvZHkge1xuICBwYWRkaW5nOiAkdG9hc3QtcGFkZGluZy14OyAvLyBhcHBseSB0byBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsXG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1kaXNhbGxvd2VkLWxpc3Rcbi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHJlcGxhY2UgbmVnYXRpdmUgdmFsdWVzIHdpdGggMFxuQGZ1bmN0aW9uIHZhbGlkLXJhZGl1cygkcmFkaXVzKSB7XG4gICRyZXR1cm46ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHJhZGl1cyB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIG1heCgkdmFsdWUsIDApKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCAkdmFsdWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwiQG1hdGVyaWFsL2Jhc2UvbWl4aW5zXCIgYXMgYmFzZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuLy8vIFN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQncyB0b3VjaCB0YXJnZXQgd3JhcHBlciBlbGVtZW50LlxuQG1peGluIHdyYXBwZXIoJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy10b3VjaC10YXJnZXQtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBFbnN1cmUgdGhhdCBzdHlsZXMgYXJlIG9ubHkgZW1pdHRlZCBvbmNlIGFjcm9zcyBhbGwgY29tcG9uZW50cyB0aGF0XG4gICAgICAvLyBoYXZlIGluY3JlYXNlZCB0b3VjaCB0YXJnZXRzLlxuICAgICAgQGluY2x1ZGUgYmFzZS1taXhpbnMuZW1pdC1vbmNlKFwibWRjLXRvdWNoLXRhcmdldC93cmFwcGVyXCIpIHtcbiAgICAgICAgLy8gTk9URTogV2lsbCBjaGFuZ2UgdG8gYGlubGluZS1ibG9ja2AgaW4gdGhlIGZ1dHVyZSwgYnV0IGtlZXBpbmcgYXMgaXNcbiAgICAgICAgLy8gdGVtcG9yYXJpbHkgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LlxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdHlsZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50J3MgaW5uZXIgdG91Y2ggdGFyZ2V0IGVsZW1lbnQuXG4vLy8gQnkgZGVmYXVsdCwgb25seSBzZXRzIHRoZSBpbm5lciBlbGVtZW50IGhlaWdodCB0byB0aGUgbWluaW11bSB0b3VjaCB0YXJnZXRcbi8vLyBoZWlnaHQgKCRtZGMtdG91Y2gtdGFyZ2V0LWhlaWdodCkuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc2V0LXdpZHRoIFtmYWxzZV0gLSBTZXRzIHRoZSBpbm5lciBlbGVtZW50IHdpZHRoIHRvIHRoZVxuLy8vICAgICBtaW5pbXVtIHRvdWNoIHRhcmdldCB3aWR0aCAoJG1kYy10b3VjaC10YXJnZXQtd2lkdGgpLlxuQG1peGluIHRvdWNoLXRhcmdldCgkc2V0LXdpZHRoOiBmYWxzZSwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogdmFyaWFibGVzLiRoZWlnaHQ7XG4gIH1cblxuICBAaWYgJHNldC13aWR0aCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogdmFyaWFibGVzLiR3aWR0aDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBtYXJnaW4gdG8gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBpbmNyZWFzZWQgdG91Y2ggdGFyZ2V0LFxuLy8vIHRvIGNvbXBlbnNhdGUgZm9yIHRoZSB0b3VjaCB0YXJnZXQuXG5AbWl4aW4gbWFyZ2luKCRjb21wb25lbnQtaGVpZ2h0LCAkY29tcG9uZW50LXdpZHRoOiBudWxsLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAkdmVydGljYWwtbWFyZ2luLXZhbHVlOiAodmFyaWFibGVzLiRoZWlnaHQgLSAkY29tcG9uZW50LWhlaWdodCkgLyAyO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbi10b3A6ICR2ZXJ0aWNhbC1tYXJnaW4tdmFsdWU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHZlcnRpY2FsLW1hcmdpbi12YWx1ZTtcbiAgfVxuXG4gIEBpZiAkY29tcG9uZW50LXdpZHRoIHtcbiAgICAkaG9yaXpvbnRhbC1tYXJnaW4tdmFsdWU6ICh2YXJpYWJsZXMuJHdpZHRoIC0gJGNvbXBvbmVudC13aWR0aCkgLyAyO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRob3Jpem9udGFsLW1hcmdpbi12YWx1ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkaG9yaXpvbnRhbC1tYXJnaW4tdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCIgYXMgYW5pbWF0aW9uLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIGNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAkZnJvbS1zdHJva2UtY29sb3IsXG4gICR0by1zdHJva2UtY29sb3IsXG4gICRmcm9tLWZpbGwtY29sb3IsXG4gICR0by1maWxsLWNvbG9yLFxuICAkdWlkKSB7XG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0jeyR1aWR9IHtcbiAgICAwJSB7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChib3JkZXItY29sb3IsICRmcm9tLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkZnJvbS1maWxsLWNvbG9yKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkdG8tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICR0by1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLSN7JHVpZH0ge1xuICAgIDAlLFxuICAgIDgwJSB7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChib3JkZXItY29sb3IsICR0by1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJHRvLWZpbGwtY29sb3IpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkZnJvbS1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZyb20tZmlsbC1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXJrLWtleWZyYW1lc18ge1xuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gICAgMCUsXG4gICAgNTAlIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiB2YXJpYWJsZXMuJG1hcmstcGF0aC1sZW5ndGhfO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBhbmltYXRpb24tdmFyaWFibGVzLiRkZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIHtcbiAgICAwJSxcbiAgICA2OC4yJSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB9XG5cbiAgICA2OC4yJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBhbmltYXRpb24tdmFyaWFibGVzLiRhY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogdmFyaWFibGVzLiRtYXJrLXBhdGgtbGVuZ3RoXyAqIC0xO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogYW5pbWF0aW9uLXZhcmlhYmxlcy4kZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyaWFibGVzLiRpbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXztcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXJpYWJsZXMuJGluZGV0ZXJtaW5hdGUtY2hlY2tlZC1lYXNpbmctZnVuY3Rpb25fO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayB7XG4gICAgMCUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDMyLjglLFxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvdmFyaWFibGVzXCIgYXMgcmlwcGxlLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L3ZhcmlhYmxlc1wiIGFzIGRlbnNpdHktdmFyaWFibGVzO1xuXG4kYmFzZWxpbmUtdGhlbWUtY29sb3I6IHNlY29uZGFyeSAhZGVmYXVsdDtcbiRtYXJrLWNvbG9yOiB0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zZWNvbmRhcnkpICFkZWZhdWx0O1xuJGJvcmRlci1jb2xvcjogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcbiRkaXNhYmxlZC1jb2xvcjogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM4KSAhZGVmYXVsdDtcblxuJHJpcHBsZS1zaXplOiA0MHB4ICFkZWZhdWx0O1xuJGljb24tc2l6ZTogMThweCAhZGVmYXVsdDtcbiRtYXJrLXN0cm9rZS1zaXplOiAyIC8gMTUgKiAkaWNvbi1zaXplICFkZWZhdWx0O1xuJGJvcmRlci13aWR0aDogMnB4ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tZHVyYXRpb246IDkwbXMgIWRlZmF1bHQ7XG4kaXRlbS1zcGFjaW5nOiA0cHggIWRlZmF1bHQ7XG4kZm9jdXMtaW5kaWNhdG9yLW9wYWNpdHk6IG1hcC5nZXQocmlwcGxlLXZhcmlhYmxlcy4kZGFyay1pbmstb3BhY2l0aWVzLCBmb2N1cykgIWRlZmF1bHQ7XG5cbiRtaW5pbXVtLXNpemU6IDI4cHggIWRlZmF1bHQ7XG4kbWF4aW11bS1zaXplOiAkcmlwcGxlLXNpemUgIWRlZmF1bHQ7XG4kZGVuc2l0eS1zY2FsZTogZGVuc2l0eS12YXJpYWJsZXMuJGRlZmF1bHQtc2NhbGUgIWRlZmF1bHQ7XG4kZGVuc2l0eS1jb25maWc6IChcbiAgc2l6ZTogKFxuICAgIG1pbmltdW06ICRtaW5pbXVtLXNpemUsXG4gICAgZGVmYXVsdDogJHJpcHBsZS1zaXplLFxuICAgIG1heGltdW06ICRtYXhpbXVtLXNpemUsXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyBNYW51YWwgY2FsY3VsYXRpb24gZG9uZSBvbiBTVkdcbiRtYXJrLXBhdGgtbGVuZ3RoXzogMjkuNzgzMzM4NSAhZGVmYXVsdDtcbiRpbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXzogY3ViaWMtYmV6aWVyKC4xNCwgMCwgMCwgMSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJGRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAuMiwgMSkgIWRlZmF1bHQ7XG4kc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAhZGVmYXVsdDtcbiRhY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuJHNoYXJwLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuNiwgMSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCIgYXMgZnVuY3Rpb25zMjtcbkB1c2UgXCJAbWF0ZXJpYWwvZGVuc2l0eS9mdW5jdGlvbnNcIiBhcyBkZW5zaXR5LWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIiBhcyByaXBwbGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90b3VjaC10YXJnZXQvbWl4aW5zXCIgYXMgdG91Y2gtdGFyZ2V0LW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvZnVuY3Rpb25zXCIgYXMgdGhlbWUtZnVuY3Rpb25zO1xuQHVzZSBcIi4vZnVuY3Rpb25zXCI7XG5AdXNlIFwiLi9rZXlmcmFtZXNcIjtcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RvdWNoLXRhcmdldC92YXJpYWJsZXNcIiBhcyB0b3VjaC10YXJnZXQtdmFyaWFibGVzO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG4kcmlwcGxlLXRhcmdldDogXCIubWRjLWNoZWNrYm94X19yaXBwbGVcIjtcblxuLy8vXG4vLy8gQ2hlY2tib3ggY29yZSBzdHlsZXMuXG4vLy9cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2hlY2tib3ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgY2hlY2tib3hcblxuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtbWl4aW5zLndyYXBwZXIoJHF1ZXJ5KTsgLy8gQ09QWUJBUkFfQ09NTUVOVF9USElTX0xJTkVcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAaW5jbHVkZSBrZXlmcmFtZXMubWFyay1rZXlmcmFtZXNfO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBiYXNlXztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmb2N1cy1pbmRpY2F0b3ItY29sb3IodmFyaWFibGVzLiRiYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGRlbnNpdHkodmFyaWFibGVzLiRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWluZXItY29sb3JzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZGlzYWJsZWQtY29udGFpbmVyLWNvbG9ycygkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGluay1jb2xvcih2YXJpYWJsZXMuJG1hcmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZGlzYWJsZWQtaW5rLWNvbG9yKHZhcmlhYmxlcy4kbWFyay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZWQtY29udGFpbmVyLWNvbG9ycyhcbiAgICAgICR1bm1hcmtlZC1zdHJva2UtY29sb3I6IEdyYXlUZXh0LFxuICAgICAgJHVubWFya2VkLWZpbGwtY29sb3I6IHRyYW5zcGFyZW50LFxuICAgICAgJG1hcmtlZC1zdHJva2UtY29sb3I6IEdyYXlUZXh0LFxuICAgICAgJG1hcmtlZC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1pbmstY29sb3IoR3JheVRleHQsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgbWFyZ2luOiAwIDFweDsgLy8gRXh0cmEgaG9yaXpvbnRhbCBzcGFjZSBhcm91bmQgbWl4ZWRtYXJrIHN5bWJvbC5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBOZWVkZWQgdG8gZGlzYWJsZSBob3ZlciBlZmZlY3RzIG9uIENTUy1vbmx5IChub24tSlMpIGNoZWNrYm94ZXNcbiAgLm1kYy1jaGVja2JveC0tZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZWRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgIEBpbmNsdWRlIGNoZWNrbWFya18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBAaW5jbHVkZSBjaGVja21hcmstcGF0aF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgQGluY2x1ZGUgbWl4ZWRtYXJrXygkcXVlcnkpO1xuICB9XG5cbiAgLy8gSlMgY2hlY2tib3hcbiAgLm1kYy1jaGVja2JveC0tdXBncmFkZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLFxuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLFxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgQGluY2x1ZGUgY2hpbGQtLXVwZ3JhZGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS1hbmltIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIEBpbmNsdWRlIGFuaW1fO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC0tbWFya2VkXztcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgY2hlY2ttYXJrLXBhdGgtLW1hcmtlZF87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGZyYW1lJ3MgOjpiZWZvcmUgZWxlbWVudCBpcyB1c2VkIGFzIGEgZm9jdXMgaW5kaWNhdG9yIGZvciB0aGUgY2hlY2tib3hcbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1pbmRpY2F0b3JfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1cyB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZm9jdXMtaW5kaWNhdG9yLS1mb2N1c2VkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbmF0aXZlLWNvbnRyb2xfO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIGRpc2FibGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS10b3VjaCB7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LW1peGlucy5tYXJnaW4oXG4gICAgICAkY29tcG9uZW50LWhlaWdodDogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgICAgICRjb21wb25lbnQtd2lkdGg6IHZhcmlhYmxlcy4kcmlwcGxlLXNpemUsXG4gICAgICAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0KHRvdWNoLXRhcmdldC12YXJpYWJsZXMuJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBAaW5jbHVkZSBjaGVja21hcmstLWNoZWNrZWRfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtaXhlZG1hcmstLWNoZWNrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBAaW5jbHVkZSBjaGVja21hcmstLWluZGV0ZXJtaW5hdGVfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtaXhlZG1hcmstLWluZGV0ZXJtaW5hdGVfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGNoZWNrYm94IHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNoZWNrYm94LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC5tZGMtY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcygkY29sb3I6IG9uLXN1cmZhY2UsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMucmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxuXG4gICN7JHJpcHBsZS10YXJnZXR9IHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnRhcmdldC1jb21tb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBkZW5zaXR5IHNjYWxlIGZvciBjaGVja2JveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgU3RyaW5nfSAkZGVuc2l0eS1zY2FsZSAtIERlbnNpdHkgc2NhbGUgdmFsdWUgZm9yIGNvbXBvbmVudC4gU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGUgdmFsdWVzXG4vLy8gICAgIGAtM2AsIGAtMmAsIGAtMWAsIGAwYC5cbi8vL1xuQG1peGluIGRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRzaXplOiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IHNpemUsXG4gICk7XG5cbiAgQGluY2x1ZGUgcmlwcGxlLXNpemUoJHNpemUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaWYgJGRlbnNpdHktc2NhbGUgIT0gMCB7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LXJlc2V0XygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIHJpcHBsZS1zaXplKCRyaXBwbGUtc2l6ZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRjaGVja2JveC1wYWRkaW5nOiAoJHJpcHBsZS1zaXplIC0gdmFyaWFibGVzLiRpY29uLXNpemUpIC8gMjtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nOiAkY2hlY2tib3gtcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAkY2hlY2tib3gtcGFkZGluZztcbiAgICAgIGxlZnQ6ICRjaGVja2JveC1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0b3A6IC0odmFyaWFibGVzLiRib3JkZXItd2lkdGgpIC0gJGNoZWNrYm94LXBhZGRpbmc7XG4gICAgICBsZWZ0OiAtKHZhcmlhYmxlcy4kYm9yZGVyLXdpZHRoKSAtICRjaGVja2JveC1wYWRkaW5nO1xuICAgICAgd2lkdGg6ICRyaXBwbGUtc2l6ZTtcbiAgICAgIGhlaWdodDogJHJpcHBsZS1zaXplO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRvdWNoLXRhcmdldCgkcmlwcGxlLXNpemUsICRyaXBwbGUtc2l6ZTogJHJpcHBsZS1zaXplLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vL1xuLy8vIFNldHMgc3Ryb2tlICYgZmlsbCBjb2xvcnMgZm9yIGJvdGggbWFya2VkIGFuZCB1bm1hcmtlZCBzdGF0ZSBvZiBlbmFibGVkIGNoZWNrYm94LlxuLy8vIFNldCAkZ2VuZXJhdGUta2V5ZnJhbWVzIHRvIGZhbHNlIHRvIHByZXZlbnQgdGhlIG1peGluIGZyb20gZ2VuZXJhdGluZyBAa2V5ZnJhbWVzXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHVubWFya2VkLXN0cm9rZS1jb2xvciAtIFRoZSBkZXNpcmVkIHN0cm9rZSBjb2xvciBmb3IgdGhlIHVubWFya2VkIHN0YXRlXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHVubWFya2VkLWZpbGwtY29sb3IgLSBUaGUgZGVzaXJlZCBmaWxsIGNvbG9yIGZvciB0aGUgdW5tYXJrZWQgc3RhdGVcbi8vLyBAcGFyYW0ge0NvbG9yfSAkbWFya2VkLXN0cm9rZS1jb2xvciAtIFRoZSBkZXNpcmVkIHN0cm9rZSBjb2xvciBmb3IgdGhlIG1hcmtlZCBzdGF0ZVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRtYXJrZWQtZmlsbC1jb2xvciAtIFRoZSBkZXNpcmVkIGZpbGwgY29sb3IgZm9yIHRoZSBtYXJrZWQgc3RhdGVcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRnZW5lcmF0ZS1rZXlmcmFtZXMgW3RydWVdIC0gV2hldGhlciBhbmltYXRpb24ga2V5ZnJhbWVzIHNob3VsZCBiZSBnZW5lcmF0ZWRcbi8vL1xuQG1peGluIGNvbnRhaW5lci1jb2xvcnMoXG4gICR1bm1hcmtlZC1zdHJva2UtY29sb3I6IHZhcmlhYmxlcy4kYm9yZGVyLWNvbG9yLFxuICAkdW5tYXJrZWQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICRtYXJrZWQtc3Ryb2tlLWNvbG9yOiB2YXJpYWJsZXMuJGJhc2VsaW5lLXRoZW1lLWNvbG9yLFxuICAkbWFya2VkLWZpbGwtY29sb3I6IHZhcmlhYmxlcy4kYmFzZWxpbmUtdGhlbWUtY29sb3IsXG4gICRnZW5lcmF0ZS1rZXlmcmFtZXM6IHRydWUsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpXG4pIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBpZi11bm1hcmtlZC1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyLWNvbG9yc18oJHVubWFya2VkLXN0cm9rZS1jb2xvciwgJHVubWFya2VkLWZpbGwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGlmLW1hcmtlZC1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyLWNvbG9yc18oJG1hcmtlZC1zdHJva2UtY29sb3IsICRtYXJrZWQtZmlsbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGlmICRnZW5lcmF0ZS1rZXlmcmFtZXMge1xuICAgICR1aWQ6IHRoZW1lLWZ1bmN0aW9ucy5jb2xvci1oYXNoKCR1bm1hcmtlZC1zdHJva2UtY29sb3IpICtcbiAgICAgIHRoZW1lLWZ1bmN0aW9ucy5jb2xvci1oYXNoKCRtYXJrZWQtc3Ryb2tlLWNvbG9yKSArXG4gICAgICB0aGVtZS1mdW5jdGlvbnMuY29sb3ItaGFzaCgkdW5tYXJrZWQtZmlsbC1jb2xvcikgK1xuICAgICAgdGhlbWUtZnVuY3Rpb25zLmNvbG9yLWhhc2goJG1hcmtlZC1maWxsLWNvbG9yKTtcblxuICAgICRhbmltLXNlbGVjdG9yOiBpZigmLCBcIiYubWRjLWNoZWNrYm94LS1hbmltXCIsIFwiLm1kYy1jaGVja2JveC0tYW5pbVwiKTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbiwgJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIGtleWZyYW1lcy5jb250YWluZXIta2V5ZnJhbWVzXyhcbiAgICAgICAgJGZyb20tc3Ryb2tlLWNvbG9yOiAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yLFxuICAgICAgICAkdG8tc3Ryb2tlLWNvbG9yOiAkbWFya2VkLXN0cm9rZS1jb2xvcixcbiAgICAgICAgJGZyb20tZmlsbC1jb2xvcjogJHVubWFya2VkLWZpbGwtY29sb3IsXG4gICAgICAgICR0by1maWxsLWNvbG9yOiAkbWFya2VkLWZpbGwtY29sb3IsXG4gICAgICAgICR1aWQ6ICN7JHVpZH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcblxuICAgICN7JGFuaW0tc2VsZWN0b3J9IHtcbiAgICAgICYtdW5jaGVja2VkLWNoZWNrZWQsXG4gICAgICAmLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIHtcbiAgICAgICAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmQtI3skdWlkfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi1jaGVja2VkLXVuY2hlY2tlZCxcbiAgICAgICYtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQge1xuICAgICAgICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtI3skdWlkfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBzdHJva2UgJiBmaWxsIGNvbG9ycyBmb3IgYm90aCBtYXJrZWQgYW5kIHVubWFya2VkIHN0YXRlIG9mIGRpc2FibGVkIGNoZWNrYm94LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR1bm1hcmtlZC1zdHJva2UtY29sb3IgLSBUaGUgZGVzaXJlZCBzdHJva2UgY29sb3IgZm9yIHRoZSB1bm1hcmtlZCBzdGF0ZVxuLy8vIEBwYXJhbSB7Q29sb3J9ICR1bm1hcmtlZC1maWxsLWNvbG9yIC0gVGhlIGRlc2lyZWQgZmlsbCBjb2xvciBmb3IgdGhlIHVubWFya2VkIHN0YXRlXG4vLy8gQHBhcmFtIHtDb2xvcn0gJG1hcmtlZC1zdHJva2UtY29sb3IgLSBUaGUgZGVzaXJlZCBzdHJva2UgY29sb3IgZm9yIHRoZSBtYXJrZWQgc3RhdGVcbi8vLyBAcGFyYW0ge0NvbG9yfSAkbWFya2VkLWZpbGwtY29sb3IgLSBUaGUgZGVzaXJlZCBmaWxsIGNvbG9yIGZvciB0aGUgbWFya2VkIHN0YXRlXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1jb250YWluZXItY29sb3JzKFxuICAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yOiB2YXJpYWJsZXMuJGRpc2FibGVkLWNvbG9yLFxuICAkdW5tYXJrZWQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICRtYXJrZWQtc3Ryb2tlLWNvbG9yOiB0cmFuc3BhcmVudCxcbiAgJG1hcmtlZC1maWxsLWNvbG9yOiB2YXJpYWJsZXMuJGRpc2FibGVkLWNvbG9yLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKVxuKSB7XG4gIEBpbmNsdWRlIGlmLXVubWFya2VkLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyLWNvbG9yc18oJHVubWFya2VkLXN0cm9rZS1jb2xvciwgJHVubWFya2VkLWZpbGwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGlmLW1hcmtlZC1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1jb2xvcnNfKCRtYXJrZWQtc3Ryb2tlLWNvbG9yLCAkbWFya2VkLWZpbGwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpbmsgY29sb3Igb2YgdGhlIGNoZWNrZWQgYW5kIGluZGV0ZXJtaW5hdGUgaWNvbnMgZm9yIGFuIGVuYWJsZWQgY2hlY2tib3hcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBpbmsgY29sb3IgaW4gZW5hYmxlZCBzdGF0ZVxuLy8vXG5AbWl4aW4gaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIG9mIHRoZSBjaGVja2VkIGFuZCBpbmRldGVybWluYXRlIGljb25zIGZvciBhIGRpc2FibGVkIGNoZWNrYm94XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaW5rIGNvbG9yIGluIGRpc2FibGVkIHN0YXRlXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBmb2N1cy1pbmRpY2F0b3ItY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtY2hlY2tib3gtLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcygkY29sb3I6ICRjb2xvciwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcy1iYXNlLWNvbG9yKCRjb2xvcjogJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIGNoZWNrYm94IHRvdWNoIHRhcmdldCBzaXplIHdoaWNoIGNhbiBiZSBtb3JlIHRoYW4gdGhlIHJpcHBsZSBzaXplLiBQYXJhbSBgJHJpcHBsZS1zaXplYCBpcyByZXF1aXJlZCBmb3IgY3VzdG9tXG4vLy8gcmlwcGxlIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgU2l6ZSBvZiB0b3VjaCB0YXJnZXQgKE5hdGl2ZSBpbnB1dCkgaW4gYHB4YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpcHBsZS1zaXplIFNpemUgb2YgcmlwcGxlIGluIGBweGAuIFJlcXVpcmVkIG9ubHkgZm9yIGN1c3RvbSByaXBwbGUgc2l6ZS5cbi8vL1xuQG1peGluIHRvdWNoLXRhcmdldChcbiAgJHNpemU6IHZhcmlhYmxlcy4kcmlwcGxlLXNpemUsXG4gICRyaXBwbGUtc2l6ZTogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRvZmZzZXQ6ICgkcmlwcGxlLXNpemUgLSAkc2l6ZSkgLyAyO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sIHtcbiAgICAgIHRvcDogJG9mZnNldDtcbiAgICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICAgICAgbGVmdDogJG9mZnNldDtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIGhlaWdodDogJHNpemU7XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG5AbWl4aW4gYmFzZV8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwIHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgd2lkdGg6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICBoZWlnaHQ6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICBsaW5lLWhlaWdodDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG5AbWl4aW4gZGlzYWJsZWRfIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIGNoaWxkLS11cGdyYWRlZF8ge1xuICAvLyBEdWUgdG8gdGhlIG15cmlhZCBvZiBzZWxlY3RvciBjb21ib3MgdXNlZCB0byBwcm9wZXJseSBzdHlsZSBhIENTUy1vbmx5IGNoZWNrYm94LCBhbGwgb2ZcbiAgLy8gd2hpY2ggaGF2ZSB2YXJ5aW5nIHNlbGVjdG9yIHByZWNlZGVuY2UgYW5kIG1ha2UgdXNlIG9mIHRyYW5zaXRpb25zLCBpdCBpcyBjbGVhbmVyIGFuZCBtb3JlXG4gIC8vIGVmZmljaWVudCBoZXJlIHRvIHNpbXBseSB1c2UgIWltcG9ydGFudCwgc2luY2UgdGhlIG1kYy1jaGVja2JveC0tYW5pbS0qIGNsYXNzZXMgd2lsbCB0YWtlXG4gIC8vIG92ZXIgZnJvbSBoZXJlLlxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFuaW1hdGlvblxuXG5AbWl4aW4gYW5pbV8ge1xuICAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hhbmdlLWR1cmF0aW9uXzogNTAwbXM7XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXR5cGVcblxuICAmLXVuY2hlY2tlZC1jaGVja2VkLFxuICAmLXVuY2hlY2tlZC1pbmRldGVybWluYXRlLFxuICAmLWNoZWNrZWQtdW5jaGVja2VkLFxuICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyaWFibGVzLiR0cmFuc2l0aW9uLWR1cmF0aW9uICogMjtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICB9XG4gIH1cblxuICAmLXVuY2hlY2tlZC1jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICAvLyBJbnN0ZWFkIG9mIGRlbGF5aW5nIHRoZSBhbmltYXRpb24sIHdlIHNpbXBseSBtdWx0aXBseSBpdHMgbGVuZ3RoIGJ5IDIgYW5kIGJlZ2luIHRoZVxuICAgICAgLy8gYW5pbWF0aW9uIGF0IDUwJSBpbiBvcmRlciB0byBwcmV2ZW50IGEgZmxhc2ggb2Ygc3R5bGVzIGFwcGxpZWQgdG8gYSBjaGVja2VkIGNoZWNrbWFya1xuICAgICAgLy8gYXMgdGhlIGJhY2tncm91bmQgaXMgZmFkaW5nIGluIGJlZm9yZSB0aGUgYW5pbWF0aW9uIGJlZ2lucy5cbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIgbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIHtcbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtY2hlY2tlZC11bmNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRoIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtY2hlY2tlZC1pbmRldGVybWluYXRlIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFyayB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmsgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl8gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hhbmdlLWR1cmF0aW9uXyBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXJcbiAgICAgIGFuaW1hdGlvbjpcbiAgICAgICAgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hhbmdlLWR1cmF0aW9uXyAqIC42IGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxufVxuXG4vLyBCYWNrZ3JvdW5kXG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgY2hlY2tib3ggYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluXG4vLy8gZW5hYmxlZCBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLWVuYWJsZWRfIHtcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy9cbi8vLyBIZWxwcyBzZWxlY3QgdGhlIGNoZWNrYm94IGJhY2tncm91bmQgb25seSB3aGVuIGl0cyBuYXRpdmUgY29udHJvbCBpcyBpblxuLy8vIGRpc2FibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtZGlzYWJsZWRfIHtcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgfiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyB1bm1hcmtlZCAmIGVuYWJsZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi11bm1hcmtlZC1lbmFibGVkXyB7XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpOm5vdChbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXSkgfiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyB1bm1hcmtlZCAmIGRpc2FibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtdW5tYXJrZWQtZGlzYWJsZWRfIHtcbiAgLy8gTm90ZTogd2UgbXVzdCB1c2UgYFtkaXNhYmxlZF1gIGluc3RlYWQgb2YgYDpkaXNhYmxlZGAgYmVsb3cgYmVjYXVzZSBFZGdlIGRvZXMgbm90IGFsd2F5cyByZWNhbGN1bGF0ZSB0aGUgc3R5bGVcbiAgLy8gcHJvcGVydHkgd2hlbiB0aGUgYDpkaXNhYmxlZGAgcHNldWRvLWNsYXNzIGlzIGZvbGxvd2VkIGJ5IGEgc2libGluZyBjb21iaW5hdG9yLiBTZWU6XG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzExMjk1MjMxL1xuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkaXNhYmxlZF06bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpOm5vdChbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXSkgfiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyBtYXJrZWQgJiBlbmFibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtbWFya2VkLWVuYWJsZWRfIHtcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2RhdGEtaW5kZXRlcm1pbmF0ZT1cInRydWVcIl06ZW5hYmxlZCB7XG4gICAgfiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyBtYXJrZWQgJiBkaXNhYmxlZCBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLW1hcmtlZC1kaXNhYmxlZF8ge1xuICAvLyBOb3RlOiB3ZSBtdXN0IHVzZSBgW2Rpc2FibGVkXWAgaW5zdGVhZCBvZiBgOmRpc2FibGVkYCBiZWxvdyBiZWNhdXNlIEVkZ2UgZG9lcyBub3QgYWx3YXlzIHJlY2FsY3VsYXRlIHRoZSBzdHlsZVxuICAvLyBwcm9wZXJ0eSB3aGVuIHRoZSBgOmRpc2FibGVkYCBwc2V1ZG8tY2xhc3MgaXMgZm9sbG93ZWQgYnkgYSBzaWJsaW5nIGNvbWJpbmF0b3IuIFNlZTpcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTEyOTUyMzEvXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2Rpc2FibGVkXTpjaGVja2VkLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkaXNhYmxlZF06aW5kZXRlcm1pbmF0ZSxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGF0YS1pbmRldGVybWluYXRlPVwidHJ1ZVwiXVtkaXNhYmxlZF0ge1xuICAgIH4ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgIC8vIGJvcmRlci1jb2xvciBpcyBvdmVycmlkZGVuIGJ5IHRoZSBtZGMtY2hlY2tib3gtdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKCkgbWl4aW5cbiAgICBib3JkZXI6IHZhcmlhYmxlcy4kYm9yZGVyLXdpZHRoIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsIG9uLXN1cmZhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KGJhY2tncm91bmQtY29sb3IpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdChib3JkZXItY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLS1tYXJrZWRfIHtcbiAgdHJhbnNpdGlvbjpcbiAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1lbnRlcihib3JkZXItY29sb3IpLFxuICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWVudGVyKGJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzdHJva2UgJiBmaWxsIGNvbG9ycyBmb3IgdGhlIGNoZWNrYm94LlxuLy8vIFRoaXMgbWl4aW4gc2hvdWxkIGJlIHdyYXBwZWQgaW4gYSBtaXhpbiB0aGF0IHF1YWxpZmllcyBzdGF0ZSBzdWNoIGFzXG4vLy8gYG1kYy1jaGVja2JveC1pZi11bm1hcmtlZC1lbmFibGVkX2AuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBjb250YWluZXItY29sb3JzXygkc3Ryb2tlLWNvbG9yLCAkZmlsbC1jb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChib3JkZXItY29sb3IsICRzdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZpbGwtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGb2N1cyBpbmRpY2F0b3JcblxuQG1peGluIGZvY3VzLWluZGljYXRvcl8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KG9wYWNpdHkpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdCh0cmFuc2Zvcm0pO1xuICB9XG59XG5cbkBtaXhpbiBmb2N1cy1pbmRpY2F0b3ItLWZvY3VzZWRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IHZhcmlhYmxlcy4kZm9jdXMtaW5kaWNhdG9yLW9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZW50ZXIob3BhY2l0eSwgMG1zLCA4MG1zKSxcbiAgICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWVudGVyKHRyYW5zZm9ybSwgMG1zLCA4MG1zKTtcbiAgfVxufVxuXG4vLyBOYXRpdmUgaW5wdXRcblxuQG1peGluIG5hdGl2ZS1jb250cm9sXyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IGluaGVyaXQ7XG59XG5cbi8vIENoZWNrIG1hcmtcblxuQG1peGluIGNoZWNrbWFya18oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IGZ1bmN0aW9ucy50cmFuc2l0aW9uLWV4aXQob3BhY2l0eSwgMG1zLCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gKiAyKTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkICYge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoZWNrbWFyay0tY2hlY2tlZF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1lbnRlcihvcGFjaXR5LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZW50ZXIodHJhbnNmb3JtLCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWl4aW4gY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdChvcGFjaXR5LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSwgMG1zLCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGluayBjb2xvciBvZiB0aGUgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZSBpY29ucyBmb3IgYSBjaGVja2JveC5cbi8vLyBUaGlzIG1peGluIHNob3VsZCBiZSB3cmFwcGVkIGluIGEgbWl4aW4gdGhhdCBxdWFsaWZpZXMgc3RhdGUgc3VjaCBhc1xuLy8vIGBtZGMtY2hlY2tib3gtaWYtdW5tYXJrZWRfYC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrIG1hcmsgcGF0aFxuXG5AbWl4aW4gY2hlY2ttYXJrLXBhdGhfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHN0cm9rZS1kYXNob2Zmc2V0LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gICAgc3Ryb2tlLXdpZHRoOiB2YXJpYWJsZXMuJG1hcmstc3Ryb2tlLXNpemUgKiAxLjM7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IHZhcmlhYmxlcy4kbWFyay1wYXRoLWxlbmd0aF87XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogdmFyaWFibGVzLiRtYXJrLXBhdGgtbGVuZ3RoXztcbiAgfVxufVxuXG5AbWl4aW4gY2hlY2ttYXJrLXBhdGgtLW1hcmtlZF8ge1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbn1cblxuLy8gTWl4ZWQgbWFya1xuXG5AbWl4aW4gbWl4ZWRtYXJrXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtcbiAgICBib3JkZXItd2lkdGg6IG1hdGguZmxvb3IodmFyaWFibGVzLiRtYXJrLXN0cm9rZS1zaXplKSAvIDI7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWV4aXQob3BhY2l0eSksXG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSk7XG4gIH1cbn1cblxuQG1peGluIG1peGVkbWFyay0tY2hlY2tlZF8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuQG1peGluIG1peGVkbWFyay0taW5kZXRlcm1pbmF0ZV8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vL1xuLy8vIFJlc2V0cyB0b3VjaCB0YXJnZXQtcmVsYXRlZCBzdHlsZXMuIFRoaXMgaXMgY2FsbGVkIGZyb20gdGhlIGRlbnNpdHkgbWl4aW4gdG9cbi8vLyBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgaW5jcmVhc2VkIHRvdWNoIHRhcmdldCwgc2luY2UgZGVuc2UgY29tcG9uZW50c1xuLy8vIGRvbid0IGhhdmUgdGhlIHNhbWUgZGVmYXVsdCBhMTF5IHJlcXVpcmVtZW50cy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIHRvdWNoLXRhcmdldC1yZXNldF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcbkB1c2UgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIDpyb290IHtcbiAgICBAaW5jbHVkZSBtaXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGVhY2ggJHN0eWxlIGluIG1hcC5rZXlzKHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzKSB7XG4gICAgICAgIC0tbWRjLXRoZW1lLSN7JHN0eWxlfTogI3ttYXAuZ2V0KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkc3R5bGUgaW4gbWFwLmtleXModmFyaWFibGVzLiRwcm9wZXJ0eS12YWx1ZXMpIHtcbiAgICBAaWYgJHN0eWxlICE9IFwiYmFja2dyb3VuZFwiIGFuZCAkc3R5bGUgIT0gXCJzdXJmYWNlXCIge1xuICAgICAgLm1kYy10aGVtZS0tI3skc3R5bGV9IHtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBAaW5jbHVkZSBwcm9wKGNvbG9yLCAkc3R5bGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0ge1xuICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIEBpbmNsdWRlIHByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENTUyBydWxlcyBmb3IgdXNpbmcgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IChwbHVzIGxpZ2h0L2RhcmsgdmFyaWFudHMpIGFzIGJhY2tncm91bmQgY29sb3JzLlxuICBAZWFjaCAkc3R5bGUgaW4gKFwicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiKSB7XG4gICAgLm1kYy10aGVtZS0tI3skc3R5bGV9LWJnIHtcbiAgICAgIEBpbmNsdWRlIG1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIHByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCB0aGVtZSBjb2xvciBzdHlsZSB0byB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LlxuLy8gJHByb3BlcnR5IGlzIHR5cGljYWxseSBjb2xvciBvciBiYWNrZ3JvdW5kLWNvbG9yLCBidXQgY2FuIGJlIGFueSBDU1MgcHJvcGVydHkgdGhhdCBhY2NlcHRzIGNvbG9yIHZhbHVlcy5cbi8vICRzdHlsZSBzaG91bGQgYmUgb25lIG9mIHRoZSBtYXAga2V5cyBpbiAkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyAoX3ZhcmlhYmxlcy5zY3NzKSwgb3IgYSBjb2xvciB2YWx1ZS5cbkBtaXhpbiBwcm9wKCRwcm9wZXJ0eSwgJHN0eWxlLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICAkaW1wb3J0YW50LXJ1bGU6IGlmKCRpbXBvcnRhbnQsIFwiIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICBAaWYgZnVuY3Rpb25zLmlzLXZhci13aXRoLWZhbGxiYWNrXygkc3R5bGUpIHtcbiAgICAjeyRwcm9wZXJ0eX06IGZ1bmN0aW9ucy5nZXQtdmFyLWZhbGxiYWNrXygkc3R5bGUpICN7JGltcG9ydGFudC1ydWxlfTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgI3skcHJvcGVydHl9OiBmdW5jdGlvbnMudmFyXygkc3R5bGUpICN7JGltcG9ydGFudC1ydWxlfTtcbiAgfSBAZWxzZSBpZiB2YXJpYWJsZXMuaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgI3skcHJvcGVydHl9OiAkc3R5bGUgI3skaW1wb3J0YW50LXJ1bGV9O1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90IG1hcC5oYXMta2V5KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpIHtcbiAgICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGU6ICcjeyRzdHlsZX0nLiBDaG9vc2Ugb25lIG9mOiAje21hcC5rZXlzKHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzKX1cIjtcbiAgICB9XG4gICAgJHZhbHVlOiBtYXAuZ2V0KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xuXG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWUgI3skaW1wb3J0YW50LXJ1bGV9O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgI3skaW1wb3J0YW50LXJ1bGV9O1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6Y29sb3JcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCIgYXMgZnVuY3Rpb25zMjtcbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiIGFzIHZhcmlhYmxlczI7XG5AdXNlIFwiQG1hdGVyaWFsL2Jhc2UvbWl4aW5zXCIgYXMgYmFzZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcbkB1c2UgXCIuL2tleWZyYW1lc1wiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiIGFzIHRoZW1lLXZhcmlhYmxlcztcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHJpcHBsZS1zdXJmYWNlXG5cbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ge1xuICAgICAgQGluY2x1ZGUgcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIHN0YXRlcyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgJi0tYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIHN0YXRlcyhzZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gY29tbW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0eWxlcyBuZWVkZWQgYnkgYW55IGNvbXBvbmVudCB1c2luZyBNREMgUmlwcGxlIGFyZSBlbWl0dGVkLCBidXQgb25seSBvbmNlLlxuICAvLyAoRXZlcnkgY29tcG9uZW50IHVzaW5nIE1EQyBSaXBwbGUgaW1wb3J0cyB0aGVzZSBtaXhpbnMsIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGltcG9ydFxuICAvLyBtZGMtcmlwcGxlLnNjc3MuKVxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAaW5jbHVkZSBiYXNlLW1peGlucy5lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vbi9hbmltYXRpb25cIikge1xuICAgICAgQGluY2x1ZGUga2V5ZnJhbWVzLmtleWZyYW1lc187XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzdXJmYWNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAgIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG5cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgLy8gISFETyBOT1QgUkVNT1ZFISEgbWRjLXJpcHBsZS13aWxsLWNoYW5nZS1yZXBsYWNlclxuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAvLyBBbHNvIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciB0byBhdm9pZCB1bm5hdHVyYWwgY29sb3IgZmxhc2hlcyB3aGVuIHRvZ2dsaW5nIGFjdGl2YXRlZC9zZWxlY3RlZCBzdGF0ZVxuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSB2YXJpYWJsZXMuJHN0YXRlcy13YXNoLWR1cmF0aW9uIGxpbmVhcixcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXJpYWJsZXMuJHN0YXRlcy13YXNoLWR1cmF0aW9uIGxpbmVhcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHotaW5kZXg6IDE7IC8vIEVuc3VyZSB0aGF0IHRoZSByaXBwbGUgd2FzaCBmb3IgaG92ZXIvZm9jdXMgc3RhdGVzIGlzIGRpc3BsYXllZCBvbiB0b3Agb2YgcG9zaXRpb25lZCBjaGlsZCBlbGVtZW50c1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIHVwZ3JhZGVkIHN1cmZhY2VzIChzb21lIG9mIHRoZXNlIGRlcGVuZCBvbiBjdXN0b20gcHJvcGVydGllcyBzZXQgdmlhIEpTIG9yIG90aGVyIG1peGlucylcblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbiB7XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICBhbmltYXRpb246XG4gICAgICAgICAgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gdmFyaWFibGVzLiR0cmFuc2xhdGUtZHVyYXRpb24gZm9yd2FyZHMsXG4gICAgICAgICAgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHZhcmlhYmxlcy4kZmFkZS1pbi1kdXJhdGlvbiBmb3J3YXJkcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB2YXJpYWJsZXMuJGZhZGUtb3V0LWR1cmF0aW9uO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gUmV0YWluIHRyYW5zZm9ybSBmcm9tIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIGFjdGl2YXRpb25cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLWJhc2UtY29sb3IoXG4gICRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksICRyaXBwbGUtdGFyZ2V0OiBcIiZcIikge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGlmIGNvbG9yLmFscGhhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvcikpID4gMCB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgYSBjb2xvciB3aXRoIDAgYWxwaGEgaXMgc3BlY2lmaWVkLCBkb24ndCByZW5kZXIgdGhlIHJpcHBsZSBwc2V1ZG8tZWxlbWVudHMgYXQgYWxsLlxuICAgICAgICAvLyBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSB0cmFuc2l0aW9ucyBhbmQgb3ZlcmZsb3cuXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgcmlwcGxlIG9wYWNpdGllcyBpbiBgaG92ZXJgLCBgZm9jdXNgLCBvciBgcHJlc3NgIHN0YXRlc1xuLy8vIEBwYXJhbSB7bWFwfSAkb3BhY2l0eS1tYXAgLSBtYXAgc3BlY2lmeWluZyBjdXN0b20gb3BhY2l0eSBvZiB6ZXJvIG9yIG1vcmUgc3RhdGVzXG4vLy8gQHBhcmFtIHtib29sfSAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCAtIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBjb250YWlucyBhIGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSByb290XG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRyaXBwbGUtdGFyZ2V0IC0gdGhlIG9wdGlvbmFsIHNlbGVjdG9yIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRcbi8vL1xuQG1peGluIHN0YXRlcy1vcGFjaXRpZXMoJG9wYWNpdHktbWFwOiAoKSwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcmlwcGxlLXRhcmdldDogXCImXCIsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIEVuc3VyZSBzdWZmaWNpZW50IHNwZWNpZmljaXR5IHRvIG92ZXJyaWRlIGJhc2Ugc3RhdGUgb3BhY2l0aWVzXG4gIEBpZiBtYXAuaGFzLWtleSgkb3BhY2l0eS1tYXAsIGhvdmVyKSB7XG4gICAgQGluY2x1ZGUgc3RhdGVzLWhvdmVyLW9wYWNpdHkobWFwLmdldCgkb3BhY2l0eS1tYXAsIGhvdmVyKSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgbWFwLmhhcy1rZXkoJG9wYWNpdHktbWFwLCBmb2N1cykge1xuICAgIEBpbmNsdWRlIHN0YXRlcy1mb2N1cy1vcGFjaXR5KG1hcC5nZXQoJG9wYWNpdHktbWFwLCBmb2N1cyksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6ICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgbWFwLmhhcy1rZXkoJG9wYWNpdHktbWFwLCBwcmVzcykge1xuICAgIEBpbmNsdWRlIHN0YXRlcy1wcmVzcy1vcGFjaXR5KG1hcC5nZXQoJG9wYWNpdHktbWFwLCBwcmVzcyksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBzdGF0ZXMtaG92ZXItb3BhY2l0eShcbiAgJG9wYWNpdHksICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIEJhY2tncm91bmQgd2FzaCBzdHlsZXMsIGZvciBib3RoIENTUy1vbmx5IGFuZCB1cGdyYWRlZCBzdGF0ZWZ1bCBzdXJmYWNlc1xuICAmOmhvdmVyIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLWZvY3VzLW9wYWNpdHkoXG4gICRvcGFjaXR5LFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLFxuICAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcblxuICAvLyBGb2N1cyBvdmVycmlkZXMgaG92ZXIgYnkgcmV1c2luZyB0aGUgOjpiZWZvcmUgcHNldWRvLWVsZW1lbnQuXG4gIC8vIDpmb2N1cy13aXRoaW4gZ2VuZXJhbGx5IHdvcmtzIG9uIG5vbi1NUyBicm93c2VycyBhbmQgbWF0Y2hlcyB3aGVuIGEgKmNoaWxkKiBvZiB0aGUgZWxlbWVudCBoYXMgZm9jdXMuXG4gIC8vIEl0IGlzIHVzZWZ1bCBmb3IgY2FzZXMgd2hlcmUgYSBjb21wb25lbnQgaGFzIGEgZm9jdXNhYmxlIGVsZW1lbnQgd2l0aGluIHRoZSByb290IG5vZGUsIGUuZy4gdGV4dCBmaWVsZCxcbiAgLy8gYnV0IHVuZGVzaXJhYmxlIGluIGdlbmVyYWwgaW4gY2FzZSBvZiBuZXN0ZWQgc3RhdGVmdWwgY29tcG9uZW50cy5cbiAgLy8gV2UgdXNlIGEgbW9kaWZpZXIgY2xhc3MgZm9yIEpTLWVuYWJsZWQgc3VyZmFjZXMgdG8gc3VwcG9ydCBhbGwgdXNlIGNhc2VzIGluIGFsbCBicm93c2Vycy5cbiAgQGlmICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50IHtcbiAgICAvLyBKUy1lbmFibGVkIHNlbGVjdG9ycy5cbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCxcbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6Zm9jdXMtd2l0aGluLFxuICAgIC8vIENTUy1vbmx5IHNlbGVjdG9ycy5cbiAgICAmOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMsXG4gICAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLXdpdGhpbiB7XG4gICAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgc3RhdGVzLWZvY3VzLW9wYWNpdHktcHJvcGVydGllc18oXG4gICAgICAgICAgJG9wYWNpdHk6ICRvcGFjaXR5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBKUy1lbmFibGVkIHNlbGVjdG9ycy5cbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCxcbiAgICAvLyBDU1Mtb25seSBzZWxlY3RvcnMuXG4gICAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIHtcbiAgICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBzdGF0ZXMtZm9jdXMtb3BhY2l0eS1wcm9wZXJ0aWVzXyhcbiAgICAgICAgICAkb3BhY2l0eTogJG9wYWNpdHksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0YXRlcy1mb2N1cy1vcGFjaXR5LXByb3BlcnRpZXNfKCRvcGFjaXR5LCAkcXVlcnkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIGR1cmF0aW9uIGlzIG9ubHkgZWZmZWN0aXZlIG9uIGZvY3VzLCBub3QgYmx1clxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLXByZXNzLW9wYWNpdHkoJG9wYWNpdHksICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBTdHlsZXMgZm9yIG5vbi11cGdyYWRlZCAoQ1NTLW9ubHkpIHN0YXRlZnVsIHN1cmZhY2VzXG5cbiAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIHtcbiAgICAvLyBBcHBseSBwcmVzcyBhZGRpdGl2ZWx5IGJ5IHVzaW5nIHRoZSA6OmFmdGVyIHBzZXVkby1lbGVtZW50XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcmlhYmxlcy4kZmFkZS1vdXQtZHVyYXRpb24gbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcmlhYmxlcy4kZmFkZS1pbi1kdXJhdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAjeyRvcGFjaXR5fTtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBiYXNlIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIHN0YXRlcyhcbiAgJGNvbG9yOiB0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSxcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiLFxuKSB7XG4gIEBpbmNsdWRlIHN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAgICRjb2xvcjogJGNvbG9yLFxuICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIGFjdGl2YXRlZCBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBzdGF0ZXMtYWN0aXZhdGVkKFxuICAkY29sb3IsICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksICRyaXBwbGUtdGFyZ2V0OiBcIiZcIikge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRhY3RpdmF0ZWQtb3BhY2l0eTogZnVuY3Rpb25zLnN0YXRlcy1vcGFjaXR5KCRjb2xvciwgYWN0aXZhdGVkKTtcblxuICAmLS1hY3RpdmF0ZWQge1xuICAgIC8vIFN0eWxlbGludCBzZWVtcyB0byB0aGluayB0aGF0ICcmJyBxdWFsaWZpZXMgYXMgYSB0eXBlIHNlbGVjdG9yIGhlcmU/XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRhY3RpdmF0ZWQtb3BhY2l0eTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgICAgICRjb2xvcjogJGNvbG9yLFxuICAgICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6ICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgICAgJG9wYWNpdHktbW9kaWZpZXI6ICRhY3RpdmF0ZWQtb3BhY2l0eSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5LFxuICAgICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIHNlbGVjdGVkIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIHN0YXRlcy1zZWxlY3RlZChcbiAgJGNvbG9yLFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLFxuICAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkc2VsZWN0ZWQtb3BhY2l0eTogZnVuY3Rpb25zLnN0YXRlcy1vcGFjaXR5KCRjb2xvciwgc2VsZWN0ZWQpO1xuXG4gICYtLXNlbGVjdGVkIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50LlxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJHNlbGVjdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3RhdGVzLWludGVyYWN0aW9uc18oXG4gICAgICAkY29sb3I6ICRjb2xvcixcbiAgICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgICAgICRvcGFjaXR5LW1vZGlmaWVyOiAkc2VsZWN0ZWQtb3BhY2l0eSxcbiAgICAgICRxdWVyeTogJHF1ZXJ5LFxuICAgICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG5AbWl4aW4gcmFkaXVzLWJvdW5kZWQoXG4gICRyYWRpdXM6IDEwMCUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtc3RydXR1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlLFxuICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gI3skcmFkaXVzfSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1c30pO1xuICAgICAgd2lkdGg6ICRyYWRpdXMgKiAyO1xuICAgICAgaGVpZ2h0OiAkcmFkaXVzICogMjtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcmFkaXVzLXVuYm91bmRlZChcbiAgJHJhZGl1czogMTAwJSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksICRyaXBwbGUtdGFyZ2V0OiBcIiZcIikge1xuICAkZmVhdC1zdHJ1dHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUsXG4gICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KTtcbiAgICAgIHdpZHRoOiAkcmFkaXVzO1xuICAgICAgaGVpZ2h0OiAkcmFkaXVzO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSkpO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSkpO1xuICAgICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLWludGVyYWN0aW9uc18oXG4gICRjb2xvcixcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICRvcGFjaXR5LW1vZGlmaWVyOiAwLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiLFxuKSB7XG4gIEBpbmNsdWRlIHRhcmdldC1zZWxlY3RvcigkcmlwcGxlLXRhcmdldCkge1xuICAgIEBpbmNsdWRlIHN0YXRlcy1iYXNlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgfVxuXG4gICRvcGFjaXR5LW1hcDogKFxuICAgIGhvdmVyOiBmdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBob3ZlcikgKyAkb3BhY2l0eS1tb2RpZmllcixcbiAgICBmb2N1czogZnVuY3Rpb25zLnN0YXRlcy1vcGFjaXR5KCRjb2xvciwgZm9jdXMpICsgJG9wYWNpdHktbW9kaWZpZXIsXG4gICAgcHJlc3M6IGZ1bmN0aW9ucy5zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIHByZXNzKSArICRvcGFjaXR5LW1vZGlmaWVyLFxuICApO1xuXG4gIEBpbmNsdWRlIHN0YXRlcy1vcGFjaXRpZXMoJG9wYWNpdHktbWFwLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLyBXcmFwcyBjb250ZW50IGluIHRoZSBgcmlwcGxlLXRhcmdldGAgc2VsZWN0b3IgaWYgaXQgZXhpc3RzLlxuQG1peGluIHRhcmdldC1zZWxlY3RvcigkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgQGlmICRyaXBwbGUtdGFyZ2V0ID09IFwiJlwiIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIENvbW1vbiBzdHlsZXMgZm9yIGEgcmlwcGxlIHRhcmdldCBlbGVtZW50LlxuLy8gVXNlZCBmb3IgY29tcG9uZW50cyB3aGljaCBoYXZlIGFuIGlubmVyIHJpcHBsZSB0YXJnZXQgZWxlbWVudC5cbkBtaXhpbiB0YXJnZXQtY29tbW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBjbGlja3Mgb24gb3RoZXIgaW5uZXIgZWxlbWVudHMgKGUuZy4gY2xvc2UgaWNvbiBpbiBjaGlwKVxuICAgIC8vIHRvIGdvIHRocm91Z2guXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kZmFkZS1pbi1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiRmYWRlLW91dC1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4kdHJhbnNsYXRlLWR1cmF0aW9uOiAyMjVtcyAhZGVmYXVsdDtcbiRzdGF0ZXMtd2FzaC1kdXJhdGlvbjogMTVtcyAhZGVmYXVsdDtcblxuLy8gTm90ZXMgb24gc3RhdGVzOlxuLy8gKiBmb2N1cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaG92ZXIgKGkuZS4gaWYgYW4gZWxlbWVudCBpcyBib3RoIGZvY3VzZWQgYW5kIGhvdmVyZWQsIG9ubHkgZm9jdXMgdmFsdWUgYXBwbGllcylcbi8vICogcHJlc3Mgc3RhdGUgYXBwbGllcyB0byBhIHNlcGFyYXRlIHBzZXVkby1lbGVtZW50LCBzbyBpdCBoYXMgYW4gYWRkaXRpdmUgZWZmZWN0IG9uIHRvcCBvZiBvdGhlciBzdGF0ZXNcbi8vICogc2VsZWN0ZWQvYWN0aXZhdGVkIGFyZSBhcHBsaWVkIGFkZGl0aXZlbHkgdG8gaG92ZXIvZm9jdXMgdmlhIGNhbGN1bGF0aW9ucyBhdCBwcmVwcm9jZXNzaW5nIHRpbWVcblxuJGRhcmstaW5rLW9wYWNpdGllczogKFxuICBob3ZlcjogLjA0LFxuICBmb2N1czogLjEyLFxuICBwcmVzczogLjEyLFxuICBzZWxlY3RlZDogLjA4LFxuICBhY3RpdmF0ZWQ6IC4xMlxuKSAhZGVmYXVsdDtcblxuJGxpZ2h0LWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wOCxcbiAgZm9jdXM6IC4yNCxcbiAgcHJlc3M6IC4yNCxcbiAgc2VsZWN0ZWQ6IC4xNixcbiAgYWN0aXZhdGVkOiAuMjRcbikgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuXG4kcHJlc3NlZC1kYXJrLWluay1vcGFjaXR5OiAuMTYgIWRlZmF1bHQ7XG4kcHJlc3NlZC1saWdodC1pbmstb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRoZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kd2lkdGg6ICRoZWlnaHQgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuLy8gTURDIFJpcHBsZSBrZXlmcmFtZXMgYXJlIHNwbGl0IGludG8gdGhlaXIgb3duIGZpbGUgc28gdGhhdCBfbWl4aW5zLnNjc3MgY2FuIHJlbHkgb24gdGhlbS5cblxuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIiBhcyB2YXJpYWJsZXMyO1xuXG5AbWl4aW4ga2V5ZnJhbWVzXyB7XG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4ge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICAvLyBOT1RFOiBGb3IgdGhlc2Uga2V5ZnJhbWVzLCB3ZSBkbyBub3QgbmVlZCBjdXN0b20gcHJvcGVydHkgZmFsbGJhY2tzIGJlY2F1c2UgdGhleSBhcmUgb25seVxuICAgICAgLy8gdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGAubWRjLXJpcHBsZS11cGdyYWRlZGAuIFNpbmNlIE1EQ1JpcHBsZUZvdW5kYXRpb24gY2hlY2tzIHRvIGVuc3VyZVxuICAgICAgLy8gdGhhdCBjdXN0b20gcHJvcGVydGllcyBhcmUgc3VwcG9ydGVkIHdpdGhpbiB0aGUgYnJvd3NlciBiZWZvcmUgYWRkaW5nIHRoaXMgY2xhc3MsIHdlIGNhblxuICAgICAgLy8gc2FmZWx5IHVzZSB0aGVtIHdpdGhvdXQgYSBmYWxsYmFjay5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0LCAwKSkgc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6bWV0YVwiO1xuQHVzZSBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiIGFzIGJhc2UtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBmb3IgJHotdmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC5tZGMtZWxldmF0aW9uLS16I3skei12YWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgZWxldmF0aW9uKCR6LXZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiBmdW5jdGlvbnMudHJhbnNpdGlvbi12YWx1ZSgpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lsbC1jaGFuZ2U6IHZhcmlhYmxlcy4kcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIENhbGxlZCBvbmNlIHBlciBhcHBsaWNhdGlvbiB0byBzZXQgdXAgdGhlIGdsb2JhbCBkZWZhdWx0IGVsZXZhdGlvbiBzdHlsZXMuXG4vLy9cbkBtaXhpbiBvdmVybGF5LWNvbW1vbigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYmFzZS1taXhpbnMuZW1pdC1vbmNlKFwibWRjLWVsZXZhdGlvbi9jb21tb24vc3RydWN0dXJlXCIpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIEBpbmNsdWRlIGJhc2UtbWl4aW5zLmVtaXQtb25jZShcIm1kYy1lbGV2YXRpb24vY29tbW9uL2FuaW1hdGlvblwiKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGZ1bmN0aW9ucy5vdmVybGF5LXRyYW5zaXRpb24tdmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYXNlLW1peGlucy5lbWl0LW9uY2UoXCJtZGMtZWxldmF0aW9uL2NvbW1vbi9jb2xvclwiKSB7XG4gICAgICBAaW5jbHVkZSBvdmVybGF5LWZpbGwtY29sb3IodmFyaWFibGVzLiRvdmVybGF5LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIHNoYWRvdyBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYm94LXNoYWRvdyAtIFRoZSBzaGFkb3cgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbkBtaXhpbiBzaGFkb3coJGJveC1zaGFkb3csICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBzdXJmYWNlIHJlcXVpcmVkIHBvc2l0aW9uaW5nLlxuLy8vXG5AbWl4aW4gb3ZlcmxheS1zdXJmYWNlLXBvc2l0aW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXksIGluY2x1ZGluZyBwb3NpdGlvbmluZyBhbmQgc2l6aW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXlcbi8vLyBAcGFyYW0ge051bWJlcn0gWyRoZWlnaHRdIC0gVGhlIGhlaWdodCBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXlcbi8vLyBAcGFyYW0ge0Jvb2xlYW59IFskaGFzLWNvbnRlbnQtc2l6aW5nXSAtIFNldCB0byBmYWxzZSBpZiB0aGUgY29udGFpbmVyIGhhcyBubyBjb250ZW50IHNpemluZ1xuLy8vXG5AbWl4aW4gb3ZlcmxheS1kaW1lbnNpb25zKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoLCAkaGFzLWNvbnRlbnQtc2l6aW5nOiB0cnVlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBvdmVybGF5LXNlbGVjdG9yXyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gICAgICBAaWYgJGhhcy1jb250ZW50LXNpemluZyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IGZpbGwgY29sb3IuXG4vLy8gRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IG9uIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBlbGV2YXRpb24gb3ZlcmxheS5cbi8vL1xuQG1peGluIG92ZXJsYXktZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIG92ZXJsYXkgb3BhY2l0eS5cbi8vLyBFeHBlY3RlZCB0byBiZSBjYWxsZWQgZnJvbSBhIHBhcmVudCBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IC0gVGhlIG9wYWNpdHkgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5LlxuLy8vXG5AbWl4aW4gb3ZlcmxheS1vcGFjaXR5KCRvcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBDU1MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6LXZhbHVlLlxuLy8gVGhlICR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbi8vIElmICRjb2xvciBoYXMgYW4gYWxwaGEgY2hhbm5lbCwgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdmVycmlkZGVuLiBUbyBpbmNyZWFzZSB0aGUgb3BhY2l0eSBvZiB0aGUgc2hhZG93LCB1c2Vcbi8vICRvcGFjaXR5LWJvb3N0LlxuQG1peGluIGVsZXZhdGlvbigkei12YWx1ZSwgJGNvbG9yOiB2YXJpYWJsZXMuJGJhc2VsaW5lLWNvbG9yLCAkb3BhY2l0eS1ib29zdDogMCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkei12YWx1ZSkgIT0gbnVtYmVyIG9yIG5vdCBtYXRoLmlzLXVuaXRsZXNzKCR6LXZhbHVlKSB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gIEBpZiAkei12YWx1ZSA8IDAgb3IgJHotdmFsdWUgPiAyNCB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICRjb2xvcjogdGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKTtcblxuICAkdW1icmEtei12YWx1ZTogbWFwLmdldCh2YXJpYWJsZXMuJHVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLmdldCh2YXJpYWJsZXMuJHBlbnVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkYW1iaWVudC16LXZhbHVlOiBtYXAuZ2V0KHZhcmlhYmxlcy4kYW1iaWVudC1tYXAsICR6LXZhbHVlKTtcblxuICAkdW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCB2YXJpYWJsZXMuJHVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRwZW51bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsIHZhcmlhYmxlcy4kcGVudW1icmEtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcbiAgJGFtYmllbnQtY29sb3I6IHJnYmEoJGNvbG9yLCB2YXJpYWJsZXMuJGFtYmllbnQtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcblxuICAkYm94LXNoYWRvdzogKFxuICAgICN7XCIjeyR1bWJyYS16LXZhbHVlfSAjeyR1bWJyYS1jb2xvcn1cIn0sXG4gICAgI3tcIiN7JHBlbnVtYnJhLXotdmFsdWV9ICN7JHBlbnVtYnJhLWNvbG9yfVwifSxcbiAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yLFxuICApO1xuXG4gIEBpbmNsdWRlIHNoYWRvdygkYm94LXNoYWRvdywgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLyBQcml2YXRlXG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IHRyYW5zaXRpb24gdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZWFzaW5nIC0gVGhlIGVhc2luZyBmdW5jdGlvbiBmb3IgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHJldHVybiB7U3RyaW5nfVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAubWRjLWVsZXZhdGlvbi1vdmVybGF5IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiIGFzIGFuaW1hdGlvbi1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2J1dHRvbi92YXJpYWJsZXNcIiBhcyBidXR0b24tdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCIgYXMgZWxldmF0aW9uLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIiBhcyBydGwtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIiBhcyBzaGFwZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzOyAvLyBmb3IgbWRjLXRoZW1lLXByb3AtdmFsdWVcbkB1c2UgXCJAbWF0ZXJpYWwvdG91Y2gtdGFyZ2V0L3ZhcmlhYmxlc1wiIGFzIHRvdWNoLXRhcmdldC12YXJpYWJsZXM7XG5AdXNlIFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCIgYXMgdHlwb2dyYXBoeS1taXhpbnM7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLm92ZXJsYXktY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZGlhbG9nXG5cbiAgLm1kYy1kaWFsb2csXG4gIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgc2NyaW0tY29sb3IodmFyaWFibGVzLiRzY3JpbS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHRpdGxlLWluay1jb2xvcih2YXJpYWJsZXMuJHRpdGxlLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGNvbnRlbnQtaW5rLWNvbG9yKHZhcmlhYmxlcy4kY29udGVudC1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzY3JvbGwtZGl2aWRlci1jb2xvcih2YXJpYWJsZXMuJHNjcm9sbC1kaXZpZGVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWluLXdpZHRoKHZhcmlhYmxlcy4kbWluLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoKHZhcmlhYmxlcy4kbWF4LXdpZHRoLCB2YXJpYWJsZXMuJG1hcmdpbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQobnVsbCwgdmFyaWFibGVzLiRtYXJnaW4sICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzaGFwZS1yYWRpdXMobWVkaXVtLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFVzZSBgZGlzcGxheTogbm9uZWAgaW5zdGVhZCBvZiBgdmlzaWJpbGl0eTogaGlkZGVuYCB0byBhdm9pZCByZWNhbGN1bGF0aW5nIGxheW91dCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHotaW5kZXg6IHZhcmlhYmxlcy4kei1pbmRleDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd3JhcHBlciBlbGVtZW50IGlzIG5lZWRlZCB0byBtYWtlIG1heC1oZWlnaHQgd29yayBpbiBJRSAxMS5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzIxNlxuICAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAvLyBJRSAxMVxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyAvLyBFbnN1cmUgU2FmYXJpIGNlbnRlcnMgdGhlIGRpYWxvZyAoYmVjYXVzZSBpdCB0cmVhdHMgdGhlIGNvbnRhaW5lcidzIHdpZHRoIG9kZGx5KVxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIC8vIFRoaXMgZWxlbWVudCBpcyBuZWNlc3NhcnkgZm9yIElFIDExIGFuZCBuZWVkcyB0byBoYXZlIGBoZWlnaHQ6IDEwMCVgLlxuICAgICAgLy8gTGV0IGNsaWNrcyBvbiBlbGVtZW50IGZhbGwgdGhyb3VnaCB0byBzY3JpbSBlbGVtZW50IHVuZGVybmVhdGguXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5vdmVybGF5LXN1cmZhY2UtcG9zaXRpb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMub3ZlcmxheS1kaW1lbnNpb25zKDEwMCUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigyNCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtZ3JvdzogMDsgLy8gSUUgMTFcbiAgICAgIGZsZXgtc2hyaW5rOiAwOyAvLyBJRSAxMVxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgLy8gSUUgMTFcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IC8vIElFIDExXG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgLy8gT3ZlcnJpZGUgZnJvbSBgLm1kYy1kaWFsb2dfX2NvbnRhaW5lcmAuXG4gICAgICAvLyBJRSAxMTogT3RoZXJ3aXNlLCBzY3JvbGxpbmcgY29udGVudCBpbiBgbWRjLWRpYWxvZ19fY29udGVudGAgb3ZlcmZsb3dzLlxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwoXCIubWRjLWRpYWxvZ1wiKSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy50ZXh0LWJhc2VsaW5lKCR0b3A6IDQwcHgsICRkaXNwbGF5OiBibG9jaywgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoaGVhZGxpbmU2LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMjRweCB2YXJpYWJsZXMuJHRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bChcIi5tZGMtZGlhbG9nXCIpIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBBZGp1c3QgYm90dG9tIHBhZGRpbmcgdG8gbWFrZSB0aXRsZSBoZWlnaHQgYWxpZ24gdG8gc3BlYyB3aGVuIGRpdmlkZXIgaXMgcHJlc2VudC5cbiAgICAgIC8vIChUaXRsZXMgZm9yIGFsZXJ0IGRpYWxvZ3Mgdy9vIGRpdmlkZXJzIGFsaWduIGJhc2VkIG9uIHRleHQgYmFzZWxpbmUuIEFsbCBzcGVjIHZhbHVlcyBhcmUgZGl2aXNpYmxlIGJ5IDQuKVxuICAgICAgcGFkZGluZy1ib3R0b206IHZhcmlhYmxlcy4kdGl0bGUtYm90dG9tLXBhZGRpbmcgKyA2cHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoYm9keTEsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsgLy8gTm90ZTogdGhlIHRvcCBwYWRkaW5nIGlzIG9ubHkgMjBweCBmb3IgZGlhbG9ncyB3aXRob3V0IHRpdGxlczsgc2VlIGJlbG93IGZvciBvdmVycmlkZVxuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgLy8gVGhlIGNvbnRlbnQgZWxlbWVudCBhbHJlYWR5IGhhcyB0b3AvYm90dG9tIHBhZGRpbmcsIHNvIHdlIG5lZWQgdG8gc3VwcHJlc3MgbWFyZ2lucyBvbiBpdHMgZmlyc3QvbGFzdCBjaGlsZHJlbi5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgY29udGVudCBlbGVtZW50IGFscmVhZHkgaGFzIHRvcC9ib3R0b20gcGFkZGluZywgc28gd2UgbmVlZCB0byBzdXBwcmVzcyBtYXJnaW5zIG9uIGl0cyBmaXJzdC9sYXN0IGNoaWxkcmVuLlxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZ19fdGl0bGUgKyAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBFbGltaW5hdGUgcGFkZGluZyB0byBicmluZyBhcyBjbG9zZSB0byBzcGVjIGFzIHBvc3NpYmxlLCByZWx5aW5nIG9uIHRpdGxlIHBhZGRpbmcuXG4gICAgICAvLyAoU3BlYyBzZWVtcyBpbmNvbnNpc3RlbnQgUkUgdGl0bGUvYm9keSBzcGFjaW5nIG9uIGFsZXJ0IHZzLiBzaW1wbGUgdmFyaWFudHMuKVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBSZWR1Y2UgYW5kIGVxdWFsaXplIHZlcnRpY2FsIHBhZGRpbmdzIHdoZW4gc2Nyb2xsYWJsZSBkaXZpZGVycyBhcmUgcHJlc2VudFxuICAgICAgLy8gKE5vdGU6IHRoaXMgaXMgaW50ZW50aW9uYWxseSBhZnRlciB0aXRsZSArIGNvbnRlbnQgdG8gdGFrZSBwcmVjZWRlbmNlKVxuICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZ19fY29udGVudCAubWRjLWxpc3Q6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBPdmVycmlkZSBkZWZhdWx0IC5tZGMtbGlzdCBwYWRkaW5nIGZvciBjb250ZW50IGNvbnNpc3RpbmcgZXhjbHVzaXZlbHkgb2YgYSBNREMgTGlzdFxuICAgICAgcGFkZGluZzogNnB4IDAgMDsgLy8gVG9wIHBhZGRpbmcgYmFsYW5jZXMgd2l0aCB0aXRsZSBoZWlnaHRcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuLCBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2NvbnRlbnQgLm1kYy1saXN0OmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCAubWRjLWxpc3QgcGFkZGluZyBmb3IgY29udGVudCBjb25zaXN0aW5nIGV4Y2x1c2l2ZWx5IG9mIGEgTURDIExpc3RcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWluLWhlaWdodDogNTJweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kYWN0aW9ucy1wYWRkaW5nO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nLS1zdGFja2VkICYge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIFByZXZlbnQgbG9uZyB0ZXh0IGZyb20gb3ZlcmZsb3dpbmcgcGFyZW50IGVsZW1lbnQgaW4gSUUgMTFcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bChcIi5tZGMtZGlhbG9nXCIpIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nLS1zdGFja2VkICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2ctLW9wZW4sXG4gIC5tZGMtZGlhbG9nLS1vcGVuaW5nLFxuICAubWRjLWRpYWxvZy0tY2xvc2luZyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1vcGVuaW5nIHtcbiAgICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNzVtcyBsaW5lYXIsIGFuaW1hdGlvbi1mdW5jdGlvbnMuZW50ZXIodHJhbnNmb3JtLCAxNTBtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2ctLWNsb3Npbmcge1xuICAgIC5tZGMtZGlhbG9nX19zY3JpbSxcbiAgICAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8vIERpYWxvZyBjb250YWluZXIgc2NhbGVzIHVwIHdoaWxlIG9wZW5pbmcsIGJ1dCBzaG91bGQgcmVtYWluIHNjYWxlZCB1cCB3aGlsZSBjbG9zaW5nXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2ctLW9wZW4ge1xuICAgIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbiAgLy8gQ2xhc3MgYXBwbGllZCB0byBib2R5IHdoaWxlIGRpYWxvZyBpcyBvcGVuLCB0byBwcmV2ZW50IHNjcm9sbGluZyBiZWhpbmQgdGhlIGRpYWxvZ1xuICAubWRjLWRpYWxvZy1zY3JvbGwtbG9jayB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc2NyaW0tY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogdmFyaWFibGVzLiRzY3JpbS1vcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0aXRsZS1pbmstY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogdmFyaWFibGVzLiR0aXRsZS1pbmstb3BhY2l0eSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNvbnRlbnQtaW5rLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6IHZhcmlhYmxlcy4kY29udGVudC1pbmstb3BhY2l0eSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgY29sb3I6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc2Nyb2xsLWRpdmlkZXItY29sb3IoXG4gICRjb2xvcixcbiAgJG9wYWNpdHk6IHZhcmlhYmxlcy4kc2Nyb2xsLWRpdmlkZXItb3BhY2l0eSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSxcbiAgJi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1pbi13aWR0aCgkbWluLXdpZHRoLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtaW4td2lkdGg6ICRtaW4td2lkdGg7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXgtd2lkdGgoJG1heC13aWR0aCwgJG1hcmdpbiwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRtYXgtc2l6ZS1jYWxjLWV4cHI6IGNhbGMoMTAwdncgLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGlmICRtYXgtd2lkdGgge1xuICAgICAgICAkbWF4LXdpZHRoLWJyZWFrcG9pbnQ6ICRtYXgtd2lkdGggKyAoJG1hcmdpbiAqIDIpO1xuXG4gICAgICAgIC8vIEZpdCBzbnVnbHkgd2l0aGluIHRoZSB2aWV3cG9ydCBhdCBzbWFsbGVyIHNjcmVlbiBzaXplcy5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgtd2lkdGgtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC13aWR0aDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uY2UgdGhlIHNjcmVlbiBnZXRzIGJpZyBlbm91Z2gsIGFwcGx5IGEgZml4ZWQgbWF4aW11bSB3aWR0aC5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtd2lkdGgtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIG1heC13aWR0aDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1heC1oZWlnaHQoJG1heC1oZWlnaHQsICRtYXJnaW4sICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkbWF4LXNpemUtY2FsYy1leHByOiBjYWxjKDEwMCUgLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGlmICRtYXgtaGVpZ2h0IHtcbiAgICAgICAgJG1heC1oZWlnaHQtYnJlYWtwb2ludDogJG1heC1oZWlnaHQgKyAoJG1hcmdpbiAqIDIpO1xuXG4gICAgICAgIC8vIEZpdCBzbnVnbHkgd2l0aGluIHRoZSB2aWV3cG9ydCBhdCBzbWFsbGVyIHNjcmVlbiBzaXplcy5cbiAgICAgICAgQG1lZGlhIChtYXgtaGVpZ2h0OiAkbWF4LWhlaWdodC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LWhlaWdodDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uY2UgdGhlIHNjcmVlbiBnZXRzIGJpZyBlbm91Z2gsIGFwcGx5IGEgZml4ZWQgbWF4aW11bSBoZWlnaHQuXG4gICAgICAgIEBtZWRpYSAobWluLWhlaWdodDogJG1heC1oZWlnaHQtYnJlYWtwb2ludCkge1xuICAgICAgICAgIG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LWhlaWdodDogJG1heC1zaXplLWNhbGMtZXhwcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUYXJnZXQgSUUgMTEuXG4gIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgLy8gT24gSUUgMTEsIGlmIHN1cmZhY2UgaGVpZ2h0IGlzIGZpeGVkIGFuZCBjb250YWluZXIgaGVpZ2h0IGlzIDEwMCUsXG4gICAgLy8gc2Nyb2xsaW5nIGNvbnRlbnQgb3ZlcmZsb3dzLiBTbywgcmVzZXQgaGVpZ2h0IGlmIHN1cmZhY2UgaGVpZ2h0XG4gICAgLy8gaXMgZml4ZWQuXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICAgICAgLy8gRGlzYWJsZSBzdHlsZWxpbnQgaGVyZSwgYXMgbmVzdGluZyBkZXB0aCA+IDMgaXMgcmVxdWlyZWQgdG9cbiAgICAgICAgLy8gd29yayBhcm91bmQgSUUgMTEuXG4gICAgICAgIEBpZiAkbWF4LWhlaWdodCB7XG4gICAgICAgICAgJG1heC1oZWlnaHQtYnJlYWtwb2ludDogJG1heC1oZWlnaHQgKyAoJG1hcmdpbiAqIDIpO1xuXG4gICAgICAgICAgQG1lZGlhIChtaW4taGVpZ2h0OiAkbWF4LWhlaWdodC1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSovXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFwcGxpZWQgdG8gZGlhbG9ncyB0aGF0IGhhdmUgYnV0dG9ucyB3aXRoIGFuIGluY3JlYXNlZCB0b3VjaCB0YXJnZXQuXG5AbWl4aW4gd2l0aC10b3VjaC10YXJnZXQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICR0b3VjaC10YXJnZXQtbWFyZ2luOlxuICAgICh0b3VjaC10YXJnZXQtdmFyaWFibGVzLiRoZWlnaHQgLSBidXR0b24tdmFyaWFibGVzLiRoZWlnaHQpIC8gMjtcbiAgJHZlcnRpY2FsLXBhZGRpbmc6IG1hdGgubWF4KDAsIHZhcmlhYmxlcy4kYWN0aW9ucy1wYWRkaW5nIC0gJHRvdWNoLXRhcmdldC1tYXJnaW4pO1xuXG4gIC8vIEJ1dHRvbnMgd2l0aCBhbiBpbmNyZWFzZWQgdG91Y2ggdGFyZ2V0IGhhdmUgYWRkZWQgdmVydGljYWwgbWFyZ2luLCBzb1xuICAvLyBkZWNyZWFzZSB0aGUgYWN0aW9ucyBlbGVtZW50IHBhZGRpbmcgdG8gY29tcGVuc2F0ZS5cbiAgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy10b3A6ICR2ZXJ0aWNhbC1wYWRkaW5nO1xuICAgICAgcGFkZGluZy1ib3R0b206ICR2ZXJ0aWNhbC1wYWRkaW5nO1xuXG4gICAgICAvLyBUaGUgYmVsb3cgc3R5bGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJ1dHRvbiB0b3VjaCB0YXJnZXQgdmFsdWVzLFxuICAgICAgLy8gd2hpY2ggb3RoZXJ3aXNlIGNhdXNlIGBtZGMtZGlhbG9nX19zdXJmYWNlYCB0byBzY3JvbGwgdW5ubmVjZXNzYXJpbHlcbiAgICAgIC8vIGluIElFIDExLlxuICAgICAgLm1kYy1idXR0b25fX3RvdWNoIHtcbiAgICAgICAgdG9wOiAtJHRvdWNoLXRhcmdldC1tYXJnaW47IC8vIElFIDExXG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTsgLy8gSUUgMTFcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kc2NyaW0tY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG4kdGl0bGUtaW5rLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJGNvbnRlbnQtaW5rLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJHNjcm9sbC1kaXZpZGVyLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuXG4kc2NyaW0tb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuJHRpdGxlLWluay1vcGFjaXR5OiAuODcgIWRlZmF1bHQ7XG4kY29udGVudC1pbmstb3BhY2l0eTogLjYgIWRlZmF1bHQ7XG4kc2Nyb2xsLWRpdmlkZXItb3BhY2l0eTogLjEyICFkZWZhdWx0O1xuXG4kbWluLXdpZHRoOiAyODBweCAhZGVmYXVsdDtcbiRtYXgtd2lkdGg6IDU2MHB4ICFkZWZhdWx0O1xuJG1hcmdpbjogMTZweCAhZGVmYXVsdDtcbiR0aXRsZS1ib3R0b20tcGFkZGluZzogOXB4ICFkZWZhdWx0O1xuJGFjdGlvbnMtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuXG4kei1pbmRleDogNyAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCIgYXMgcnRsLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuQHVzZSBcIi4vZnVuY3Rpb25zXCI7XG5cbkBtaXhpbiByYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyBFdmVuIGlmICRydGwtcmVmbGV4aXZlIGlzIHRydWUsIG9ubHkgZW1pdCBSVEwgc3R5bGVzIGlmIHdlIGNhbid0IGVhc2lseSB0ZWxsIHRoYXQgdGhlIGdpdmVuIHJhZGl1cyBpcyBzeW1tZXRyaWNhbFxuICAgICRuZWVkcy1mbGlwOiAkcnRsLXJlZmxleGl2ZSBhbmQgbGlzdC5sZW5ndGgoJHJhZGl1cykgPiAxO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgIH1cblxuICAgIGJvcmRlci1yYWRpdXM6IGZ1bmN0aW9ucy5wcm9wLXZhbHVlKCRyYWRpdXMpO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGZ1bmN0aW9ucy5mbGlwLXJhZGl1cyhmdW5jdGlvbnMucHJvcC12YWx1ZSgkcmFkaXVzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIENyZWF0ZXMgYSBydWxlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gYW4gTURDIFdlYiBjb21wb25lbnQgaXMgd2l0aGluIHRoZSBjb250ZXh0IG9mIGFuIFJUTCBsYXlvdXQuXG4vL1xuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIHJ0bCB7XG4vLyAgICAgbGVmdDogYXV0bztcbi8vICAgICByaWdodDogMDtcbi8vICAgfVxuLy9cbi8vICAgJl9fYmFyIHtcbi8vICAgICBtYXJnaW4tbGVmdDogNHB4O1xuLy8gICAgIEBpbmNsdWRlIHJ0bChcIi5tZGMtZm9vXCIpIHtcbi8vICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4vL1xuLy8gLm1kYy1mb28tLW1vZCB7XG4vLyAgIHBhZGRpbmctbGVmdDogNHB4O1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBwYWRkaW5nLWxlZnQ6IGF1dG87XG4vLyAgICAgcGFkZGluZy1yaWdodDogNHB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBtaXhpbiB3b3JrcyBieSBjaGVja2luZyBmb3IgYW4gYW5jZXN0b3IgZWxlbWVudCB3aXRoIGBbZGlyPVwicnRsXCJdYC5cbi8vIEFzIGEgcmVzdWx0LCBuZXN0ZWQgYGRpcmAgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkOlxuLy9cbi8vIGBgYGh0bWxcbi8vIDxodG1sIGRpcj1cInJ0bFwiPlxuLy8gICA8IS0tIC4uLiAtLT5cbi8vICAgPGRpdiBkaXI9XCJsdHJcIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwibWRjLWZvb1wiPlN0eWxlZCBpbmNvcnJlY3RseSBhcyBSVEwhPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy8gPC9odG1sPlxuLy8gYGBgXG4vL1xuLy8gSW4gdGhlIGZ1dHVyZSwgc2VsZWN0b3JzIHN1Y2ggYXMgdGhlIGA6ZGlyYCBwc2V1ZG8tY2xhc3MgKGh0dHA6Ly9tZG4uaW8vY3NzLzpkaXIpIHdpbGwgaGVscCB1cyBtaXRpZ2F0ZSB0aGlzLlxuQG1peGluIHJ0bCgkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICBAaWYgKHZhcmlhYmxlcy4kaW5jbHVkZSkge1xuICAgIEBpZiAoJHJvb3Qtc2VsZWN0b3IpIHtcbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgI3skcm9vdC1zZWxlY3Rvcn1bZGlyPVwicnRsXCJdICYsXG4gICAgICAgIFtkaXI9XCJydGxcIl0gI3skcm9vdC1zZWxlY3Rvcn0gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIFtkaXI9XCJydGxcIl0gJixcbiAgICAgICZbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRha2VzIGEgYmFzZSBib3gtbW9kZWwgcHJvcGVydHkgbmFtZSAoYG1hcmdpbmAsIGBib3JkZXJgLCBgcGFkZGluZ2AsIGV0Yy4pIGFsb25nIHdpdGggYVxuLy8gZGVmYXVsdCBkaXJlY3Rpb24gKGBsZWZ0YCBvciBgcmlnaHRgKSBhbmQgdmFsdWUsIGFuZCBlbWl0cyBydWxlcyB3aGljaCBhcHBseSB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlXG4vLyBzcGVjaWZpZWQgZGlyZWN0aW9uIGJ5IGRlZmF1bHQgYW5kIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gaW4gUlRMLlxuLy9cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4vLyAgIG1hcmdpbi1yaWdodDogMDtcbi8vXG4vLyAgIEBpbmNsdWRlIHJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIHdoZXJlYXM6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCA4cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vXG4vLyAgIEBpbmNsdWRlIHJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIFlvdSBjYW4gYWxzbyBwYXNzIGFuIG9wdGlvbmFsIDR0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGBtZGMtcnRsYCxcbi8vIGUuZy4gYEBpbmNsdWRlIHJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4LCBcIi5tZGMtY29tcG9uZW50XCIpYC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyB6ZXJvIG91dCB0aGUgb3JpZ2luYWwgdmFsdWUgaW4gYW4gUlRMIGNvbnRleHQuXG4vLyBJZiB5b3UncmUgdHJ5aW5nIHRvIGZsaXAgdGhlIHZhbHVlcywgdXNlIGBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgpYCBpbnN0ZWFkLlxuQG1peGluIHJlZmxleGl2ZS1ib3goJGJhc2UtcHJvcGVydHksICRkZWZhdWx0LWRpcmVjdGlvbiwgJHZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICBAaWYgKGxpc3QuaW5kZXgoKHJpZ2h0LCBsZWZ0KSwgJGRlZmF1bHQtZGlyZWN0aW9uKSA9PSBudWxsKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBkZWZhdWx0IGRpcmVjdGlvbjogJyN7JGRlZmF1bHQtZGlyZWN0aW9ufScuIFBsZWFzZSBzcGVjaWZpeSBlaXRoZXIgJ3JpZ2h0JyBvciAnbGVmdCcuXCI7XG4gIH1cblxuICAkbGVmdC12YWx1ZTogJHZhbHVlO1xuICAkcmlnaHQtdmFsdWU6IDA7XG5cbiAgQGlmICgkZGVmYXVsdC1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICAkbGVmdC12YWx1ZTogMDtcbiAgICAkcmlnaHQtdmFsdWU6ICR2YWx1ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlZmxleGl2ZS1wcm9wZXJ0eSgkYmFzZS1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBhIGJhc2UgcHJvcGVydHkgYW5kIGVtaXRzIHJ1bGVzIHRoYXQgYXNzaWduIDxiYXNlLXByb3BlcnR5Pi1sZWZ0IHRvIDxsZWZ0LXZhbHVlPiBhbmRcbi8vIDxiYXNlLXByb3BlcnR5Pi1yaWdodCB0byA8cmlnaHQtdmFsdWU+IGluIGEgTFRSIGNvbnRleHQsIGFuZCB2aWNlIHZlcnNhIGluIGEgUlRMIGNvbnRleHQuXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIHJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCBhdXRvLCAxMnB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogYXV0bztcbi8vICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMTJweDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIDR0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IGNhbiBiZSBnaXZlbiwgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIHJlZmxleGl2ZS1wcm9wZXJ0eSgkYmFzZS1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgJHByb3AtbGVmdDogI3skYmFzZS1wcm9wZXJ0eX0tbGVmdDtcbiAgJHByb3AtcmlnaHQ6ICN7JGJhc2UtcHJvcGVydHl9LXJpZ2h0O1xuXG4gIEBpbmNsdWRlIHJlZmxleGl2ZSgkcHJvcC1sZWZ0LCAkbGVmdC12YWx1ZSwgJHByb3AtcmlnaHQsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgaG9yaXpvbnRhbCBwb3NpdGlvbiBwcm9wZXJ0eSAoZWl0aGVyIFwibGVmdFwiIG9yIFwicmlnaHRcIikgYXMgd2VsbFxuLy8gYXMgYSB2YWx1ZSwgYW5kIGFwcGxpZXMgdGhhdCB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIGEgTFRSIGNvbnRleHQsIGFuZCBmbGlwcyBpdCBpbiBhXG4vLyBSVEwgY29udGV4dC4gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIGxlZnQ6IDA7XG4vLyAgIHJpZ2h0OiBpbml0aWFsO1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBsZWZ0OiBpbml0aWFsO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCB0aGlyZCAkcm9vdC1zZWxlY3RvciBhcmd1bWVudCBtYXkgYWxzbyBiZSBnaXZlbiwgd2hpY2ggaXMgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiByZWZsZXhpdmUtcG9zaXRpb24oJHBvc2l0aW9uLXByb3BlcnR5LCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAobGlzdC5pbmRleCgocmlnaHQsIGxlZnQpLCAkcG9zaXRpb24tcHJvcGVydHkpID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHBvc2l0aW9uICN7cG9zaXRpb24tcHJvcGVydHl9LiBQbGVhc2Ugc3BlY2lmaXkgZWl0aGVyIHJpZ2h0IG9yIGxlZnRcIjtcbiAgfVxuXG4gIC8vIFRPRE86IFwiaW5pdGlhbFwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTEuIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLWluaXRpYWwtdmFsdWVcbiAgJGxlZnQtdmFsdWU6ICR2YWx1ZTtcbiAgJHJpZ2h0LXZhbHVlOiBpbml0aWFsO1xuXG4gIEBpZiAoJHBvc2l0aW9uLXByb3BlcnR5ID09IHJpZ2h0KSB7XG4gICAgJHJpZ2h0LXZhbHVlOiAkdmFsdWU7XG4gICAgJGxlZnQtdmFsdWU6IGluaXRpYWw7XG4gIH1cblxuICBAaW5jbHVkZSByZWZsZXhpdmUobGVmdCwgJGxlZnQtdmFsdWUsIHJpZ2h0LCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgcGFpciBvZiBwcm9wZXJ0aWVzIHdpdGggdmFsdWVzIGFzIGFyZ3VtZW50cyBhbmQgZmxpcHMgaXQgaW4gUlRMIGNvbnRleHQuXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIHJ0bC1yZWZsZXhpdmUobGVmdCwgMnB4LCByaWdodCwgNXB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBsZWZ0OiAycHg7XG4vLyAgIHJpZ2h0OiA1cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBydGwge1xuLy8gICAgIHJpZ2h0OiAycHg7XG4vLyAgICAgbGVmdDogNXB4O1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCBmaWZ0aCBgJHJvb3Qtc2VsZWN0b3JgIGFyZ3VtZW50IG1heSBhbHNvIGJlIGdpdmVuLCB3aGljaCBpcyBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIHJlZmxleGl2ZShcbiAgJGxlZnQtcHJvcGVydHksXG4gICRsZWZ0LXZhbHVlLFxuICAkcmlnaHQtcHJvcGVydHksXG4gICRyaWdodC12YWx1ZSxcbiAgJHJvb3Qtc2VsZWN0b3I6IG51bGxcbikge1xuICBAaW5jbHVkZSBwcm9wZXJ0eV8oJGxlZnQtcHJvcGVydHksICRsZWZ0LXZhbHVlKTtcbiAgQGluY2x1ZGUgcHJvcGVydHlfKCRyaWdodC1wcm9wZXJ0eSwgJHJpZ2h0LXZhbHVlKTtcblxuICBAaW5jbHVkZSBydGwoJHJvb3Qtc2VsZWN0b3IpIHtcbiAgICBAaW5jbHVkZSBwcm9wZXJ0eV8oJGxlZnQtcHJvcGVydHksICRyaWdodC12YWx1ZSk7XG4gICAgQGluY2x1ZGUgcHJvcGVydHlfKCRyaWdodC1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUpO1xuICB9XG59XG5cbi8vL1xuLy8vIEFkZHMgYEBub2ZsaXBgIGFubm90YXRpb24gd2hlbiBgJG1kYy1ydGwtaW5jbHVkZWAgaXMgdHJ1ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBwcm9wZXJ0eV8oJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGlmIHZhcmlhYmxlcy4kaW5jbHVkZSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICB9XG5cbiAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwic2FzczpzdHJpbmdcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLm1kYy10eXBvZ3JhcGh5IHtcbiAgICBAaW5jbHVkZSBiYXNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBlYWNoICRzdHlsZSBpbiBtYXAua2V5cyh2YXJpYWJsZXMuJHN0eWxlcykge1xuICAgIC5tZGMtdHlwb2dyYXBoeS0tI3skc3R5bGV9IHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHkoJHN0eWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYXNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgQGluY2x1ZGUgc21vb3RoLWZvbnQoJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoZm9udC1mYW1pbHksIChcbiAgICAgIHZhcm5hbWU6IC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksXG4gICAgICBmYWxsYmFjazogbWFwLmdldCh2YXJpYWJsZXMuJGJhc2UsICdmb250LWZhbWlseScpXG4gICAgKSk7XG4gIH1cbn1cblxuQG1peGluIHR5cG9ncmFwaHkoJHN0eWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSwgJGV4Y2x1ZGUtcHJvcHM6ICgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG4gICRzdHlsZS1wcm9wczogbWFwLmdldCh2YXJpYWJsZXMuJHN0eWxlcywgJHN0eWxlKTtcblxuICBAaWYgbm90IG1hcC5oYXMta2V5KHZhcmlhYmxlcy4kc3R5bGVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgI3skc3R5bGV9IGRvZXNuJ3QgZXhpc3QuIENob29zZSBvbmUgb2YgI3ttYXAua2V5cyh2YXJpYWJsZXMuJHN0eWxlcyl9XCI7XG4gIH1cblxuICBAaW5jbHVkZSBzbW9vdGgtZm9udCgkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN0eWxlLXByb3BzIHtcbiAgICAgIEBpZiBsaXN0LmluZGV4KCRleGNsdWRlLXByb3BzLCAka2V5KSA9PSBudWxsIHtcbiAgICAgICAgJGZhbGxiYWNrOiAkdmFsdWU7XG4gICAgICAgIEBpZiAka2V5ID09IFwiZm9udC1mYW1pbHlcIiB7XG4gICAgICAgICAgLy8gRWFjaCBzdHlsZSBoYXMgaXRzIG93biBmb250LWZhbWlseSBjdXN0b20gcHJvcGVydHksIGJ1dCBzaG91bGRcbiAgICAgICAgICAvLyBmYWxsYmFjayB0byBhIGdlbmVyaWMgZm9udC1mYW1pbHkgcHJvcGVydHkuIFRoaXMgYWxsb3dzXG4gICAgICAgICAgLy8gY3VzdG9taXppbmcgdGhlIGZvbnQtZmFtaWx5IGZvciBhbGwgc3R5bGVzIG9yIG9ubHkgc3BlY2lmaWMgb25lcy5cbiAgICAgICAgICAkZmFsbGJhY2s6IChcbiAgICAgICAgICAgIHZhcm5hbWU6IC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksXG4gICAgICAgICAgICBmYWxsYmFjazogJGZhbGxiYWNrXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKCRrZXksIChcbiAgICAgICAgICB2YXJuYW1lOiAtLW1kYy10eXBvZ3JhcGh5LSN7JHN0eWxlfS0jeyRrZXl9LFxuICAgICAgICAgIGZhbGxiYWNrOiAkZmFsbGJhY2tcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIGFudGlhbGlhc2luZyB2aWEgZm9udC1zbW9vdGhpbmcgdG8gdGV4dC5cbkBtaXhpbiBzbW9vdGgtZm9udCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC10eXBvZ3JhcGh5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9XG59XG5cbi8vIEVsZW1lbnQgbXVzdCBiZSBgZGlzcGxheTogYmxvY2tgIG9yIGBkaXNwbGF5OiBpbmxpbmUtYmxvY2tgIGZvciB0aGlzIHRvIHdvcmsuXG5AbWl4aW4gb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi8vLyBTZXRzIGEgY29udGFpbmVyJ3MgYmFzZWxpbmUgdGhhdCB0ZXh0IGNvbnRlbnQgd2lsbCBhbGlnbiB0by5cbi8vL1xuLy8vIElmIHRoZSBgJGRpc3BsYXlgIGlzIHNldCB0byBhIGZsZXhib3ggZGlzcGxheSwgb25seSBgJHRvcGAgYmFzZWxpbmUgbWF5IGJlXG4vLy8gc2V0LiBBIHNlcGFyYXRlIGVsZW1lbnQgbXVzdCBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSBjb250YWluZXIgd2l0aCBhXG4vLy8gYCRib3R0b21gIGJhc2VsaW5lLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgLSB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBjb250YWluZXIgdG8gdGhlXG4vLy8gICAgIHRleHQncyBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSAtIHRoZSBkaXN0YW5jZSBmcm9tIHRoZSB0ZXh0J3MgYmFzZWxpbmUgdG8gdGhlXG4vLy8gICAgIGJvdHRvbSBvZiB0aGUgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSAtIHRoZSBkaXNwbGF5IHR5cGUgb2YgdGhlIGNvbnRhaW5lci4gTWF5IGJlIGBmbGV4YCxcbi8vLyAgICAgYGlubGluZS1mbGV4YCwgYGJsb2NrYCwgb3IgYGlubGluZS1ibG9ja2AuXG5AbWl4aW4gYmFzZWxpbmUoJHRvcDogMCwgJGJvdHRvbTogMCwgJGRpc3BsYXk6IGJsb2NrLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkdmFsaWREaXNwbGF5VHlwZXM6IChmbGV4LCBpbmxpbmUtZmxleCwgYmxvY2ssIGlubGluZS1ibG9jayk7XG5cbiAgQGlmIGxpc3QuaW5kZXgoJHZhbGlkRGlzcGxheVR5cGVzLCAkZGlzcGxheSkgPT0gbnVsbCB7XG4gICAgQGVycm9yIFwibWRjLXR5cG9ncmFwaHk6IGludmFsaWQgZGlzcGxheSBzcGVjaWZpZWQhICN7JGRpc3BsYXl9IG11c3QgYmUgb25lIG9mICN7JHZhbGlkRGlzcGxheVR5cGVzfVwiO1xuICB9XG5cbiAgJGlzRmxleGJveDogJGRpc3BsYXkgPT0gXCJmbGV4XCIgb3IgJGRpc3BsYXkgPT0gXCJpbmxpbmUtZmxleFwiO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcblxuICAgIEBpZiAkaXNGbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRvcCA+IDAge1xuICAgIEBpbmNsdWRlIGJhc2VsaW5lLXRvcCgkdG9wLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgJGJvdHRvbSA+IDAge1xuICAgIEBpZiAkaXNGbGV4Ym94IHtcbiAgICAgIEBlcnJvciBcIm1kYy10eXBvZ3JhcGh5OiBpbnZhbGlkIGJhc2VsaW5lIHdpdGggZGlzcGxheSB0eXBlLiAjeyRkaXNwbGF5fSBjYW5ub3Qgc3BlY2lmaXkgJGJvdHRvbS4gQWRkIGEgc2VwYXJhdGUgY2hpbGQgZWxlbWVudCB3aXRoIGl0cyBvd24gJGJvdHRvbS5cIjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYXNlbGluZS1ib3R0b20oJGJvdHRvbSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlbGluZSBvZiBmbG93IHRleHQgY29udGVudC5cbi8vL1xuLy8vIFNlcGFyYXRlIGAkdG9wYCBhbmQgYCRib3R0b21gIGJhc2VsaW5lcyBtYXkgYmUgc3BlY2lmaWVkLiBZb3Ugc2hvdWxkIGVuc3VyZVxuLy8vIHRoYXQgdGhlIGAkdG9wYCBiYXNlbGluZSBtYXRjaGVzIHRoZSBwcmV2aW91cyB0ZXh0IGNvbnRlbnQncyAkYm90dG9tXG4vLy8gYmFzZWxpbmUgdG8gZW5zdXJlIHRleHQgaXMgcG9zaXRpb25lZCBhcHByb3ByaWF0ZWx5LlxuLy8vXG4vLy8gU2VlIGdvL2Nzcy1iYXNlbGluZSBmb3IgcmVmZXJlbmNlIG9uIGhvdyB0aGlzIG1peGluIHdvcmtzLlxuLy8vXG4vLy8gVGhpcyBpcyBpbnRlbmRlZCBmb3IgdGV4dCBmbG93IGNvbnRlbnQgb25seSAoZS5nLiBgPGgxPmAsIGA8cD5gLCBgPHNwYW4+YCxcbi8vLyBvciBgPGRpdj5gIHdpdGggb25seSB0ZXh0IGNvbnRlbnQpLiBVc2UgYGJhc2VsaW5lKClgIHRvIHNldCB0aGUgYmFzZWxpbmUgb2Zcbi8vLyBjb250YWluZXJzIHRoYXQgYXJlIGZsZXhib3ggb3IgaGF2ZSBub24tZmxvdyBjb250ZW50IGNoaWxkcmVuLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgLSB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBjb250YWluZXIgdG8gdGhlXG4vLy8gICAgIHRleHQncyBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSAtIHRoZSBkaXN0YW5jZSBmcm9tIHRoZSB0ZXh0J3MgYmFzZWxpbmUgdG8gdGhlXG4vLy8gICAgIGJvdHRvbSBvZiB0aGUgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGxpbmVIZWlnaHQgLSB0aGUgbGluZS1oZWlnaHQgdG8gdXNlIGZvciB0aGUgdGV4dC4gVGhpc1xuLy8vICAgICBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBiYXNlbGluZXMgb2YgbXVsdGlwbGUgbGluZXMgb2YgdGV4dC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgLSB0aGUgZGlzcGxheSB0eXBlIG9mIHRoZSBjb250YWluZXIuIE1heSBiZSBgYmxvY2tgXG4vLy8gICAgIG9yIGBpbmxpbmUtYmxvY2tgLlxuQG1peGluIHRleHQtYmFzZWxpbmUoJHRvcDogMCwgJGJvdHRvbTogMCwgJGRpc3BsYXk6IGJsb2NrLCAkbGluZUhlaWdodDogbm9ybWFsLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkdmFsaWREaXNwbGF5VHlwZXM6IChibG9jaywgaW5saW5lLWJsb2NrKTtcblxuICBAaWYgbGlzdC5pbmRleCgkdmFsaWREaXNwbGF5VHlwZXMsICRkaXNwbGF5KSA9PSBudWxsIHtcbiAgICBAZXJyb3IgXCJtZGMtdHlwb2dyYXBoeTogaW52YWxpZCBkaXNwbGF5IHNwZWNpZmllZCEgI3skZGlzcGxheX0gbXVzdCBiZSBvbmUgb2YgI3skdmFsaWREaXNwbGF5VHlwZXN9XCI7XG4gIH1cblxuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBiYXNlbGluZSgkZGlzcGxheTogJGRpc3BsYXksICR0b3A6ICR0b3AsICRib3R0b206ICRib3R0b20sICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGlmICR0b3AgPiAwIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICBsaW5lLWhlaWdodDogI3skbGluZUhlaWdodH07XG4gICAgfVxuXG4gICAgQGlmICRib3R0b20gPiAwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xICogJGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBiYXNlbGluZSBzdHJ1dCBmcm9tIHRoZSB0b3Agb2YgYSBjb250YWluZXIuIFRoaXMgbWl4aW4gaXMgZm9yXG4vLy8gYWR2YW5jZWQgdXNlcnMsIHByZWZlciBgYmFzZWxpbmUoKWAuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpc3RhbmNlIC0gVGhlIGRpc3RhbmNlIGZyb20gdGhlIHRvcCBvZiB0aGUgY29udGFpbmVyIHRvXG4vLy8gICAgIHRoZSB0ZXh0J3MgYmFzZWxpbmUuXG5AbWl4aW4gYmFzZWxpbmUtdG9wKCRkaXN0YW5jZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBiYXNlbGluZSBzdHJ1dCBmcm9tIHRoZSBiYXNlbGluZSB0byB0aGUgYm90dG9tIG9mIGEgY29udGFpbmVyLlxuLy8vIFRoaXMgbWl4aW4gaXMgZm9yIGFkdmFuY2VkIHVzZXJzLCBwcmVmZXIgYGJhc2VsaW5lKClgLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkaXN0YW5jZSAtIFRoZSBkaXN0YW5jZSBmcm9tIHRoZSB0ZXh0J3MgYmFzZWxpbmUgdG8gdGhlXG4vLy8gICAgIGJvdHRvbSBvZiB0aGUgY29udGFpbmVyLlxuQG1peGluIGJhc2VsaW5lLWJvdHRvbSgkZGlzdGFuY2UsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogLTEgKiAkZGlzdGFuY2U7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogJGRpc3RhbmNlO1xuICBjb250ZW50OiBcIlwiO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIiBhcyB0eXBvZ3JhcGh5LW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWZvcm0tZmllbGQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoYm9keTIsICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsIHRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAwLCBhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgdmFyaWFibGVzLiRpdGVtLXNwYWNpbmcsIDApO1xuXG4gICAgICAgIG9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZm9ybS1maWVsZC0tbm93cmFwIHtcbiAgICA+IGxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWZvcm0tZmllbGQtLWFsaWduLWVuZCB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCBhdXRvLCAwKTtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgMCwgdmFyaWFibGVzLiRpdGVtLXNwYWNpbmcpO1xuXG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWZvcm0tZmllbGQtLXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgID4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bCB7XG4gICAgICAgICAgLy8gUlRMIG5lZWRlZCBmb3Igc3BlY2lmaWNpdHlcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcblxuLy8gUHVibGljXG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbGluZS1yaXBwbGVcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBmdW5jdGlvbnMudHJhbnNpdGlvbi12YWx1ZSh0cmFuc2Zvcm0pLCBmdW5jdGlvbnMudHJhbnNpdGlvbi12YWx1ZShvcGFjaXR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmU6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpbmUtcmlwcGxlLS1kZWFjdGl2YXRpbmc6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhY3RpdmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChib3JkZXItYm90dG9tLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaW5hY3RpdmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcclxuXHJcbi4jeyRnbGlkZS1jbGFzc30ge1xyXG4gICR0aGlzOiAmO1xyXG5cclxuICAkc2U6ICRnbGlkZS1lbGVtZW50LXNlcGFyYXRvcjtcclxuICAkc206ICRnbGlkZS1tb2RpZmllci1zZXBhcmF0b3I7XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAqIHtcclxuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAmI3skc2V9dHJhY2sge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYjeyRzZX1zbGlkZXMge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcclxuICAgIHRvdWNoLWFjdGlvbjogcGFuLVk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG5cclxuICAgICYjeyRnbGlkZS1tb2RpZmllci1zZXBhcmF0b3J9ZHJhZ2dpbmcge1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYjeyRzZX1zbGlkZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICBhIHtcclxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xyXG4gICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YXJyb3dzIHtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJiN7JHNlfWJ1bGxldHMge1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmI3skc219cnRsIHtcclxuICAgIGRpcmVjdGlvbjogcnRsO1xyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0ICd2YXJpYWJsZXMnO1xyXG5cclxuLiN7JGdsaWRlLWNsYXNzfSB7XHJcbiAgJHRoaXM6ICY7XHJcblxyXG4gICRzZTogJGdsaWRlLWVsZW1lbnQtc2VwYXJhdG9yO1xyXG4gICRzbTogJGdsaWRlLW1vZGlmaWVyLXNlcGFyYXRvcjtcclxuXHJcbiAgJiN7JHNlfWFycm93IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDAuMjVlbSAwLjVlbSAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIHRleHQtc2hhZG93OiAwIDAuMjVlbSAwLjVlbSByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCBib3JkZXIgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG4gICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogd2hpdGU7IH1cclxuXHJcbiAgICAmI3skc219bGVmdCB7XHJcbiAgICAgIGxlZnQ6IDJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skc219cmlnaHQge1xyXG4gICAgICByaWdodDogMmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYjeyRzbX1kaXNhYmxlZCB7XHJcbiAgICAgIG9wYWNpdHk6IDAuMzM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YnVsbGV0cyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgYm90dG9tOiAyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YnVsbGV0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuICAgIHdpZHRoOiA5cHg7XHJcbiAgICBoZWlnaHQ6IDlweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgYm94LXNoYWRvdzogMCAwLjI1ZW0gMC41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBtYXJnaW46IDAgMC4yNWVtO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skc219YWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc219c3dpcGVhYmxlIHtcclxuICAgIGN1cnNvcjogZ3JhYjtcclxuICAgIGN1cnNvcjogLW1vei1ncmFiO1xyXG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XHJcbiAgfVxyXG5cclxuICAmI3skc219ZHJhZ2dpbmcge1xyXG4gICAgY3Vyc29yOiBncmFiYmluZztcclxuICAgIGN1cnNvcjogLW1vei1ncmFiYmluZztcclxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcclxuICB9XHJcbn1cclxuIiwiLiN7JGdsaWRlLWNsYXNzfSB7XG4gICAgJHRoaXM6ICY7XG5cbiAgICAkc2U6ICRnbGlkZS1lbGVtZW50LXNlcGFyYXRvcjtcbiAgICAkc206ICRnbGlkZS1tb2RpZmllci1zZXBhcmF0b3I7XG5cbiAgICAmI3skc2V9c2xpZGVzIHtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgJiN7JHNlfXNsaWRlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICB9XG5cbiAgICAmI3skc2V9YXJyb3cge1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0OHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggMzBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZDtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4xMik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsYWNrLCAwLjA0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi10YWItbmF2aWdhdGlvbjtcblxuXG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgbGVmdDogLTUwcHg7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDExcHggY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC1ncmF5LWw1MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgcmlnaHQ6IC01MHB4O1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTFweCBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19hcnJvdy1yaWdodCgkcHJvamVjdC1ncmF5LWw1MDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmc6IDVweCAyNXB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgIH1cbiAgICBcbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA0NHB4O1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgfVxuICAgIFxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG4gICAgXG4gICAgLmllICYge1xuICAgICAgICBoZWlnaHQ6IDQycHg7XG4gICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbi1sZyB7XG4gICAgbWluLWhlaWdodDogNDJweDtcbiAgICBcbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgbWluLWhlaWdodDogNzZweDtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cbiAgICBcbiAgICAuaWUgJiB7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgaGVpZ2h0OiA3NnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWh1Z2Uge1xuICAgIG1pbi1oZWlnaHQ6IDY2cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDc2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG4gICAgXG4gICAgLmllICYge1xuICAgICAgICBoZWlnaHQ6IDY2cHg7XG4gICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDc2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tc20ge1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgZm9udC1zaXplOiAxOXB4O1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAzOXB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgICBcbiAgICAuaWUgJiB7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAzOXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXhzIHtcbiAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICB9XG4gICAgXG4gICAgLmllICYge1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhlcm8ge1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICBmb250LXNpemU6IDEuMjQ2dnc7IC8vIDI0cHg7XG4gICAgICAgIGhlaWdodDogNC41MTV2dzsgLy8gODdweFxuICAgICAgICBtaW4td2lkdGg6IDEzLjM4OHZ3OyAvLyAyNThweFxuICAgIH1cbiAgICBcbiAgICAuaWUgJiB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGhlaWdodDogODdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbi1zaGFkb3ctNDAge1xuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsMCwwLC4zKTtcbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC43Nzl2dyAyLjA3NnZ3IHJnYmEoMCwwLDAsLjMpOyAvLyAwIDE1cHggNDBweFxuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbi1yZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtcmVkKTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmxhY2s7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsYWNrLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtcmVkLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tb2xkLXJlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkcHJvamVjdC1vbGQtcmVkKTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3Qtb2xkLXJlZC1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLW5ldy1yZWQge1xuXHRAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LW5ldy1yZWQpO1xuXG5cdCY6bm90KDpkaXNhYmxlZCkge1xuXHRcdGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcblx0fVxuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLDAuMyk7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LW5ldy1yZWQtaG92ZXIpO1xuXHR9XG59XG5cbkBtaXhpbiBidXR0b24tdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtdHJhbnNwYXJlbnQpO1xuXG4gICAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHJnYmEoJHByb2plY3Qtd2hpdGUsMC4zKTtcbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoJHByb2plY3QtYmx1ZSwwLjMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtdHJhbnNwYXJlbnQtaG92ZXIpO1xuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LWJsdWUtaG92ZXIpO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBtaXhpbiBidXR0b24tYmx1ZSB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkcHJvamVjdC1ibHVlKTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtYmx1ZS1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLW5hdnlibHVlIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LW5hdnlibHVlKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IoJHByb2plY3Qtd2hpdGUpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4wKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkoLjEyKTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3QtbmF2eWJsdWUtaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ncmVlbiB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkcHJvamVjdC1ncmVlbik7XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogcmdiYSgkcHJvamVjdC13aGl0ZSwwLjMpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LWdyZWVuLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tb3JhbmdlIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LW9yYW5nZSk7XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogcmdiYSgkcHJvamVjdC13aGl0ZSwwLjMpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LW9yYW5nZS1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLW9yYW5nZS1vdXRsaW5lZCB7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcblxuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IoJHByb2plY3Qtd2hpdGUpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkcHJvamVjdC1vcmFuZ2UpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC1vcmFuZ2UpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtb3BhY2l0aWVzKChob3ZlcjogLjAsIGZvY3VzOiAuMCwgcHJlc3M6IC4wOCkpO1xuXG4gICAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1vcmFuZ2U7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LW9yYW5nZSwwLjMpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1ibHVlLWw5NTA7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLW91dGxpbmVkIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LXdoaXRlKTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLW91dGxpbmUtY29sb3IoJHByb2plY3QtYmx1ZSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsdWUpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtb3BhY2l0aWVzKChob3ZlcjogLjAsIGZvY3VzOiAuMCwgcHJlc3M6IC4wOCkpO1xuXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5hdnlibHVlO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogcmdiYSgkcHJvamVjdC1uYXZ5Ymx1ZSwwLjMpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1ibHVlLWw5NTA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBidXR0b24td2hpdGUtb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLW9wYWNpdGllcygoaG92ZXI6IC4wLCBmb2N1czogLjAsIHByZXNzOiAuMDgpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLCAwKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3Qtd2hpdGUsIDAuMDYpO1xuICAgIH1cblxufVxuXG5AbWl4aW4gYnV0dG9uLWJsdWUtb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkcHJvamVjdC1ibHVlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLCAwKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycztcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmx1ZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHJnYmEoJHByb2plY3QtYmx1ZSwwLjMpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsdWUsIDAuMDYpO1xuICAgIH1cblxufVxuXG5AbWl4aW4gYnV0dG9uLWJsdWUtd2hpdGUge1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IocmdiYSgkcHJvamVjdC13aGl0ZSwgMCkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tb3V0bGluZS1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsdWUpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4wKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkoLjA3KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsdWUsMC4zKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcihyZ2JhKCRwcm9qZWN0LWJsdWUsIDAuMDYpKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tb3V0bGluZWQtYmx1ZS1ibGFjayB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1vdXRsaW5lLWNvbG9yKCRwcm9qZWN0LWJsdWUpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC1ibHVlKTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLW9wYWNpdGllcygoaG92ZXI6IC4wLCBmb2N1czogLjAsIHByZXNzOiAuMDgpKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmxhY2s7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsYWNrLDAuMyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmx1ZSwwLjA2KTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tdGFiLW5hdmlnYXRpb24ge1xuICAgICY6Zm9jdXMge1xuICAgICAgICAudGFiLW5hdmlnYXRpb24gJiB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4yKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkc3BsaWRlLXJvb3Q6ICY7XHJcblxyXG5Aa2V5ZnJhbWVzIHNwbGlkZS1sb2FkaW5nIHtcclxuICAgIDAlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKVxyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKVxyXG4gICAgfVxyXG59XHJcblxyXG4uc3BsaWRlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcbiAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZVxyXG4gICAgfVxyXG5cclxuICAgICYtLWRyYWdnYWJsZSB7XHJcbiAgICAgICAgPiAjeyRzcGxpZGUtcm9vdH1fX3RyYWNrIHtcclxuICAgICAgICAgICAgPiAjeyRzcGxpZGUtcm9vdH1fX2xpc3Qge1xyXG4gICAgICAgICAgICAgICAgPiAjeyRzcGxpZGUtcm9vdH1fX3NsaWRlIHtcclxuICAgICAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1mYWRlIHtcclxuICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fdHJhY2sge1xyXG4gICAgICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fbGlzdCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1ydGwge1xyXG4gICAgICAgIGRpcmVjdGlvbjogcnRsXHJcbiAgICB9XHJcblxyXG4gICAgJi0tdHRiIHtcclxuICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fdHJhY2sge1xyXG4gICAgICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fbGlzdCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiAjeyRzcGxpZGUtcm9vdH1fX3BhZ2luYXRpb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveFxyXG4gICAgfVxyXG5cclxuICAgICZfX2xpc3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudFxyXG4gICAgfVxyXG5cclxuICAgICZfX3BhZ2luYXRpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDk1JTtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3NsaWRlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b21cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fc2xpZGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcclxuICAgIH1cclxuXHJcbiAgICAmX19zcGlubmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjOTk5O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBhbmltYXRpb246IHNwbGlkZS1sb2FkaW5nIDFzIGxpbmVhciBpbmZpbml0ZVxyXG4gICAgfVxyXG5cclxuICAgICZfX3RyYWNrIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuXHJcbiAgICB9XHJcblxyXG4gICAgJl9fYXJyb3cge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICB3aWR0aDogMmVtO1xyXG4gICAgICAgIGhlaWdodDogMmVtO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgb3BhY2l0eTogLjc7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2NjYztcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgb3BhY2l0eTogLjlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBvdXRsaW5lOiBub25lXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICB3aWR0aDogMS4yZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMS4yZW1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLXByZXYge1xyXG4gICAgICAgICAgICBsZWZ0OiAxZW07XHJcblxyXG4gICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLW5leHQge1xyXG4gICAgICAgICAgICByaWdodDogMWVtXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3BhZ2luYXRpb24ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIGJvdHRvbTogLjVlbTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICZfX3BhZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogOHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgIG1hcmdpbjogM3B4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zyb20gLjJzIGxpbmVhcjtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAuNztcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19wcm9ncmVzc19fYmFyIHtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjXHJcbiAgICB9XHJcblxyXG4gICAgJi0tbmF2IHtcclxuICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fdHJhY2sge1xyXG4gICAgICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fbGlzdCB7XHJcbiAgICAgICAgICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tcnRsIHtcclxuICAgICAgICA+ICN7JHNwbGlkZS1yb290fV9fdHJhY2sgPiAjeyRzcGxpZGUtcm9vdH1fX2Fycm93cywgPiAjeyRzcGxpZGUtcm9vdH1fX2Fycm93cyB7XHJcbiAgICAgICAgICAgICN7JHNwbGlkZS1yb290fV9fYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgJi0tcHJldiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDFlbTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCggMSApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLS1uZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxZW07XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKCAtMSApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS10dGIge1xyXG4gICAgICAgID4gI3skc3BsaWRlLXJvb3R9X190cmFjayA+ICN7JHNwbGlkZS1yb290fV9fYXJyb3dzLCA+ICN7JHNwbGlkZS1yb290fV9fYXJyb3dzIHtcclxuICAgICAgICAgICAgI3skc3BsaWRlLXJvb3R9X19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSggLTUwJSwgMCApO1xyXG5cclxuICAgICAgICAgICAgICAgICYtLXByZXYge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMWVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooIC05MGRlZyApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLS1uZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWiggOTBkZWcgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gI3skc3BsaWRlLXJvb3R9X19wYWdpbmF0aW9uIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgYm90dG9tOiA1MCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIHJpZ2h0OiAuNWVtO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSggMCwgNTAlICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIiRzcGxpZGVfY2Fyb3VzZWwtYXJyb3ctc3BhY2U6IDUxcHg7XHJcbiRzcGxpZGVfY2Fyb3VzZWwtdG9wLXNwYWNlLWRlc2t0b3A6IDQ4cHg7XHJcbiRzcGxpZGVfY2Fyb3VzZWwtYm90dG9tLXNwYWNlLWRlc2t0b3A6IDQ4cHg7XHJcbiRzcGxpZGVfY2Fyb3VzZWwtZGVza3RvcC1icmVha3BvaW50OiAkc2NyZWVuLXNtO1xyXG4kc3BsaWRlX2Nhcm91c2VsLW5hdGl2ZS1pbWFnZS1icmVha3BvaW50LWRlc2t0b3A6ICRzY3JlZW4teHhsOyAvLyBicmVrcG9pbnQgZGVza3RvcCBhYmxlIHRvIGRpc3BsYXkgd2l0aCBpbWFnZSBmdWxsIHNpemUgd2l0aG91dCBzY2FsaW5nXHJcblxyXG4uc3BsaWRlIHtcclxuICAgIC8vbWFyZ2luOiAkc3BsaWRlX2Nhcm91c2VsLXRvcC1zcGFjZS1kZXNrdG9wIC0xNXB4ICRzcGxpZGVfY2Fyb3VzZWwtYm90dG9tLXNwYWNlLWRlc2t0b3A7XHJcbiAgICAvL3dpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcclxuXHJcbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc3BsaWRlX2Nhcm91c2VsLWRlc2t0b3AtYnJlYWtwb2ludCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nOiAwICRzcGxpZGVfY2Fyb3VzZWwtYXJyb3ctc3BhY2U7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fc2xpZGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fYXJyb3cge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDQ4cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQ4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggMzBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcclxuICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkoLjA2KTtcclxuICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkoLjApO1xyXG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSguMTIpO1xyXG5cclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBidXR0b24tdGFiLW5hdmlnYXRpb247XHJcblxyXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzcGxpZGVfY2Fyb3VzZWwtZGVza3RvcC1icmVha3BvaW50KSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZbZGlzYWJsZWRdIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC4xMjtcclxuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tcHJldiB7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMXB4IGNlbnRlcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC10ZXh0KTtcclxuXHJcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzcGxpZGVfY2Fyb3VzZWwtZGVza3RvcC1icmVha3BvaW50KSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19hcnJvdy1sZWZ0KCRwcm9qZWN0LXRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1uZXh0IHtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTFweCBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX2Fycm93LXJpZ2h0KCRwcm9qZWN0LXRleHQpO1xyXG5cclxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNwbGlkZV9jYXJvdXNlbC1kZXNrdG9wLWJyZWFrcG9pbnQpIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX2Fycm93LXJpZ2h0KCRwcm9qZWN0LXRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3BhZ2luYXRpb24ge1xyXG4gICAgICAgIGJvdHRvbTogLTM2cHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTZweDtcclxuXHJcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNwbGlkZV9jYXJvdXNlbC1kZXNrdG9wLWJyZWFrcG9pbnQpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgLy93aWR0aDogMzhweDtcclxuICAgICAgICAgICAgLy9oZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX3BhZ2Uge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC10ZXh0O1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAuMjU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yNTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlndXJlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHByb2plY3QtZGlzYWJsZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgdG9wOiAtMTAwJTtcclxuICAgICAgICAgICAgYm90dG9tOiAtMTAwJTtcclxuICAgICAgICAgICAgbGVmdDogLTEwMCU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc3BsaWRlX2Nhcm91c2VsLW5hdGl2ZS1pbWFnZS1icmVha3BvaW50LWRlc2t0b3ApIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmxhenkge1xyXG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fY2FudmFzIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNwbGlkZV9jYXJvdXNlbC1uYXRpdmUtaW1hZ2UtYnJlYWtwb2ludC1kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fYWN0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNsaWRlciB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5zcGxpZGVfX2Fycm93IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAgICYtLXByZXYge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1uZXh0IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNsaWRlci1mdWxsX3dpZHRoIHtcclxuICAgIC5zcGxpZGUge1xyXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzcGxpZGVfY2Fyb3VzZWwtZGVza3RvcC1icmVha3BvaW50KSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zcGxpZGVfX2Fycm93IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAgICYtLXByZXYge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1uZXh0IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIEN1c3RvbSB2YXJpYWJsZXMgaGVyZVxuXG4vLyBjb2xvcnMgYnJhbmRib29rXG4kcHJvamVjdC11bmljZWY6ICMwMEFFRUY7XG4kcHJvamVjdC1wYW50b25lLTM1NjogIzAwODMzRDtcbiRwcm9qZWN0LXBhbnRvbmUtMzc2OiAjODBCRDQxO1xuJHByb2plY3QtcGFudG9uZS03NTQ4OiAjRkZDMjBFO1xuJHByb2plY3QtcGFudG9uZS0xNTA1OiAjRjI2QTIxO1xuJHByb2plY3QtcGFudG9uZS00ODU6ICNFMjIzMUE7XG4kcHJvamVjdC1wYW50b25lLTIyMTogIzk2MUE0OTtcbiRwcm9qZWN0LXBhbnRvbmUtMjYxMzogIzZBMUU3NDtcbiRwcm9qZWN0LXBhbnRvbmUtd2FybS1ncmV5LTE6ICNEOEQxQzk7XG4kcHJvamVjdC1wYW50b25lLWNvb2wtZ3JleS05OiAjNzc3Nzc5O1xuJHByb2plY3QtcGFudG9uZS1ibGFjazogIzJEMjkyNjtcbiRwcm9qZWN0LXBhbnRvbmUtNzY4NTogIzM3NEVBMjtcblxuLy8gcHNkIHdlYnBhZ2UgY29sb3JzXG4kcHJvamVjdC13aGl0ZTogI2ZmZjtcbiRwcm9qZWN0LWJsdWU6ICRwcm9qZWN0LXVuaWNlZjtcbiRwcm9qZWN0LWJsdWUtaG92ZXI6ICMwMDlhZTA7XG4kcHJvamVjdC1ibHVlLWw4MDA6ICNkMmVlZjk7XG4kcHJvamVjdC1ibHVlLWw3MDA6ICM3ZmQyZjE7XG4kcHJvamVjdC1ibHVlLWw5MDA6ICNlMWY0ZmQ7XG4kcHJvamVjdC1ibHVlLWw5NTA6ICNmNWZjZmU7XG4kcHJvamVjdC1ibHVlLWw1MDA6ICMwN2JhZmQ7XG4kcHJvamVjdC1ibHVlLWw2MDA6ICMyMmI5ZjE7XG4kcHJvamVjdC1ibHVlLWw2NTA6ICM5YmRhZjI7XG4kcHJvamVjdC1ibHVlLWQ1MDA6ICMwMGE1ZTM7XG4kcHJvamVjdC1ibHVlLWQ2MDA6ICMwMGEzZTA7XG4kcHJvamVjdC1ibGFjazogIzIwMWQxZDtcbiRwcm9qZWN0LWdyYXktbDMwMDogI2M0YzRjNDtcbiRwcm9qZWN0LWdyYXktbDQwMDogI2QwZDJkMztcbiRwcm9qZWN0LWdyYXktbDUwMDogI2Q2ZDhkYTtcbiRwcm9qZWN0LWdyYXktbDYwMDogI2U2ZTZlNjtcbiRwcm9qZWN0LWdyYXktZDIwMDogIzgwN2U3ZTtcbiRwcm9qZWN0LWdyYXktZDMwMDogIzdhN2E3YTtcbiRwcm9qZWN0LWdyYXktZDQwMDogIzQxNDA0MjtcbiRwcm9qZWN0LWdyYXktZDUwMDogIzNkNDI0NDtcbiRwcm9qZWN0LWdyYXktZDYwMDogIzE4MTgxOTtcbiRwcm9qZWN0LWdyYXktZDcwMDogIzBlMGUwZTtcbiRwcm9qZWN0LW5hdnlibHVlOiAjMjY1M0I5O1xuJHByb2plY3QtbmF2eWJsdWUtaG92ZXI6IGxpZ2h0ZW4oJHByb2plY3QtbmF2eWJsdWUsIDYlKTtcbiRwcm9qZWN0LW5hdnlibHVlLWwyMDA6ICMzMTQyYWQ7XG4kcHJvamVjdC1uYXZ5Ymx1ZS1sMzAwOiAjNDk1YTk0O1xuJHByb2plY3QtbmF2eWJsdWUtbDQwMDogIzU5NWY4ZTtcbiRwcm9qZWN0LW5hdnlibHVlLWw1MDA6ICNhM2FkZWM7XG4kcHJvamVjdC1uYXZ5LWJsdWUtZGFyazogIzI5M2I5NTtcbiRwcm9qZWN0LXJlZDogI0ZGRkYwMDtcbiRwcm9qZWN0LXJlZC1ob3ZlcjogI2Q3ZDcwMDtcbiRwcm9qZWN0LW9sZC1yZWQ6ICNmZjQ1MDA7O1xuJHByb2plY3Qtb2xkLXJlZC1ob3ZlcjogI2Y1MmUwMDtcbiRwcm9qZWN0LW5ldy1yZWQ6ICNmZjAwMDA7O1xuJHByb2plY3QtbmV3LXJlZC1ob3ZlcjogI2YwMDAwMDtcbiRwcm9qZWN0LWdyZWVuOiAjNmVjMDFlO1xuJHByb2plY3QtZ3JlZW4taG92ZXI6ICM1NmI2MTY7XG4kcHJvamVjdC1vcmFuZ2U6ICNGMjZBMjE7XG4kcHJvamVjdC1vcmFuZ2UtaG92ZXI6ICNEMzVCMUY7XG4kcHJvamVjdC15ZWxsb3c6ICNmOWM0MTI7XG4kcHJvamVjdC1vcmFuZ2U6ICRwcm9qZWN0LXBhbnRvbmUtMTUwNTtcblxuLy9cbiRwcm9qZWN0LXByaW1hcnk6ICRwcm9qZWN0LWJsdWU7XG4kcHJvamVjdC1wcmltYXJ5LXdlbGw6ICMwMGEzZTA7IC8vIG1lbnUgcGFuZWwgbW9iaWxlXG4kcHJvamVjdC10ZXh0OiAkcHJvamVjdC1ibGFjaztcbiRwcm9qZWN0LXRyYW5zcGFyZW50OiByZ2JhKDAsIDAsIDAsIDApO1xuJHByb2plY3QtdHJhbnNwYXJlbnQtaG92ZXI6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRwcm9qZWN0LWVycm9yOiAkcHJvamVjdC1uZXctcmVkO1xuJHByb2plY3Qtd2FybmluZzogJHByb2plY3Qtb3JhbmdlO1xuJHByb2plY3QtZGlzYWJsZWQ6ICRwcm9qZWN0LWdyYXktbDUwMDtcblxuLy8gZ3JpZFxuJHNpdGUtY29udGFpbmVyOiAxMzY5cHg7XG4kc2l0ZS1jb250YWluZXItbmFycm93OiAxMjg0cHg7XG5cbiRzY3JlZW4teHh4czogMzIwcHg7XG4kc2NyZWVuLXh4czogMzc1cHg7XG4kc2NyZWVuLXhzOiA0ODBweDtcbiRzY3JlZW4tc206IDc2OHB4O1xuJHNjcmVlbi1tZDogOTkycHg7XG4kc2NyZWVuLWxnOiAxMjAwcHg7XG4kc2NyZWVuLXhsOiAxNDAwcHg7XG4kc2NyZWVuLXh4bDogMTY1NnB4O1xuJHNjcmVlbi1oZDogMTg5MHB4O1xuIiwiLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb2xvcjogcmdiYSgkcHJvamVjdC1ibGFjaywgMC4zKTtcbn1cblxuLm1kYy1tZW51LXN1cmZhY2Uge1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICBzY3JvbGxiYXItY29sb3I6ICRwcm9qZWN0LWdyYXktbDUwMCAkcHJvamVjdC13aGl0ZTtcbiAgICB6LWluZGV4OiAyMDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWdyYXktbDUwMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHByb2plY3Qtd2hpdGU7XG4gICAgfVxuXG4gICAgJi0tYW5jaG9yIHtcbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tZGMtaWNvbi1idXR0b24ge1xuICAgICYubWF0ZXJpYWwtaWNvbnMge1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1hdGVyaWFsSWNvbnNSb3VuZFdlYiwgc2Fucy1zZXJpZjtcbiAgICB9XG59XG5cbi5tZGMtcmFkaW8ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZGMtcmFkaW9fX3JpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbn1cblxuLm1kYy1tZW51IHtcbiAgICAubWRjLWxpc3QtaXRlbSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5oZWxwZXJzIHtcbiAgICAmX19qb2luIHtcbiAgICAgICAgJi0tYmx1ZWw1MDAtYmxhbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZS1sNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5oZXJvIHtcbiAgICAmLS1ob21lcGFnZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1NDZweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMikgMjMlLCByZ2JhKDAsIDAsIDAsIDApIDQyJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC01NDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaG9tZS1zbGlkZXIge1xuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgJl9fc2xpZGUge1xuICAgICAgICAgICAgaGVpZ2h0OiA4MHZoO1xuICAgICAgICB9XG4gICAgICAgICZfX2ltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fY2FudmFzIHtcbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXBhbnRvbmUtd2FybS1ncmV5LTE7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaWUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhvbWUtc2xpZGVyX19zbGlkZS0tdmlkZW8gJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmxhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXBhbnRvbmUtd2FybS1ncmV5LTE7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgLmllICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIGNhbnZhcyArIHBpY3R1cmUgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX192aWRlbyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByZWxvYWQgJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FudmFzIH4gJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgICAgICAgIHRvcDogLTEwMCU7XG4gICAgICAgICAgICBib3R0b206IC0xMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcm91c2VsLWNvbnRyb2wtcHJldiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fbW9iaWxlLXZpZGVvLWNvdmVyIHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RlYXNlciB7XG4gICAgICAgIGhlaWdodDogNjAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTUwcHg7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzNnB4KTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMCA1MHB4O1xuICAgICAgICAgICAgYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgICAgICByaWdodDogLTEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRzaXRlLWNvbnRhaW5lciAtIDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhvbWUtc2xpZGVyX19zbGlkZS0tY2VudGVyICYge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ob21lLXNsaWRlcl9fc2xpZGUtLWxlZnQgJiB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ob21lLXNsaWRlcl9fc2xpZGUtLXJpZ2h0ICYge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWxpZ24tbGVmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgICZfX2FsaWduLXJpZ2h0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1wcmltYXJ5O1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxNnB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNTk1dncgMS4xOTR2dzsgLy8gNXB4IDIzcHhcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4wOXZ3OyAvLyAyMXB4XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMTVweCAwIDAgMDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsYWNrO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG5cbiAgICAgICAgJi1sZWZ0IHtcbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi1yaWdodCB7XG4gICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgLjMpOyAvLyAwIDEwcHggMzJweFxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMS4wMzh2dyAwIDAgMDsgLy8gMjBweCAwIDAgMFxuICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4OyAvLyA2MnB4XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwLjUxOXZ3IDEuNjYxdncgcmdiYSgwLCAwLCAwLCAuMyk7IC8vIDAgMTBweCAzMnB4XG4gICAgICAgIH1cblxuXHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcblx0XHRcdGZvbnQtc2l6ZTogNDhweDsgLy8gNjJweFxuXHRcdH1cbiAgICB9XG5cbiAgICAmX190ZXh0LWxpbmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGVuZDtcblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgfVxuXG4gICAgICAmLWxlZnQge1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHQgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLXJpZ2h0IHtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0ICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgYWxpZ24tY29udGVudDogZW5kO1xuXG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1vcHRpb25hbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG5cdFx0QG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuXHRcdGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRcdG1pbi13aWR0aDogdW5zZXQgIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDU2cHggIWltcG9ydGFudDtcblx0XHRtaW4taGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNTU3dnc7IC8vIDMwcHhcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5nbGlkZV9fYnVsbGV0cyB7XG5cblxuICAgIH1cblxuICAgIC5nbGlkZV9fYnVsbGV0IHtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJvamVjdC1wYW50b25lLXdhcm0tZ3JleS0xO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHByb2plY3QtcGFudG9uZS13YXJtLWdyZXktMTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1wcmltYXJ5O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdsaWRlX19hcnJvdyB7XG5cbiAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzNiUyMDM2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMjcsMi4xM2ExLjEzLDEuMTMsMCwwLDEtLjMzLjhMMTEuNzIsMThsMTUsMTUuMDdhMS4xMywxLjEzLDAsMCwxLDAsMS42LDEuMTIsMS4xMiwwLDAsMS0xLjU5LDBMOS4zMywxOC44YTEuMTMsMS4xMywwLDAsMSwwLTEuNkwyNS4wOCwxLjMzYTEuMTMsMS4xMywwLDAsMSwxLjkyLjhaJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjNkNmQ4ZGElMjIlMjBzdHJva2Utd2lkdGglM0QlMjIzJTIyLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICAgICBsZWZ0OiAtNXB4O1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogMTUwMHB4KSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzNiUyMDM2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNOSwyLjEzYTEuMTMsMS4xMywwLDAsMCwuMzMuOEwyNC4yOCwxOGwtMTUsMTUuMDdhMS4xMywxLjEzLDAsMCwwLDAsMS42LDEuMTIsMS4xMiwwLDAsMCwxLjU5LDBMMjYuNjcsMTguOGExLjEzLDEuMTMsMCwwLDAsMC0xLjZMMTAuOTIsMS4zM0ExLjEzLDEuMTMsMCwwLDAsOSwyLjEzWiUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzZDZkOGRhJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMyUyMi8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgcmlnaHQ6IC01cHg7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAxNTAwcHgpIHtcbiAgICAgICAgICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgJl9fdGV4dC1saW5lIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibHVlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RlYXNlcl9fYWxpZ24tbGVmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RlYXNlcl9fYWxpZ24tcmlnaHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBjb2xvcjogJHByb2plY3QtcHJpbWFyeTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRmb250LXNpemU6IDM2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVybyArICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9yZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUycHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHByb2plY3QtYmx1ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX21vcmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIGhlaWdodDogNDVweDtcbiAgICB9XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmV2IHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzRweCAzNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDZweCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAudGFiLW5hdmlnYXRpb24gJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1ibGFjaywgMC4wMyk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctcmlnaHQoJHByb2plY3QtYmxhY2spO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDM0cHggMzRweDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgNnB4IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTIwcHg7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO31cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC50YWItbmF2aWdhdGlvbiAmIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsYWNrLCAwLjAzKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19hcnJvdy1yaWdodCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIudGVhc2VyIHtcbiAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHMpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICAgICAgICBmbGV4OiAxIDAgY2FsYyg1MCUgLSAxMnB4KTtcbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0LmdsaWRlLS1zd2lwZWFibGUge1xuXHRcdFx0Y3Vyc29yOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgZmxleDogMSAwIGNhbGMoMzMuMzMzJSAtIDMwcHgpO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmLS1tb2JpbGUge1xuICAgICAgICBtYXJnaW46IDAgMjBweCA1MHB4O1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDMwcHggMCAwO1xuICAgICAgICAgICAgZmxleDogMSAwIGNhbGMoMzMuMzMzJSAtIDMwcHgpO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhbnZhcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXBhbnRvbmUtd2FybS1ncmV5LTE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIC5pZSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXByaW1hcnk7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xuICAgICAgICBoZWlnaHQ6IDg5cHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCA0MHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUtdGV4dCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmLS1ncmFkaWVudDphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwwLDAsMCkgMjAlLCAkcHJvamVjdC1uYXZ5Ymx1ZSAxMDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBib3R0b206IDgwcHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgICAgICAgYm90dG9tOiAxMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgcGFkZGluZzogMjBweCAyNnB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMzZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXllbGxvdyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC15ZWxsb3cgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibGFjayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm90dG9tOiAyOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMjBweCAyNnB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgY2FudmFzICsgcGljdHVyZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSguMTUpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tdGFiLW5hdmlnYXRpb247XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3Qtd2hpdGUsIDAuMDgpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5uZXdzbGV0dGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZTtcbiAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMzVweDtcbiAgICB9XG5cbiAgICAmX19maWd1cmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIGNhbnZhcyArIHBpY3R1cmUgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zcGFjZXIge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1sZyAtIDEpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtMC4ycHg7XG4gICAgICAgICAgICB3aWR0aDogNDguMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0OC4ycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctcmlnaHQoJHByb2plY3Qtd2hpdGUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLWJ1dHRvbl9fbGFiZWwge1xuICAgICAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1sZyAtIDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDY4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDExMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6JHByb2plY3Qtd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2hlY2tib3gge1xuICAgICAgICAvL0BpbmNsdWRlIG1kYy1jaGVja2JveC1jb250YWluZXItY29sb3JzKCR1bm1hcmtlZC1zdHJva2UtY29sb3IsICR1bm1hcmtlZC1maWxsLWNvbG9yLCAkbWFya2VkLXN0cm9rZS1jb2xvciwgJG1hcmtlZC1maWxsLWNvbG9yLCAkZ2VuZXJhdGUta2V5ZnJhbWVzKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWNvbnRhaW5lci1jb2xvcnMoJHByb2plY3QtbmF2eWJsdWUtbDUwMCwgJHByb2plY3QtdHJhbnNwYXJlbnQsICRwcm9qZWN0LW5hdnlibHVlLWw1MDAsICRwcm9qZWN0LXRyYW5zcGFyZW50LCAnZmFsc2UnKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWluay1jb2xvcigkcHJvamVjdC1uYXZ5Ymx1ZS1sNTAwKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWZvY3VzLWluZGljYXRvci1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG5cbiAgICB9XG5cbiAgICAud2FzLXZhbGlkYXRlZCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtyZXF1aXJlZF0ge1xuICAgICAgICAmOmludmFsaWQge1xuICAgICAgICAgICAgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LXBhbnRvbmUtMTUwNSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LWdyYXktZDMwMDtcbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsLFxuICAgIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtZ3JheS1kMzAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LWdyYXktZDMwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgfVxuXG4gICAgLndhcy12YWxpZGF0ZWQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcGFudG9uZS0xNTA1O1xuICAgIH1cblxuICAgIC53YXMtdmFsaWRhdGVkIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB+IC5tZGMtZmxvYXRpbmctbGFiZWwsXG4gICAgLndhcy12YWxpZGF0ZWQgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OnJlcXVpcmVkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1wYW50b25lLTE1MDU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2plY3QtcGFudG9uZS0xNTA1O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAubWRjLWZvcm0tZmllbGQge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmF2eWJsdWUtbDUwMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDExcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy5tZGMtY2hlY2tib3gtLWludmFsaWQge1xuICAgIC8vICAgIH4gbGFiZWwge1xuICAgIC8vICAgICAgICAvL2NvbG9yOiAkcHJvamVjdC1wYW50b25lLTE1MDU7XG4gICAgLy9cbiAgICAvLyAgICAgICAgYSB7XG4gICAgLy8gICAgICAgICAgICAvL2NvbG9yOiAkcHJvamVjdC1wYW50b25lLTE1MDU7XG4gICAgLy8gICAgICAgICAgICAvL3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIC8vICAgICAgICB9XG4gICAgLy8gICAgfVxuICAgIC8vfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJHByb2plY3QtZ3JheS1kMzAwKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIzcHg7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1sZyAtIDEpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAvLy5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAvLyAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLWxnIC0gMSkge1xuICAgICAgICAvLyAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICAvLyAgICB9XG4gICAgICAgIC8vfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgICAgICAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWxpbmUtcmlwcGxlIHtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgfVxuXG5cbiAgICAubWRjLWZvcm0tZmllbGQgPiBsYWJlbCB7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSkgc2NhbGUoLjcpO1xuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAmX19tb3JlIHtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDAgMCAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHByb2plY3QtcHJpbWFyeTtcbiAgICAgICAgcGFkZGluZzogMTRweCAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibHVlO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICAgIG1hcmdpbjogMjRweCAwIDAgMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFydGljbGUtdmlldyAmICB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMThweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ3JvdXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjZweCk7XG4gICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICBjb2xvcjogJHByb2plY3QtcGFudG9uZS0xNTA1O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQ6dmFsaWQgfiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53YXMtdmFsaWRhdGVkIGlucHV0OmludmFsaWQgfiAuc2l0ZS1mb3JtX192YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC53YXMtdmFsaWRhdGVkIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAuc2l0ZS1mb3JtX192YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAud2FzLXZhbGlkYXRlZCAuc2l0ZS1mb3JtX19jaGVja2JveC0tcmVxdWlyZWQuc2l0ZS1mb3JtX19jaGVja2JveC0tdW5jaGVja2VkIH4gLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG1hcmdpbjogNnB4IDAgMCAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaXRlLWZvcm1fX3NlcnZlci12YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNnB4KTtcbiAgICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICAgIGxlZnQ6IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1wYW50b25lLTE1MDU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZXJ2ZXItc2lkZS12YWxpZGF0ZWQgLnNlcnZlci1zaWRlLS1pbnZhbGlkIH4gLnNpdGUtZm9ybV9fc2VydmVyLXZhbGlkYXRpb24tdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC53YXMtdmFsaWRhdGVkIC5tZGMtY2hlY2tib3gtLWludmFsaWQgfiAuc2l0ZS1mb3JtX192YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiA0MXB4O1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX3JpcHBsZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3Qtd2hpdGUsIDAuMykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cblxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZGVuc2l0eS9mdW5jdGlvbnNcIiBhcyBkZW5zaXR5LWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmxvYXRpbmctbGFiZWwvbWl4aW5zXCIgYXMgZmxvYXRpbmctbGFiZWwtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9mbG9hdGluZy1sYWJlbC92YXJpYWJsZXNcIiBhcyBmbG9hdGluZy1sYWJlbC12YXJpYWJsZXM7XG5AdXNlIFwiQG1hdGVyaWFsL2xpbmUtcmlwcGxlL21peGluc1wiIGFzIGxpbmUtcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lL21peGluc1wiIGFzIG5vdGNoZWQtb3V0bGluZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL25vdGNoZWQtb3V0bGluZS92YXJpYWJsZXNcIiBhcyBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCIgYXMgcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL2Z1bmN0aW9uc1wiIGFzIHJpcHBsZS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCIgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIiBhcyBzaGFwZS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiIGFzIHR5cG9ncmFwaHktbWl4aW5zO1xuQHVzZSBcImhlbHBlci10ZXh0L21peGluc1wiIGFzIGhlbHBlci10ZXh0LW1peGlucztcbkB1c2UgXCJjaGFyYWN0ZXItY291bnRlci9taXhpbnNcIiBhcyBjaGFyYWN0ZXItY291bnRlci1taXhpbnM7XG5AdXNlIFwiaWNvbi9taXhpbnNcIiBhcyBpY29uLW1peGlucztcbkB1c2UgXCJpY29uL3ZhcmlhYmxlc1wiIGFzIGljb24tdmFyaWFibGVzO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuQG1peGluIHdpdGhvdXQtcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIEJhc2VsaW5lXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGRcbiAgLm1kYy10ZXh0LWZpZWxkIHtcbiAgICBAaW5jbHVkZSBfYmFzZSgkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgQGluY2x1ZGUgX2lucHV0KCRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1zZWxlY3Rvcl8ge1xuICAgICAgQGluY2x1ZGUgX2lucHV0LXBsYWNlaG9sZGVyKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHNob3cgcGxhY2Vob2xkZXIgZm9yIHRleHQgZmllbGRzIHRoYXQgaGFzIG5vXG4gICAgLy8gbGFiZWwgYW5kIHNob3cgb25seSBvbiBmb2N1c2VkIHN0YXRlIHdoZW4gbGFiZWwgaXMgcHJlc2VudC5cbiAgICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aCAmLFxuICAgIC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgJixcbiAgICAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgJiB7XG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1zZWxlY3Rvcl8ge1xuICAgICAgICBAaW5jbHVkZSBfaW5wdXQtcGxhY2Vob2xkZXItdmlzaWJsZSgkcXVlcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgge1xuICAgIEBpbmNsdWRlIF9hZmZpeCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAubWRjLXRleHQtZmllbGQtLWxhYmVsLWZsb2F0aW5nICYsXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCAmIHtcbiAgICAgIEBpbmNsdWRlIF9hZmZpeC12aXNpYmxlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgge1xuICAgIEBpbmNsdWRlIF9wcmVmaXgoJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCAmIHtcbiAgICAgIEBpbmNsdWRlIF9wcmVmaXgtZW5kLWFsaWduZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCB7XG4gICAgQGluY2x1ZGUgX3N1ZmZpeCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkICYge1xuICAgICAgQGluY2x1ZGUgX3N1ZmZpeC1lbmQtYWxpZ25lZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAvLyBNb3ZlIGxhYmVsIHdoZW4gdGV4dC1maWVsZCBnZXRzIGF1dG8tZmlsbGVkIGluIENocm9tZS5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotd2Via2l0LWF1dG9maWxsICsgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoLjc1KTtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBWYXJpYW50c1xuXG4gIC5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIHtcbiAgICBAaW5jbHVkZSBfZmlsbGVkKCRxdWVyeSk7XG5cbiAgICAmLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfZmlsbGVkLW5vLWxhYmVsKCRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgb3V0bGluZWRfKCRxdWVyeSk7XG4gIH1cblxuICAvLyBPdGhlciBWYXJpYXRpb25zXG5cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgdGV4dGFyZWFfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aCB7XG4gICAgQGluY2x1ZGUgZnVsbHdpZHRoXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiB7XG4gICAgJi5tZGMtdGV4dC1maWVsZC0tZmlsbGVkIHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGVhZGluZy1pY29uXygkcXVlcnkpO1xuICAgIH1cblxuICAgICYubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgICAgIEBpbmNsdWRlIG91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uXygkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgICAmLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQge1xuICAgICAgQGluY2x1ZGUgX3dpdGgtdHJhaWxpbmctaWNvbigkcXVlcnkpO1xuICAgIH1cblxuICAgICYubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgICAgIEBpbmNsdWRlIF9vdXRsaW5lZC13aXRoLXRyYWlsaW5nLWljb24oJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ge1xuICAgICYubWRjLXRleHQtZmllbGQtLWZpbGxlZCB7XG4gICAgICBAaW5jbHVkZSBfd2l0aC1sZWFkaW5nLWFuZC10cmFpbGluZy1pY29uKCRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVxdWlyZWQtbGFiZWwtYXN0ZXJpc2tfIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICBjb250ZW50OiBcIipcIjtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0ZXh0LWZpZWxkLWhlbHBlci10ZXh0XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkICsgJiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyaWFibGVzLiRoZWxwZXItbGluZS1wYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcmlhYmxlcy4kaGVscGVyLWxpbmUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcblxuICAvLyBtZGMtZm9ybS1maWVsZCB0d2Vha3MgdG8gYWxpZ24gdGV4dCBmaWVsZCBsYWJlbCBjb3JyZWN0bHlcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgLm1kYy1mb3JtLWZpZWxkID4gLm1kYy10ZXh0LWZpZWxkICsgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuXG4gIC8vIFN0YXRlc1xuICAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICAgIEBpbmNsdWRlIGZvY3VzZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICAgIEBpbmNsdWRlIGludmFsaWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZF8oJHF1ZXJ5KTtcblxuICAgICYubWRjLXRleHQtZmllbGQtLWZpbGxlZCB7XG4gICAgICBAaW5jbHVkZSBfZGlzYWJsZWQtZmlsbGVkKCRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkLS1lbmQtYWxpZ25lZCB7XG4gICAgQGluY2x1ZGUgZW5kLWFsaWduZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGQtLWx0ci10ZXh0IHtcbiAgICBAaW5jbHVkZSBfbHRyLXRleHQoJHF1ZXJ5KTtcblxuICAgICYubWRjLXRleHQtZmllbGQtLWVuZC1hbGlnbmVkIHtcbiAgICAgIEBpbmNsdWRlIF9sdHItdGV4dC1lbmQtYWxpZ25lZCgkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzXG4vLyBmcm9tIHRoZSBvdGhlciB0ZXh0IGZpZWxkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXRleHQtZmllbGQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLm1kYy10ZXh0LWZpZWxkLS1maWxsZWQge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCk7XG4gIH1cblxuICAje3ZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldH0ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMudGFyZ2V0LWNvbW1vbigkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBkZW5zaXR5IHNjYWxlIGZvciBkZWZhdWx0IHRleHQgZmllbGQgdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgU3RyaW5nfSAkZGVuc2l0eS1zY2FsZSAtIERlbnNpdHkgc2NhbGUgdmFsdWUgZm9yIGNvbXBvbmVudC4gU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGUgdmFsdWVzIGAtNGAsXG4vLy8gICAgIGAtM2AsIGAtMmAsIGAtMWAsIGAwYC4gRGVmYXVsdCBpcyBgMGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsIFNldHMgdGhlIG1pbmltdW0gaGVpZ2h0IGZvclxuLy8vICAgICBmaWxsZWQgdGV4dGZpZWxkcyBhdCB3aGljaCB0byBhbGxvdyBmbG9hdGluZyBsYWJlbHMuXG4vLy9cbkBtaXhpbiBkZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbDogdmFyaWFibGVzLiRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkaGVpZ2h0OiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSBoZWlnaHQoJGhlaWdodCwgJG1pbmltdW0taGVpZ2h0LWZvci1maWxsZWQtbGFiZWw6ICRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsLCAkcXVlcnk6ICRxdWVyeSk7XG4gIC8vIFRPRE8oYi8xNTE4MzkyMTkpOiByZXNpemUgaWNvbnMgYW5kIGFkanVzdCBsYWJlbCBwb3NpdGlvblxuICAvLyBAaWYgJGRlbnNpdHktc2NhbGUgPCAwIHtcbiAgLy8gICBAaW5jbHVkZSBpY29uLW1peGlucy5zaXplKGljb24tdmFyaWFibGVzLiRkZW5zZS1pY29uLXNpemUpO1xuICAvLyB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSBmb3Igb3V0bGluZWQgdGV4dCBmaWVsZCAoRXhjbHVkaW5nIG91dGxpbmVkIHRleHQgZmllbGQgd2l0aCBsZWFkaW5nIGljb24pLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgfCBTdHJpbmd9ICRkZW5zaXR5LXNjYWxlIC0gRGVuc2l0eSBzY2FsZSB2YWx1ZSBmb3IgY29tcG9uZW50LiBTdXBwb3J0ZWQgZGVuc2l0eSBzY2FsZSB2YWx1ZXMgYC00YCxcbi8vLyAgICAgYC0zYCwgYC0yYCwgYC0xYCwgYDBgLiBEZWZhdWx0IGlzIGAwYC5cbi8vL1xuQG1peGluIG91dGxpbmVkLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJGRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIEBpbmNsdWRlIG91dGxpbmVkLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIC8vIFRPRE8oYi8xNTE4MzkyMTkpOiByZXNpemUgaWNvbnMgYW5kIGFkanVzdCBsYWJlbCBwb3NpdGlvblxuICAvLyBAaWYgJGRlbnNpdHktc2NhbGUgPCAwIHtcbiAgLy8gICBAaW5jbHVkZSBpY29uLW1peGlucy5zaXplKGljb24tdmFyaWFibGVzLiRkZW5zZS1pY29uLXNpemUpO1xuICAvLyB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSBmb3Igb3V0bGluZWQgdGV4dCBmaWVsZCB3aXRoIGxlYWRpbmcgaWNvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgU3RyaW5nfSAkZGVuc2l0eS1zY2FsZSAtIERlbnNpdHkgc2NhbGUgdmFsdWUgZm9yIGNvbXBvbmVudC4gU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGUgdmFsdWVzIGAtNGAsXG4vLy8gICAgIGAtM2AsIGAtMmAsIGAtMWAsIGAwYC4gRGVmYXVsdCBpcyBgMGAuXG4vLy9cbkBtaXhpbiBvdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkaGVpZ2h0OiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAvLyBUT0RPKGIvMTUxODM5MjE5KTogcmVzaXplIGljb25zIGFuZCBhZGp1c3QgbGFiZWwgcG9zaXRpb25cbiAgLy8gQGlmICRkZW5zaXR5LXNjYWxlIDwgMCB7XG4gIC8vICAgQGluY2x1ZGUgaWNvbi1taXhpbnMuc2l6ZShpY29uLXZhcmlhYmxlcy4kZGVuc2UtaWNvbi1zaXplKTtcbiAgLy8gfVxufVxuXG4vLy9cbi8vLyBTZXRzIGhlaWdodCBvZiBkZWZhdWx0IHRleHQgZmllbGQgdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsIFNldHMgdGhlIG1pbmltdW0gaGVpZ2h0IGZvclxuLy8vICAgICBmaWxsZWQgdGV4dGZpZWxkcyBhdCB3aGljaCB0byBhbGxvdyBmbG9hdGluZyBsYWJlbHMuXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuQG1peGluIGhlaWdodChcbiAgJGhlaWdodCxcbiAgJG1pbmltdW0taGVpZ2h0LWZvci1maWxsZWQtbGFiZWw6IHZhcmlhYmxlcy4kbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgQGlmICRoZWlnaHQgPCAkbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbCB7XG4gICAgQGluY2x1ZGUgX2ZpbGxlZC1uby1sYWJlbCgkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBoZWlnaHQgb2Ygb3V0bGluZWQgdGV4dCBmaWVsZCB2YXJpYW50IChFeGNsdWRpbmcgb3V0bGluZWQgdGV4dCBmaWVsZCB3aXRoIGxlYWRpbmcgaWNvbikuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5ZnJhbWUtc3VmZml4IC0gT3B0aW9uYWwgc3VmZml4IHRvIHVzZSBmb3IgZ2VuZXJhdGVkXG4vLy8gICAgIGZsb2F0aW5nIGxhYmVsIGtleWZyYW1lc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy9cbkBtaXhpbiBvdXRsaW5lZC1oZWlnaHQoXG4gICRoZWlnaHQsXG4gICRrZXlmcmFtZS1zdWZmaXg6IHRleHQtZmllbGQtb3V0bGluZWQtI3skaGVpZ2h0fSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJHBvc2l0aW9uWTogdmFyaWFibGVzLmdldC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15KCRoZWlnaHQpO1xuXG4gIC8vIEZsb2F0aW5nIGxhYmVsIHBvc2l0aW9uXG4gIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24tYWJzb2x1dGUoJHBvc2l0aW9uWSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC8vIEZsb2F0aW5nIGxhYmVsIGFuaW1hdGlvblxuICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuc2hha2UtYW5pbWF0aW9uKCRrZXlmcmFtZS1zdWZmaXgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGF0LXJvb3Qge1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1rZXlmcmFtZXMoJGtleWZyYW1lLXN1ZmZpeCwgJHBvc2l0aW9uWSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgaGVpZ2h0IG9mIG91dGxpbmVkIHRleHQgZmllbGQgd2l0aCBsZWFkaW5nIGljb24gdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXlmcmFtZS1zdWZmaXggLSBPcHRpb25hbCBzdWZmaXggdG8gdXNlIGZvciBnZW5lcmF0ZWRcbi8vLyAgICAgZmxvYXRpbmcgbGFiZWwga2V5ZnJhbWVzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuQG1peGluIG91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWhlaWdodChcbiAgJGhlaWdodCxcbiAgJGtleWZyYW1lLXN1ZmZpeDogbnVsbCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIG5lZWRlZCBiZWNhdXNlIHRleHRmaWVsZCBhcHBsaWVzIHRoZSBiZWxvdyBtaXhpblxuICAvLyBhbHJlYWR5IHRvIHR3byBzZWxlY3RvcnMgKG91dGxpbmVkICsgd2l0aC1sZWFkaW5nLWljb24pLiBUbyBvdmVycmlkZVxuICAvLyB0aGVtIHdpdGggYSBuZXcgbGFiZWwgcG9zaXRpb24gYW5kIGFuaW1hdGlvbiwgYW5vdGhlciBzZWxlY3RvciBpcyBuZWVkZWQuXG4gICYubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgICBAaW5jbHVkZSBfb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tZmxvYXRpbmctbGFiZWwtcG9zaXRpb24tYW5pbWF0aW9uKCRoZWlnaHQsICRrZXlmcmFtZS1zdWZmaXgsICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCBzZXRzIHRoZSBmbG9hdGluZyBsYWJlbCBwb3NpdGlvbiBhbmQgYW5pbWF0aW9ucyBmb3IgYSBnaXZlbiBoZWlnaHQuXG4vLyBUaGlzIG1peGluIGlzIHNlcGFyYXRlIHRvIGFsbG93IG91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWhlaWdodCgpIHRvXG4vLyBwcm92aWRlIGdyZWF0ZXIgc3BlY2lmaWNpdHkgb3ZlciB0aGUgZGVmYXVsdCBtaXhpbiB0aGF0IGFkZHMgc3R5bGVzIGZvclxuLy8gb3V0bGluZWQgd2l0aCBsZWFkaW5nIGljb25zLlxuQG1peGluIF9vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1mbG9hdGluZy1sYWJlbC1wb3NpdGlvbi1hbmltYXRpb24oXG4gICRoZWlnaHQsXG4gICRrZXlmcmFtZS1zdWZmaXg6IHRleHQtZmllbGQtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tI3skaGVpZ2h0fSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkcG9zaXRpb25ZOiB2YXJpYWJsZXMuZ2V0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXkoJGhlaWdodCk7XG5cbiAgLy8gRmxvYXRpbmcgbGFiZWwgcG9zaXRpb25cbiAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbi1hYnNvbHV0ZShcbiAgICAkcG9zaXRpb25ZLFxuICAgIHZhcmlhYmxlcy4kb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teCxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xuXG4gIC8vIEZsb2F0aW5nIGxhYmVsIGFuaW1hdGlvblxuICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuc2hha2UtYW5pbWF0aW9uKCRrZXlmcmFtZS1zdWZmaXgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGF0LXJvb3Qge1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1rZXlmcmFtZXMoXG4gICAgICAka2V5ZnJhbWUtc3VmZml4LFxuICAgICAgJHBvc2l0aW9uWSxcbiAgICAgIHZhcmlhYmxlcy4kb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5XG4gICAgKTtcbiAgfVxuXG4gICRrZXlmcmFtZS1zdWZmaXgtcnRsOiAjeyRrZXlmcmFtZS1zdWZmaXh9LXJ0bDtcbiAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1hbmltYXRpb24oJGtleWZyYW1lLXN1ZmZpeCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG4gIEBhdC1yb290IHtcbiAgICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuc2hha2Uta2V5ZnJhbWVzKFxuICAgICAgJGtleWZyYW1lLXN1ZmZpeC1ydGwsXG4gICAgICAkcG9zaXRpb25ZLFxuICAgICAgLSh2YXJpYWJsZXMuJG91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXgpLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgc2hhcGUgcmFkaXVzIG9mIGRlZmF1bHQgdGV4dCBmaWVsZCB2YXJpYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgU2hhcGUgcmFkaXVzIHZhbHVlIGluIGBweGAgb3IgaW4gcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRleHQtZmllbGQtaGVpZ2h0IEhlaWdodCBvZiBkZWZhdWx0IHRleHQgZmllbGQgdmFyaWFudC4gUmVxdWlyZWQgb25seSB3aGVuIGAkcmFkaXVzYCBpcyBpblxuLy8vICAgICBwZXJjZW50YWdlIHVuaXQgYW5kIGlmIHRleHQgZmllbGQgaGFzIGN1c3RvbSBoZWlnaHQuIERlZmF1bHRzIHRvIGB2YXJpYWJsZXMuJGhlaWdodGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcnRsLXJlZmxleGl2ZSBTZXQgdG8gdHJ1ZSB0byBmbGlwIHNoYXBlIHJhZGl1cyBpbiBSVEwgY29udGV4dC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbi8vL1xuQG1peGluIHNoYXBlLXJhZGl1cyhcbiAgJHJhZGl1cyxcbiAgJGRlbnNpdHktc2NhbGU6IHZhcmlhYmxlcy4kZGVuc2l0eS1zY2FsZSxcbiAgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaWYgbGlzdC5sZW5ndGgoJHJhZGl1cykgPiAyIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGNvbXBvbmVudCBkb2Vzbid0IGFsbG93IGN1c3RvbWl6aW5nIGFsbCBjb3JuZXJzXCI7XG4gIH1cblxuICAkaGVpZ2h0OiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICAkbWFza2VkLXJhZGl1czogc2hhcGUtZnVuY3Rpb25zLm1hc2stcmFkaXVzKCRyYWRpdXMsIDEgMSAwIDApO1xuXG4gIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoXG4gICAgc2hhcGUtZnVuY3Rpb25zLnJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJGhlaWdodCwgJG1hc2tlZC1yYWRpdXMpLFxuICAgICRydGwtcmVmbGV4aXZlLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG59XG5cbkBtaXhpbiB0ZXh0YXJlYS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLnNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSBjb2xvciBvZiB0aGUgdGV4dCBlbnRlcmVkIGludG8gYW4gZW5hYmxlZCB0ZXh0IGZpZWxkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGlucHV0IHRleHQgY29sb3IuXG4vLy9cbkBtaXhpbiBpbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSBjb2xvciBvZiB0aGUgZW50ZXJlZCB0ZXh0IGluIGEgZGlzYWJsZWQgdGV4dCBmaWVsZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBpbnB1dCB0ZXh0IGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGNvbG9yIG9mIHRoZSBwbGFjZWhvbGRlciBpbiBhbiBlbmFibGVkIHRleHQgZmllbGQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgcGxhY2Vob2xkZXIgdGV4dCBjb2xvci5cbi8vL1xuQG1peGluIHBsYWNlaG9sZGVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSBjb2xvciBvZiB0aGUgcGxhY2Vob2xkZXIgaW4gYSBkaXNhYmxlZCB0ZXh0IGZpZWxkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIHBsYWNlaG9sZGVyIHRleHQgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1wbGFjZWhvbGRlci1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXItY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRleHQgZmllbGQgb3IgdGV4dGFyZWEgd2hlbiBlbmFibGVkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGJhY2tncm91bmQgY29sb3IuXG4vLy9cbkBtaXhpbiBmaWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIGZpbGwtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRleHQgZmllbGQgb3IgdGV4dGFyZWEgd2hlbiBkaXNhYmxlZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgZmlsbC1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQ3VzdG9taXplcyB0aGUgdGV4dCBmaWVsZCBib3R0b20gbGluZSBjb2xvciBmb3IgdGhlIGZpbGxlZCB2YXJpYW50LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGJvdHRvbSBsaW5lIGNvbG9yLlxuLy8vXG5AbWl4aW4gYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGRpc2FibGVkIHRleHQgZmllbGQgYm90dG9tIGxpbmUgY29sb3IgZm9yIHRoZSBmaWxsZWQgdmFyaWFudC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBib3R0b20gbGluZSBjb2xvci5cbi8vL1xuQG1peGluIGRpc2FibGVkLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQ3VzdG9taXplcyB0aGUgaG92ZXIgdGV4dCBmaWVsZCBib3R0b20gbGluZSBjb2xvciBmb3IgdGhlIGZpbGxlZCB2YXJpYW50LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGJvdHRvbSBsaW5lIGNvbG9yLlxuLy8vXG5AbWl4aW4gaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgaG92ZXItYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGNvbG9yIG9mIHRoZSBkZWZhdWx0IGxpbmUgcmlwcGxlIG9mIHRoZSB0ZXh0IGZpZWxkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGxpbmUgcmlwcGxlIGNvbG9yLlxuLy8vXG5AbWl4aW4gbGluZS1yaXBwbGUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbGluZS1yaXBwbGUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIHRleHQgY29sb3Igb2YgdGhlIGxhYmVsIGluIGFuIGVuYWJsZWQgdGV4dCBmaWVsZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBsYWJlbCB0ZXh0IGNvbG9yLlxuLy8vXG5AbWl4aW4gbGFiZWwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbGFiZWwtaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSB0ZXh0IGNvbG9yIG9mIHRoZSBsYWJlbCBpbiBhIGRpc2FibGVkIHRleHQgZmllbGQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgbGFiZWwgdGV4dCBjb2xvci5cbi8vL1xuQG1peGluIGRpc2FibGVkLWxhYmVsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBsYWJlbC1pbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGJvcmRlciBjb2xvciBvZiB0aGUgb3V0bGluZWQgdGV4dCBmaWVsZCBvciB0ZXh0YXJlYS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBvdXRsaW5lIGJvcmRlciBjb2xvci5cbi8vL1xuQG1peGluIG91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSBvdXRsaW5lIGJvcmRlciBjb2xvciB3aGVuIHRoZSB0ZXh0IGZpZWxkIG9yIHRleHRhcmVhIGlzIGhvdmVyZWQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgb3V0bGluZSBib3JkZXIgY29sb3IuXG4vLy9cbkBtaXhpbiBob3Zlci1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIGhvdmVyLW91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIG91dGxpbmUgYm9yZGVyIGNvbG9yIHdoZW4gdGhlIHRleHQgZmllbGQgb3IgdGV4dGFyZWEgaXMgZm9jdXNlZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBvdXRsaW5lIGJvcmRlciBjb2xvci5cbi8vL1xuQG1peGluIGZvY3VzZWQtb3V0bGluZS1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWVuYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBmb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIG91dGxpbmUgYm9yZGVyIGNvbG9yIHdoZW4gdGhlIHRleHQgZmllbGQgb3IgdGV4dGFyZWEgaXMgZGlzYWJsZWQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgb3V0bGluZSBib3JkZXIgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLmNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGNhcmV0IGNvbG9yIG9mIHRoZSB0ZXh0IGZpZWxkIG9yIHRleHRhcmVhLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGNhcmV0IGNvbG9yLlxuLy8vXG5AbWl4aW4gY2FyZXQtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNhcmV0LWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBDdXN0b21pemVzIHRoZSBjb2xvciBvZiB0aGUgcHJlZml4IHRleHQgZm9yIGFuIGVuYWJsZWQgdGV4dCBmaWVsZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBwcmVmaXggdGV4dCBjb2xvci5cbi8vL1xuQG1peGluIHByZWZpeC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWVuYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBfcHJlZml4LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGNvbG9yIG9mIHRoZSBwcmVmaXggdGV4dCBmb3IgYSBkaXNhYmxlZCB0ZXh0IGZpZWxkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIHByZWZpeCB0ZXh0IGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtcHJlZml4LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBfcHJlZml4LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgdGhlIGNvbG9yIG9mIHRoZSBzdWZmaXggdGV4dCBmb3IgYW4gZW5hYmxlZCB0ZXh0IGZpZWxkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIHN1ZmZpeCB0ZXh0IGNvbG9yLlxuLy8vXG5AbWl4aW4gc3VmZml4LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIF9zdWZmaXgtY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQ3VzdG9taXplcyB0aGUgY29sb3Igb2YgdGhlIHN1ZmZpeCB0ZXh0IGZvciBhIGRpc2FibGVkIHRleHQgZmllbGQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgc3VmZml4IHRleHQgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1zdWZmaXgtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIF9zdWZmaXgtY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBzaGFwZSByYWRpdXMgb2Ygb3V0bGluZWQgdGV4dCBmaWVsZCB2YXJpYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgU2hhcGUgcmFkaXVzIHZhbHVlIGluIGBweGAgb3IgaW4gcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRleHQtZmllbGQtaGVpZ2h0IEhlaWdodCBvZiBvdXRsaW5lZCB0ZXh0IGZpZWxkIHZhcmlhbnQuIFJlcXVpcmVkIG9ubHkgd2hlbiBgJHJhZGl1c2AgaXMgaW5cbi8vLyAgICAgcGVyY2VudGFnZSB1bml0IGFuZCBpZiB0ZXh0IGZpZWxkIGhhcyBjdXN0b20gaGVpZ2h0LiBEZWZhdWx0cyB0byBgdmFyaWFibGVzLiRoZWlnaHRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJ0bC1yZWZsZXhpdmUgU2V0IHRvIHRydWUgdG8gZmxpcCBzaGFwZSByYWRpdXMgaW4gUlRMIGNvbnRleHQuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4vLy9cbkBtaXhpbiBvdXRsaW5lLXNoYXBlLXJhZGl1cyhcbiAgJHJhZGl1cyxcbiAgJGRlbnNpdHktc2NhbGU6IHZhcmlhYmxlcy4kZGVuc2l0eS1zY2FsZSxcbiAgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHQsXG4gICk7XG5cbiAgJHJlc29sdmVkLXJhZGl1czogbGlzdC5udGgoc2hhcGUtZnVuY3Rpb25zLnJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJGhlaWdodCwgc2hhcGUtZnVuY3Rpb25zLnByb3AtdmFsdWUoJHJhZGl1cykpLCAxKTtcblxuICBAaWYgKGxpc3QubGVuZ3RoKHNoYXBlLWZ1bmN0aW9ucy5wcm9wLXZhbHVlKCRyYWRpdXMpKSA+IDEpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbGluZS1sZW5ndGhcbiAgICBAd2FybiBcIm1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgcmFkaXVzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvaXNzdWVzLzQxNDBcIjtcbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlXG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpZiAoJHJlc29sdmVkLXJhZGl1cyA+IG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJGxlYWRpbmctd2lkdGgpIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRyZXNvbHZlZC1yYWRpdXMgKyBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzLiRwYWRkaW5nLCAwKTtcbiAgICB9XG5cbiAgICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgJHJlc29sdmVkLXJhZGl1cyArIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJHBhZGRpbmcsICRyZXNvbHZlZC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBDU1MgdHJhbnNpdGlvbiBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsJ3MgXCJmbG9hdFwiIGFuaW1hdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZHVyYXRpb24tbXMgLSBEdXJhdGlvbiAoaW4gbXMpIG9mIHRoZSBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0aW1pbmctZnVuY3Rpb24gLSBPcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBhbmltYXRpb24gdGltaW5nIGZ1bmN0aW9uLlxuLy8vXG5AbWl4aW4gZmxvYXRpbmctbGFiZWwtZmxvYXQtdHJhbnNpdGlvbigkZHVyYXRpb24tbXMsICR0aW1pbmctZnVuY3Rpb246IG51bGwsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5mbG9hdC10cmFuc2l0aW9uKCRkdXJhdGlvbi1tcywgJHRpbWluZy1mdW5jdGlvbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vIFByaXZhdGUgbWl4aW5zXG5cbi8vIEJhc2Ugc2hhcmVkIHN0eWxlc1xuQG1peGluIF9iYXNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIFNoYXBlXG4gIEBpbmNsdWRlIHNoYXBlLXJhZGl1cyhzbWFsbCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC8vIENvbG9yc1xuICBAaW5jbHVkZSBsYWJlbC1jb2xvcih2YXJpYWJsZXMuJGxhYmVsLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGluay1jb2xvcih2YXJpYWJsZXMuJGluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBwbGFjZWhvbGRlci1jb2xvcih2YXJpYWJsZXMuJHBsYWNlaG9sZGVyLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBjYXJldC1jb2xvcihwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGhlbHBlci10ZXh0LW1peGlucy5oZWxwZXItdGV4dC1jb2xvcih2YXJpYWJsZXMuJGhlbHBlci10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGNoYXJhY3Rlci1jb3VudGVyLW1peGlucy5jaGFyYWN0ZXItY291bnRlci1jb2xvcih2YXJpYWJsZXMuJGhlbHBlci10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGljb24tbWl4aW5zLmxlYWRpbmctaWNvbi1jb2xvcih2YXJpYWJsZXMuJGljb24tY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaWNvbi1taXhpbnMudHJhaWxpbmctaWNvbi1jb2xvcih2YXJpYWJsZXMuJGljb24tY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcHJlZml4LWNvbG9yKHZhcmlhYmxlcy4kYWZmaXgtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgc3VmZml4LWNvbG9yKHZhcmlhYmxlcy4kYWZmaXgtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAvLyBGbG9hdGluZyBMYWJlbFxuICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbF8oJHF1ZXJ5KTtcblxuICAvLyBTdHJ1Y3R1cmFsXG4gIEBpbmNsdWRlIHBhZGRpbmctaG9yaXpvbnRhbF8oXG4gICAgdmFyaWFibGVzLiRwYWRkaW5nLWhvcml6b250YWwsXG4gICAgMCxcbiAgICAwLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLy8gZGlzcGxheSBhbmQgYWxpZ24taXRlbXMgYXJlIG5lY2Vzc2FyeSB0byBtYWtlIHRoZSB0ZXh0IGZpZWxkIHBhcnRpY2lwYXRlXG4gICAgLy8gaW4gYmFzZWxpbmUgYWxpZ25tZW50LCBldmVuIHRob3VnaCBzb21lIHZhcmlhbnRzIGFyZSBcImNlbnRlcmVkXCIuIFRob3NlXG4gICAgLy8gdmFyaWFudHMgc2hvdWxkIHVzZSB0aGUgX2Jhc2VsaW5lLWNlbnRlci1hbGlnbmVkKCkgbWl4aW5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgY29sb3I7XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBhZGRzIHN0eWxlcyB0byB2aXN1YWxseSBjZW50ZXIgdGhlIHRleHQgd2l0aGluIHRoZSB0ZXh0IGZpZWxkLlxuLy8gU2libGluZyB0ZXh0IHdpbGwgYWxpZ24gdG8gdGhlIGJhc2VsaW5lIGFuZCBhcHBlYXIgY2VudGVyZWQgbmV4dCB0byB0aGVcbi8vIHRleHQgZmllbGQuXG5AbWl4aW4gX2Jhc2VsaW5lLWNlbnRlci1hbGlnbmVkKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vIEluIG9yZGVyIGZvciBhIGZsZXhib3ggY29udGFpbmVyIHRvIHBhcnRpY2lwYXRlIGluIGJhc2VsaW5lIGFsaWdubWVudCxcbiAgICAvLyBpdCBmb2xsb3dzIHRoZXNlIHJ1bGVzIHRvIGRldGVybWluZSB3aGVyZSBpdHMgYmFzZWxpbmUgaXM6XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvI2ZsZXgtYmFzZWxpbmVzXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBsZWFkaW5nIGljb25zIFwiY29udHJvbGxpbmdcIiB0aGUgYmFzZWxpbmUgKHNpbmNlIHRoZXlcbiAgICAvLyBhcmUgdGhlIGZpcnN0IGNoaWxkKSwgZmxleGJveCB3aWxsIGdlbmVyYXRlIGEgYmFzZWxpbmUgZnJvbSBhbnkgY2hpbGRcbiAgICAvLyBmbGV4IGl0ZW1zIHRoYXQgcGFydGljaXBhdGUgaW4gYmFzZWxpbmUgYWxpZ25tZW50LlxuICAgIC8vXG4gICAgLy8gSWNvbnMgYXJlIHNldCB0byBcImFsaWduLXNlbGY6IGNlbnRlclwiLCB3aGlsZSBhbGwgb3RoZXIgY2hpbGRyZW4gYXJlXG4gICAgLy8gYWxpZ25lZCB0byBiYXNlbGluZS4gVGhlIG5leHQgcHJvYmxlbSBpcyBkZWNpZGluZyB3aGljaCBjaGlsZCBpc1xuICAgIC8vIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBiYXNlbGluZS5cbiAgICAvL1xuICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCB0aGUgaXRlbSB3aXRoIHRoZSBsYXJnZXN0IGRpc3RhbmNlIGJldHdlZW4gaXRzXG4gICAgLy8gYmFzZWxpbmUgYW5kIHRoZSBlZGdlIG9mIHRoZSBjcm9zcyBheGlzIGlzIHBsYWNlZCBmbHVzaCB3aXRoIHRoYXQgZWRnZSxcbiAgICAvLyBtYWtpbmcgaXQgdGhlIGJhc2VsaW5lIG9mIHRoZSBjb250YWluZXIuXG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvI2Jhc2VsaW5lLXBhcnRpY2lwYXRpb25cbiAgICAvL1xuICAgIC8vIEZvciB0aGUgZmlsbGVkIHZhcmlhbnQsIHRoZSBwc2V1ZG8gOjpiZWZvcmUgc3RydXQgaXMgdGhlIFwibGFyZ2VzdFwiXG4gICAgLy8gY2hpbGQgc2luY2UgdGhlIGlucHV0IGhhcyBhIGhlaWdodCBvZiAyOHB4IGFuZCB0aGUgc3RydXQgaXMgNDBweC4gV2VcbiAgICAvLyBjYW4gZW11bGF0ZSBjZW50ZXIgYWxpZ25tZW50IGFuZCBmb3JjZSB0aGUgYmFzZWxpbmUgdG8gdXNlIHRoZSBpbnB1dFxuICAgIC8vIHRleHQgYnkgbWFraW5nIHRoZSBpbnB1dCB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lciBhbmQgcmVtb3ZpbmdcbiAgICAvLyB0aGUgYmFzZWxpbmUgc3RydXQuXG5cbiAgICAvLyBJRTExIGRvZXMgbm90IHJlc3BlY3QgdGhpcywgYW5kIG1ha2VzIHRoZSBsZWFkaW5nIGljb24gKGlmIHByZXNlbnQpIHRoZVxuICAgIC8vIGJhc2VsaW5lLiBUaGlzIGlzIGEgZ2FwIHdpdGggSUUxMSB0aGF0IHdlIGhhdmUgYWNjZXB0ZWQuXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGhvcml6b250YWwgcGFkZGluZyB0byB0aGUgdGV4dCBmaWVsZFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIC0gbGVmdCBhbmQgcmlnaHQtc2lkZSBwYWRkaW5nXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0LXdpdGgtbGVhZGluZy1pY29uIC0gbGVmdC1zaWRlIHBhZGRpbmcgd2hlbiBhIGxlYWRpbmdcbi8vLyAgICAgaWNvbiBpcyBwcmVzZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodC13aXRoLXRyYWlsaW5nLWljb24gLSByaWdodC1zaWRlIHBhZGRpbmcgd2hlbiBhXG4vLy8gICAgIHRyYWlsaW5nIGljb24gaXMgcHJlc2VudFxuQG1peGluIHBhZGRpbmctaG9yaXpvbnRhbF8oXG4gICRwYWRkaW5nLFxuICAkbGVmdC13aXRoLWxlYWRpbmctaWNvbixcbiAgJHJpZ2h0LXdpdGgtdHJhaWxpbmctaWNvbixcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nOiAwICRwYWRkaW5nO1xuXG4gICAgJi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgIHBhZGRpbmcsXG4gICAgICAgICRsZWZ0LXdpdGgtbGVhZGluZy1pY29uLFxuICAgICAgICAkcGFkZGluZ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAmLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgIHBhZGRpbmcsXG4gICAgICAgICRwYWRkaW5nLFxuICAgICAgICAkcmlnaHQtd2l0aC10cmFpbGluZy1pY29uXG4gICAgICApO1xuICAgIH1cblxuICAgICYubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgIHBhZGRpbmcsXG4gICAgICAgICRsZWZ0LXdpdGgtbGVhZGluZy1pY29uLFxuICAgICAgICAkcmlnaHQtd2l0aC10cmFpbGluZy1pY29uXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZmxvYXRpbmctbGFiZWxfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRmlsbGVkXG5cbkBtaXhpbiBfZmlsbGVkKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIFRleHQgRmllbGQgaW50ZW50aW9uYWxseSBvbWl0cyBwcmVzcyByaXBwbGUsIHNvIGVhY2ggc3RhdGUgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluZGl2aWR1YWxseS5cbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMtYmFzZS1jb2xvcih2YXJpYWJsZXMuJGluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQpO1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcy1ob3Zlci1vcGFjaXR5KHJpcHBsZS1mdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkodmFyaWFibGVzLiRpbmstY29sb3IsIGhvdmVyKSwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQpO1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcy1mb2N1cy1vcGFjaXR5KHJpcHBsZS1mdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkodmFyaWFibGVzLiRpbmstY29sb3IsIGZvY3VzKSwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiB2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXQpO1xuXG4gIEBpbmNsdWRlIGhlaWdodCh2YXJpYWJsZXMuJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy5iYXNlbGluZS10b3AodmFyaWFibGVzLiRmaWxsZWQtYmFzZWxpbmUtdG9wLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZpbGwtY29sb3IodmFyaWFibGVzLiRiYWNrZ3JvdW5kLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGJvdHRvbS1saW5lLWNvbG9yKHZhcmlhYmxlcy4kYm90dG9tLWxpbmUtaWRsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Zlci1ib3R0b20tbGluZS1jb2xvcih2YXJpYWJsZXMuJGJvdHRvbS1saW5lLWhvdmVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGxpbmUtcmlwcGxlLWNvbG9yXyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIF9maWxsZWQtZmxvYXRpbmctbGFiZWwoJHF1ZXJ5KTtcbn1cblxuQG1peGluIF9maWxsZWQtZmxvYXRpbmctbGFiZWwoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCB2YXJpYWJsZXMuJGxhYmVsLW9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLmZsb2F0LXBvc2l0aW9uKHZhcmlhYmxlcy4kbGFiZWwtcG9zaXRpb24teSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLyBGaWxsZWQgdmFyaWFudCB3aXRoIG5vIGxhYmVsLiBUaGlzIHZhcmlhbnQgY2VudGVycyB0aGUgdGV4dCBlbGVtZW50cyBhbmRcbi8vIGhpZGVzIHRoZSBsYWJlbCBhbmQgaXMgdXNlZCB3aXRoIHRoZXJlIGlzIGV4cGxpY2l0bHkgbm8gbGFiZWwgcHJvdmlkZWQgb3Jcbi8vIHdoZW4gdGhlIGhlaWdodCBvZiB0aGUgdGV4dCBmaWVsZCBpcyB0b28gc21hbGwgZm9yIGEgbGFiZWwgdG8gYmUgYWxsb3dlZC5cbkBtaXhpbiBfZmlsbGVkLW5vLWxhYmVsKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIF9iYXNlbGluZS1jZW50ZXItYWxpZ25lZCgkcXVlcnkpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIC8vIFJlbW92ZSBiYXNlbGluZS10b3Agc3RydXRcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIE91dGxpbmVkXG5cbkBtaXhpbiBvdXRsaW5lZF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgb3V0bGluZWQtaGVpZ2h0KFxuICAgICRoZWlnaHQ6IHZhcmlhYmxlcy4kaGVpZ2h0LFxuICAgICRrZXlmcmFtZS1zdWZmaXg6IHRleHQtZmllbGQtb3V0bGluZWQsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcbiAgQGluY2x1ZGUgX2Jhc2VsaW5lLWNlbnRlci1hbGlnbmVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcih2YXJpYWJsZXMuJG91dGxpbmVkLWlkbGUtYm9yZGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGhvdmVyLW91dGxpbmUtY29sb3IodmFyaWFibGVzLiRvdXRsaW5lZC1ob3Zlci1ib3JkZXIsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHByaW1hcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgb3V0bGluZS1zaGFwZS1yYWRpdXMoc21hbGwsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5ub3RjaC1vZmZzZXQobm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcy4kYm9yZGVyLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0KTtcbiAgQGluY2x1ZGUgX291dGxpbmVkLWZsb2F0aW5nLWxhYmVsKCRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFRPRE8oYi8xNTQzNDk3MzUpOiBJbnZlc3RpZ2F0ZSB0aGUgbmVjY2Vzc2l0eSBvZiB0aGVzZSBzdHlsZXNcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgLy8gRkYgYWRkcyB1bndhbnRlZCBib3JkZXIgaW4gSEMgbW9kZSBvbiB3aW5kb3dzLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICAgIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMubm90Y2gtb2Zmc2V0KHZhcmlhYmxlcy4kb3V0bGluZWQtc3Ryb2tlLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIF9vdXRsaW5lZC1mbG9hdGluZy1sYWJlbCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTdGF0ZXNcblxuQG1peGluIGRpc2FibGVkXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBpbmstY29sb3JfKHZhcmlhYmxlcy4kZGlzYWJsZWQtaW5rLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyLWNvbG9yXyh2YXJpYWJsZXMuJGRpc2FibGVkLXBsYWNlaG9sZGVyLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBsYWJlbC1pbmstY29sb3JfKHZhcmlhYmxlcy4kZGlzYWJsZWQtbGFiZWwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaGVscGVyLXRleHQtbWl4aW5zLmhlbHBlci10ZXh0LWNvbG9yXyh2YXJpYWJsZXMuJGRpc2FibGVkLWhlbHBlci10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGNoYXJhY3Rlci1jb3VudGVyLW1peGlucy5jaGFyYWN0ZXItY291bnRlci1jb2xvcl8odmFyaWFibGVzLiRkaXNhYmxlZC1oZWxwZXItdGV4dC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBpY29uLW1peGlucy5sZWFkaW5nLWljb24tY29sb3JfKHZhcmlhYmxlcy4kZGlzYWJsZWQtaWNvbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBpY29uLW1peGlucy50cmFpbGluZy1pY29uLWNvbG9yXyh2YXJpYWJsZXMuJGRpc2FibGVkLWljb24sICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgX3ByZWZpeC1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWFmZml4LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIF9zdWZmaXgtY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1hZmZpeC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC8vIE1peGlucyB0aGF0IGFyZSBvayB0byBpbmNsdWRlIHNpbmNlIHRoZXkgdGFyZ2V0IHZhcmlhbnQtc3BlY2lmaWMgZWxlbWVudHNcbiAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3JfKHZhcmlhYmxlcy4kZGlzYWJsZWQtYm9yZGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuY29sb3IodmFyaWFibGVzLiRvdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXIsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyLWNvbG9yXyhHcmF5VGV4dCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGxhYmVsLWluay1jb2xvcl8oR3JheVRleHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBoZWxwZXItdGV4dC1taXhpbnMuaGVscGVyLXRleHQtY29sb3JfKEdyYXlUZXh0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgY2hhcmFjdGVyLWNvdW50ZXItbWl4aW5zLmNoYXJhY3Rlci1jb3VudGVyLWNvbG9yXyhHcmF5VGV4dCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGljb24tbWl4aW5zLmxlYWRpbmctaWNvbi1jb2xvcl8oR3JheVRleHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpY29uLW1peGlucy50cmFpbGluZy1pY29uLWNvbG9yXyhHcmF5VGV4dCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIF9wcmVmaXgtY29sb3IoR3JheVRleHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBfc3VmZml4LWNvbG9yKEdyYXlUZXh0LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAvLyBNaXhpbnMgdGhhdCBhcmUgb2sgdG8gaW5jbHVkZSBzaW5jZSB0aGV5IHRhcmdldCB2YXJpYW50LXNwZWNpZmljIGVsZW1lbnRzXG4gICAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3JfKEdyYXlUZXh0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5jb2xvcihHcmF5VGV4dCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9kaXNhYmxlZC1maWxsZWQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgZmlsbC1jb2xvcl8odmFyaWFibGVzLiRkaXNhYmxlZC1iYWNrZ3JvdW5kLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBpbnZhbGlkXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBob3Zlci1ib3R0b20tbGluZS1jb2xvcih2YXJpYWJsZXMuJGVycm9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGxpbmUtcmlwcGxlLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbGFiZWwtY29sb3IodmFyaWFibGVzLiRlcnJvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBoZWxwZXItdGV4dC1taXhpbnMuaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcih2YXJpYWJsZXMuJGVycm9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGNhcmV0LWNvbG9yKHZhcmlhYmxlcy4kZXJyb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaWNvbi1taXhpbnMudHJhaWxpbmctaWNvbi1jb2xvcih2YXJpYWJsZXMuJGVycm9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLy8gTWl4aW5zIHRoYXQgYXJlIG9rIHRvIGluY2x1ZGUgc2luY2UgdGhleSB0YXJnZXQgdmFyaWFudC1zcGVjaWZpYyBlbGVtZW50c1xuICBAaW5jbHVkZSBib3R0b20tbGluZS1jb2xvcih2YXJpYWJsZXMuJGVycm9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG91dGxpbmUtY29sb3IodmFyaWFibGVzLiRlcnJvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Zlci1vdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb2N1c2VkXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBsYWJlbC1jb2xvcih2YXJpYWJsZXMuJGZvY3VzZWQtbGFiZWwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAvLyBNaXhpbnMgdGhhdCBhcmUgb2sgdG8gaW5jbHVkZSBzaW5jZSB0aGV5IHRhcmdldCB2YXJpYW50LXNwZWNpZmljIGVsZW1lbnRzXG4gIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuc3Ryb2tlLXdpZHRoKHZhcmlhYmxlcy4kb3V0bGluZWQtc3Ryb2tlLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0Om5vdCgubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4vLyBJY29uc1xuXG5AbWl4aW4gd2l0aC1sZWFkaW5nLWljb25fKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICRpY29uLXBhZGRpbmc6IGljb24tdmFyaWFibGVzLiRsZWFkaW5nLWljb24tcGFkZGluZy1sZWZ0ICsgaWNvbi12YXJpYWJsZXMuJGljb24tc2l6ZSArIGljb24tdmFyaWFibGVzLiRsZWFkaW5nLWljb24tcGFkZGluZy1yaWdodDtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBfdHJ1bmNhdGUtZmxvYXRpbmctbGFiZWwtbWF4LXdpZHRoKCRpY29uLXBhZGRpbmcsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRpY29uLXBhZGRpbmcpO1xuICAgIH1cbiAgfVxuXG4gICR0cnVuY2F0aW9uOiAkaWNvbi1wYWRkaW5nICsgdmFyaWFibGVzLiRwYWRkaW5nLWhvcml6b250YWw7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIEBpbmNsdWRlIF90cnVuY2F0ZS1mbG9hdGluZy1sYWJlbC1mbG9hdGVkLW1heC13aWR0aCgkdHJ1bmNhdGlvbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBfd2l0aC10cmFpbGluZy1pY29uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICR0cnVuY2F0aW9uOiBpY29uLXZhcmlhYmxlcy4kdHJhaWxpbmctaWNvbi1wYWRkaW5nLWxlZnQgKyBpY29uLXZhcmlhYmxlcy4kaWNvbi1zaXplICsgaWNvbi12YXJpYWJsZXMuJHRyYWlsaW5nLWljb24tcGFkZGluZy1yaWdodCArIHZhcmlhYmxlcy4kbGFiZWwtb2Zmc2V0O1xuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIF90cnVuY2F0ZS1mbG9hdGluZy1sYWJlbC1tYXgtd2lkdGgoJHRydW5jYXRpb24sICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBAaW5jbHVkZSBfdHJ1bmNhdGUtZmxvYXRpbmctbGFiZWwtZmxvYXRlZC1tYXgtd2lkdGgoJHRydW5jYXRpb24sICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gX3dpdGgtbGVhZGluZy1hbmQtdHJhaWxpbmctaWNvbigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkbGVhZGluZy1pY29uOiBpY29uLXZhcmlhYmxlcy4kbGVhZGluZy1pY29uLXBhZGRpbmctbGVmdCArIGljb24tdmFyaWFibGVzLiRpY29uLXNpemUgKyBpY29uLXZhcmlhYmxlcy4kbGVhZGluZy1pY29uLXBhZGRpbmctcmlnaHQ7XG4gICR0cmFpbGluZy1pY29uOiBpY29uLXZhcmlhYmxlcy4kdHJhaWxpbmctaWNvbi1wYWRkaW5nLWxlZnQgKyBpY29uLXZhcmlhYmxlcy4kaWNvbi1zaXplICsgaWNvbi12YXJpYWJsZXMuJHRyYWlsaW5nLWljb24tcGFkZGluZy1yaWdodDtcbiAgJHRydW5jYXRpb246ICRsZWFkaW5nLWljb24gKyAkdHJhaWxpbmctaWNvbjtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBfdHJ1bmNhdGUtZmxvYXRpbmctbGFiZWwtbWF4LXdpZHRoKCR0cnVuY2F0aW9uLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgQGluY2x1ZGUgX3RydW5jYXRlLWZsb2F0aW5nLWxhYmVsLWZsb2F0ZWQtbWF4LXdpZHRoKCR0cnVuY2F0aW9uLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBSZXN0aW5nIGxhYmVsIHBvc2l0aW9uXG4gICRpY29uLXBhZGRpbmc6IGljb24tdmFyaWFibGVzLiRsZWFkaW5nLWljb24tcGFkZGluZy1sZWZ0ICsgaWNvbi12YXJpYWJsZXMuJGljb24tc2l6ZSArIGljb24tdmFyaWFibGVzLiRsZWFkaW5nLWljb24tcGFkZGluZy1yaWdodDtcbiAgJGxlZnQtc3BhY2luZzogJGljb24tcGFkZGluZyAtIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJGxlYWRpbmctd2lkdGg7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbGVmdC1zcGFjaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBOb3RjaCB3aWR0aFxuICAkbm90Y2gtdHJ1bmNhdGlvbjogJGljb24tcGFkZGluZyArIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJGxlYWRpbmctd2lkdGg7XG4gIEBpbmNsdWRlIF90cnVuY2F0ZS1ub3RjaGVkLW91dGxpbmUtbWF4LXdpZHRoKCRub3RjaC10cnVuY2F0aW9uLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLy8gRmxvYXRpbmcgbGFiZWwgcG9zaXRpb24gYW5kIGFuaW1hdGlvblxuICBAaW5jbHVkZSBfb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tZmxvYXRpbmctbGFiZWwtcG9zaXRpb24tYW5pbWF0aW9uKFxuICAgICRoZWlnaHQ6IHZhcmlhYmxlcy4kaGVpZ2h0LFxuICAgICRrZXlmcmFtZS1zdWZmaXg6IHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG59XG5cbi8vL1xuLy8vIEFwcGxpZWQgdG8gdGhlIG91dGxpbmVkIHRleHQgZmllbGQgd2l0aCBhIHRyYWlsaW5nIGljb25cbi8vL1xuQG1peGluIF9vdXRsaW5lZC13aXRoLXRyYWlsaW5nLWljb24oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLy8gUmVzdGluZyBsYWJlbCBwb3NpdGlvblxuICAkaWNvbi1wYWRkaW5nOiBpY29uLXZhcmlhYmxlcy4kdHJhaWxpbmctaWNvbi1wYWRkaW5nLWxlZnQgKyBpY29uLXZhcmlhYmxlcy4kaWNvbi1zaXplICsgaWNvbi12YXJpYWJsZXMuJHRyYWlsaW5nLWljb24tcGFkZGluZy1yaWdodDtcbiAgLy8gTm90Y2ggd2lkdGhcbiAgJG5vdGNoLXRydW5jYXRpb246ICRpY29uLXBhZGRpbmcgKyBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzLiRsZWFkaW5nLXdpZHRoO1xuXG4gIEBpbmNsdWRlIF90cnVuY2F0ZS1ub3RjaGVkLW91dGxpbmUtbWF4LXdpZHRoKCRub3RjaC10cnVuY2F0aW9uLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vL1xuLy8vIFRydW5jYXRlcyB0aGUgbWF4LXdpZHRoIG9mIHRoZSBub3RjaGVkIG91dGxpbmUgYnkgdGhlIGdpdmVuIGFtb3VudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cnVuY2F0aW9uIC0gQW1vdW50IHRvIHRydW5jYXRlIHRoZSBub3RjaGVkIG91dGxpbmUgbWF4LXdpZHRoXG4vLy9cbkBtaXhpbiBfdHJ1bmNhdGUtbm90Y2hlZC1vdXRsaW5lLW1heC13aWR0aCgkdHJ1bmNhdGlvbiwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5ub3RjaC1tYXgtd2lkdGgoY2FsYygxMDAlIC0gI3skdHJ1bmNhdGlvbn0pLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vL1xuLy8vIFRydW5jYXRlcyB0aGUgbWF4LXdpZHRoIG9mIHRoZSBmbG9hdGluZyBsYWJlbCBieSB0aGUgZ2l2ZW4gYW1vdW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRydW5jYXRpb24gLSBBbW91bnQgdG8gdHJ1bmNhdGUgdGhlIGZsb2F0aW5nIGxhYmVsIG1heC13aWR0aFxuLy8vXG5AbWl4aW4gX3RydW5jYXRlLWZsb2F0aW5nLWxhYmVsLW1heC13aWR0aCgkdHJ1bmNhdGlvbiwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLm1heC13aWR0aChjYWxjKDEwMCUgLSAjeyR0cnVuY2F0aW9ufSksICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuLy8vXG4vLy8gVHJ1bmNhdGVzIHRoZSBtYXgtd2lkdGggb2YgdGhlIGZsb2F0aW5nIGxhYmVsIGJ5IHRoZSBnaXZlbiBhbW91bnQgd2hpbGUgc2NhbGluZyBieSB0aGUgZ2l2ZW4gc2NhbGUgdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJ1bmNhdGlvbiAtIEFtb3VudCB0byB0cnVuY2F0ZSB0aGUgZmxvYXRpbmcgbGFiZWwgbWF4LXdpZHRoXG4vLy9cbkBtaXhpbiBfdHJ1bmNhdGUtZmxvYXRpbmctbGFiZWwtZmxvYXRlZC1tYXgtd2lkdGgoJHRydW5jYXRpb24sICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRzY2FsZTogZmxvYXRpbmctbGFiZWwtdmFyaWFibGVzLiRmbG9hdC1zY2FsZTtcbiAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLm1heC13aWR0aChjYWxjKDEwMCUgLyAjeyRzY2FsZX0gLSAjeyR0cnVuY2F0aW9ufSAvICN7JHNjYWxlfSksICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuLy8gRnVsbCBXaWR0aFxuQG1peGluIGZ1bGx3aWR0aF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3IodmFyaWFibGVzLiRib3R0b20tbGluZS1pZGxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLWJvdHRvbS1saW5lLWNvbG9yKHZhcmlhYmxlcy4kYm90dG9tLWxpbmUtaWRsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgQGluY2x1ZGUgX2ZpbGxlZC1uby1sYWJlbCgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSBmaWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUZXh0YXJlYVxuXG5AbWl4aW4gdGV4dGFyZWFfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIE5vdGU6IFRoZSByZWZhY3RvciB0byBhZGQgdGhlIGZpbGxlZCB0ZXh0YXJlYSBzdHlsZSB3aWxsIHJlc3VsdCBpbiBhIGxvdCBvZiB0aGUgc3BlY2lmaWNpdHkgaXNzdWVzIHRoYXQgdGhlXG4gIC8vIHRleHRhcmVhIGhhcyBiZWluZyByZXNvbHZlZCBieSB1c2luZyB0aGUgc2FtZSAtLW91dGxpbmVkIHZhcmlhbnQgY2xhc3MgYXMgdGhlIHRleHQgZmllbGQuXG4gIEBpbmNsdWRlIG91dGxpbmUtY29sb3IodmFyaWFibGVzLiRvdXRsaW5lZC1pZGxlLWJvcmRlciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Zlci1vdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kb3V0bGluZWQtaG92ZXItYm9yZGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZvY3VzZWQtb3V0bGluZS1jb2xvcihwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG91dGxpbmUtc2hhcGUtcmFkaXVzKHNtYWxsLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0KTtcbiAgQGluY2x1ZGUgZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBjaGFyYWN0ZXItY291bnRlci1taXhpbnMuY2hhcmFjdGVyLWNvdW50ZXItcG9zaXRpb24oMTZweCwgMTNweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBfdGV4dGFyZWEtZmxvYXRpbmctbGFiZWwoJHF1ZXJ5KTtcblxuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDsgLy8gc2VlIGJlbG93IGZvciBleHBsYW5hdGlvblxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvLyBUb3AgbWFyZ2luIGlzIHVzZWQgdG8ga2VlcCB0aGUgdGV4dCBmcm9tIG92ZXJsYXBwaW5nIHRoZSBmbG9hdGluZyBsYWJlbFxuICAgICAgLy8gd2hlbiBzY3JvbGxpbmdcbiAgICAgIG1hcmdpbi10b3A6IHZhcmlhYmxlcy4kdGV4dGFyZWEtaW5wdXQtbWFyZ2luLXRvcDtcbiAgICAgIC8vIEJvdHRvbSBhbmQgbGVmdC9yaWdodCBtYXJnaW5zIGFyZSB1c2VkIHRvIGFkZCBzcGFjZSBmb3IgdGhlIHJlc2l6ZSBoYW5kbGVcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcmlhYmxlcy4kdGV4dGFyZWEtaW5wdXQtaGFuZGxlLW1hcmdpbjtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCB2YXJpYWJsZXMuJHRleHRhcmVhLWlucHV0LWhhbmRsZS1tYXJnaW4pO1xuICAgICAgLy8gVGV4dGFyZWEgaGFzIGhvcml6b250YWwgcGFkZGluZyBpbnN0ZWFkIG9mIHRoZSBjb250YWluZXIuIFRoaXMgYWxsb3dzIHRoZVxuICAgICAgLy8gcmVzaXplIGhhbmRsZSB0byBleHRlbmQgdG8gdGhlIGVkZ2Ugb2YgdGhlIGNvbnRhaW5lci5cbiAgICAgIHBhZGRpbmc6IDAgdmFyaWFibGVzLiRwYWRkaW5nLWhvcml6b250YWwgdmFyaWFibGVzLiR0ZXh0YXJlYS1pbnB1dC1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XG4gICAgICBsaW5lLWhlaWdodDogMS43NXJlbTsgLy8gMjhzcFxuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciArIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDsgLy8gTGVhdmVzIHNwYWNlIGZvciBjaGFyYWN0ZXIgY291bnRlciBpZiBpdCBleGlzdHMuXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF90ZXh0YXJlYS1mbG9hdGluZy1sYWJlbCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBSZXN0aW5nIGxhYmVsIHBvc2l0aW9uXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgbm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcy4kcGFkZGluZyk7XG5cbiAgICAgIHRvcDogMTdweDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIFJlc2V0cyBjZW50ZXIgYWxpZ25pbmcgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAgICY6bm90KC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlKSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZsb2F0aW5nIGxhYmVsIHBvc2l0aW9uXG4gIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24odmFyaWFibGVzLiR0ZXh0YXJlYS1sYWJlbC1wb3NpdGlvbi15LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLy8gRmxvYXRpbmcgbGFiZWwgYW5pbWF0aW9uXG4gIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1hbmltYXRpb24odGV4dGFyZWEsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLnNoYWtlLWtleWZyYW1lcyhcbiAgICB0ZXh0YXJlYSxcbiAgICB2YXJpYWJsZXMuJHRleHRhcmVhLWxhYmVsLXBvc2l0aW9uLXksXG4gICAgMCUsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcbn1cblxuLy8gVGV4dCwgUHJlZml4IGFuZCBTdWZmaXhcblxuLy8gQ29tbW9uIHN0eWxlcyBmb3IgdGhlIHRleHQgb2YgdGhlIHRleHQgZmllbGQsIGluY2x1ZGluZyB0aGUgcHJlZml4LCBzdWZmaXgsXG4vLyBhbmQgaW5wdXQuXG5AbWl4aW4gX3RleHQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIEV4Y2x1ZGUgc2V0dGluZyBsaW5lLWhlaWdodCB0byBrZWVwIGNhcmV0ICh0ZXh0IGN1cnNvcikgc2FtZSBoZWlnaHQgYXMgdGhlIGlucHV0IHRleHQgaW4gaU9TIGJyb3dzZXIuXG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoc3VidGl0bGUxLCAkZXhjbHVkZS1wcm9wczogKGxpbmUtaGVpZ2h0KSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaW5wdXQtaGVpZ2h0O1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLnRyYW5zaXRpb24ob3BhY2l0eSk7XG4gIH1cbn1cblxuQG1peGluIF9pbnB1dCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBfdGV4dCgkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDsgLy8gRml4ZXMgZmxleCBpc3N1ZXMgb24gRmlyZWZveFxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLy8gUmVtb3ZlIGJ1aWx0LWluIHRyYWlsaW5nIGNsZWFyIGljb24gb24gSUUxMVxuICAgICY6Oi1tcy1jbGVhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcmVkIG91dGxpbmUgb24gZmlyZWZveFxuICAgICY6aW52YWxpZCB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC8vIEtlZXAgQ2hyb21lIGF1dG9maWxsIGJlaGluZCB0aGUgbm90Y2hlZCBvdXRsaW5lXG4gICAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICAgIHotaW5kZXg6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9pbnB1dC1wbGFjZWhvbGRlcigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLnRyYW5zaXRpb24ob3BhY2l0eSwgJGR1cmF0aW9uOiA2N21zKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQG1peGluIF9pbnB1dC1wbGFjZWhvbGRlci12aXNpYmxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA0MG1zO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDExMG1zO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWl4aW4gX2FmZml4KCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIF90ZXh0KCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbkBtaXhpbiBfYWZmaXgtdmlzaWJsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtaXhpbiBfcHJlZml4KCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgdmFyaWFibGVzLiRwcmVmaXgtcGFkZGluZyk7XG4gIH1cbn1cblxuQG1peGluIF9wcmVmaXgtZW5kLWFsaWduZWQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KHBhZGRpbmcsIHJpZ2h0LCB2YXJpYWJsZXMuJHByZWZpeC1lbmQtYWxpZ25lZC1wYWRkaW5nKTtcbiAgfVxufVxuXG5AbWl4aW4gX3N1ZmZpeCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgdmFyaWFibGVzLiRzdWZmaXgtcGFkZGluZyk7XG4gIH1cbn1cblxuQG1peGluIF9zdWZmaXgtZW5kLWFsaWduZWQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIHZhcmlhYmxlcy4kc3VmZml4LWVuZC1hbGlnbmVkLXBhZGRpbmcpO1xuICB9XG59XG5cbi8vIEVuZCBhbGlnbmVkXG5AbWl4aW4gZW5kLWFsaWduZWRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gSUUxMSBkb2VzIG5vdCBzdXBwb3J0IHRleHQtYWxpZ246IGVuZFxuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRm9yY2VzIGlucHV0LCBwcmVmaXgsIGFuZCBzdWZmaXggdG8gYmUgTFRSIHdoZW4gaW4gYW4gUlRMIGVudmlyb25tZW50LiBPdGhlclxuLy8gZWxlbWVudHMgc3VjaCBhcyBsYWJlbHMgYW5kIGljb25zIHdpbGwgcmVtYWluIFJUTC5cbkBtaXhpbiBfbHRyLXRleHQoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCxcbiAgICAgIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgfVxuXG4gICAgICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXJpYWJsZXMuJHByZWZpeC1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXgge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyaWFibGVzLiRzdWZmaXgtcGFkZGluZztcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBOZWVkIHRvIHNwZWNpZnkgYW4gb3JkZXIgZm9yIGFsbCBlbGVtZW50cyBzaW5jZSBpY29ucyBtYWludGFpbiB0aGVpclxuICAgICAgLy8gb3JpZ2luYWwgcG9zaXRpb25zLiBXZSBjYW4ndCBqdXN0IHJldmVyc2UgdGhlIGNvbnRhaW5lci5cbiAgICAgIC5tZGMtdGV4dC1maWVsZF9faWNvbi0tbGVhZGluZyB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgfVxuXG4gICAgICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1zdWZmaXgge1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgIH1cblxuICAgICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgfVxuXG4gICAgICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgge1xuICAgICAgICBvcmRlcjogNDtcbiAgICAgIH1cblxuICAgICAgLm1kYy10ZXh0LWZpZWxkX19pY29uLS10cmFpbGluZyB7XG4gICAgICAgIG9yZGVyOiA1O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGb3JjZXMgaW5wdXQsIHByZWZpeCwgYW5kIHN1ZmZpeCB0aGF0IGFyZSBhbHJlYWR5IGZvcmNlZCB0byBMVFIgdG8gYWxzbyBiZVxuLy8gZW5kLWFsaWduZWQuIFRoaXMgbWl4aW4gc2hvdWxkIGJlIHVzZWQgYWxvbmdzaWRlIHRoZSBzdHlsZXMgcHJvdmlkZWQgaW5cbi8vIF9sdHItdGV4dCgpLlxuQG1peGluIF9sdHItdGV4dC1lbmQtYWxpZ25lZCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bCB7XG4gICAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgICAgLy8gSUUxMSBkb2VzIG5vdCBzdXBwb3J0IHRleHQtYWxpZ246IGVuZCwgc28gd2UgbmVlZCB0byBkdXBsaWNhdGVcbiAgICAgICAgLy8gdGhlIExUUiBlbmQtYWxpZ25lZCBzdHlsZSBoZXJlLlxuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICAubWRjLXRleHQtZmllbGRfX2FmZml4LS1wcmVmaXgge1xuICAgICAgICAvLyBwYWRkaW5nLWxlZnQ6IDAgcHJvdmlkZWQgYnkgX2x0ci10ZXh0IG1peGluXG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyaWFibGVzLiRwcmVmaXgtZW5kLWFsaWduZWQtcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tc3VmZml4IHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcmlhYmxlcy4kc3VmZml4LWVuZC1hbGlnbmVkLXBhZGRpbmc7XG4gICAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDAgcHJvdmlkZWQgYnkgX2x0ci10ZXh0IG1peGluXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEN1c3RvbWl6YXRpb25cblxuQG1peGluIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXItY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1zZWxlY3Rvcl8ge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZpbGwtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksICRhZGRBbHRlcm5hdGU6IGZhbHNlKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpZiAoJGFkZEFsdGVybmF0ZSkge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIH1cbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAubWRjLWxpbmUtcmlwcGxlIHtcbiAgICBAaW5jbHVkZSBsaW5lLXJpcHBsZS1taXhpbnMuaW5hY3RpdmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOmhvdmVyIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIEBpbmNsdWRlIGxpbmUtcmlwcGxlLW1peGlucy5pbmFjdGl2ZS1jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbGluZS1yaXBwbGUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgQGluY2x1ZGUgbGluZS1yaXBwbGUtbWl4aW5zLmFjdGl2ZS1jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gaG92ZXItb3V0bGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpOmhvdmVyIHtcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLmNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm9jdXNlZC1vdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICYubWRjLXRleHQtZmllbGQtLWZvY3VzZWQge1xuICAgIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGxhYmVsLWluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBfcHJlZml4LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgLm1kYy10ZXh0LWZpZWxkX19hZmZpeC0tcHJlZml4IHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX3N1ZmZpeC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIC5tZGMtdGV4dC1maWVsZF9fYWZmaXgtLXN1ZmZpeCB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2VsZWN0b3JzXG5cbkBtaXhpbiByZXF1aXJlZC1sYWJlbC1hc3Rlcmlza18oKSB7XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiB7XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIsXG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBwbGFjZWhvbGRlci1zZWxlY3Rvcl8ge1xuICAvLyBHU1Mgd2lsbCBjb21iaW5lIHNlbGVjdG9ycyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQsIGFuZCBzb21lIGJyb3dzZXJzIGhhdmUgYVxuICAvLyBDU1MgcXVpcmsgd2hlcmUgaXQgZHJvcHMgYSBydWxlIGlmIGl0IGRvZXMgbm90IHJlY29nbml6ZSBvbmUgb2YgdGhlXG4gIC8vIHNlbGVjdG9ycy5cbiAgLy8gVG8gYXZvaWQgR1NTIGNvbWJpbmluZyB0aGUgOjpwbGFjZWhvbGRlciBhbmQgOi1tcy1pbnB1dC1wbGFjZWhvbGRlclxuICAvLyBzZWxlY3RvcnMsIHdlIHdyYXAgdGhlbSBpbiBgQG1lZGlhIGFsbGAuXG4gIC8vIFRPRE8oYi8xNDIzMjkwNTEpXG4gIEBtZWRpYSBhbGwge1xuICAgIC8vIDo6cGxhY2Vob2xkZXIgbmVlZHMgdG8gYmUgd3JhcHBlZCBiZWNhdXNlIElFMTEgd2lsbCBkcm9wIG90aGVyIHNlbGVjdG9yc1xuICAgIC8vIHdpdGggdGhlIHNhbWUgY29udGVudFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBhbGwge1xuICAgIC8vIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgbmVlZHMgdG8gYmUgd3JhcHBlZCBiZWNhdXNlIEZpcmVmb3ggd2lsbCBkcm9wXG4gICAgLy8gb3RoZXIgc2VsZWN0b3JzIHdpdGggdGhlIHNhbWUgY29udGVudFxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YXRlIHF1YWxpZmllcnNcblxuLy8vXG4vLy8gSGVscHMgc3R5bGUgdGhlIHRleHQtZmllbGQgb25seSB3aGVuIGl0J3MgZW5hYmxlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLWVuYWJsZWRfIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHN0eWxlIHRoZSB0ZXh0LWZpZWxkIG9ubHkgd2hlbiBpdCdzIGRpc2FibGVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtZGlzYWJsZWRfIHtcbiAgJi5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIuc3VtbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZS1sNTAwO1xuICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICBwYWRkaW5nOiAzNXB4IDAgNzVweCAwO1xuICAgIG9yZGVyOiAzMDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgcGFkZGluZzogNzBweCAwO1xuICAgIH1cblxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDI5cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BsaWRlIHtcbiAgICAgICAgbWFyZ2luOiAwIC0yM3B4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIGN1cnNvcjogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGUge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxM3B4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCA0NXB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0MnB4O1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgkcHJvamVjdC13aGl0ZSwgMC40KTtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgICAgICB0b3A6IDI1cHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1ibHVlLWw1MDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAzNXB4O1xuICAgICAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTVweFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGhlaWdodDogMTUycHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTkycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3N0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LW5hdnlibHVlO1xuICAgICAgICBwYWRkaW5nOiAycHggMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTVweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwNHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6IDM2MHB4KSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyODZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pZSAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgICByaWdodDogLTEwMCU7XG4gICAgICAgIHRvcDogMTU3cHg7XG4gICAgICAgIG1heC13aWR0aDogMTg0cHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAzNjBweCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyODZweDtcbiAgICAgICAgICAgIHRvcDogMTk3cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaWUgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNwbGlkZV9fcGFnaW5hdGlvbiB7XG4gICAgICAgIGJvdHRvbTogLTQycHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BsaWRlX19wYWdpbmF0aW9uX19wYWdlIHtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3Qtd2hpdGUsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZGVjby0zNjUge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X18zNjUoJHByb2plY3Qtd2hpdGUpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDcuMzYlO1xuICAgIH1cbn0iLCIuY29uc3RhbnRoZWxwIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtbmF2eWJsdWU7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiA2NHB4IDI0cHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGdhcDogMjRweDtcblx0Y29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuXG5cdCZfX3dyYXBwZXIge1xuXHRcdG1heC13aWR0aDogMTMzOXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7IC8vIHR1IGJ5xYJvIGlubmVcblx0XHRwYWRkaW5nOiA2NHB4IDEyMHB4O1xuXHR9XG5cblx0Jl9fdGV4dC1hbmQtbG9nbyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAzMnB4O1xuXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRhbGlnbi1pdGVtczogbm9ybWFsO1xuXHRcdH1cblx0fVxuXG5cdCZfX2xvZ28td3JhcHBlciB7XG5cdFx0d2lkdGg6IDE1MHB4O1xuXHRcdGhlaWdodDogMTUwcHg7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdFx0aGVpZ2h0OiAxMDBweDtcblx0XHR9XG5cdH1cblxuXHQmX190ZXh0LXdyYXBwZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblx0fVxuXG5cdCZfX3RleHQge1xuXHRcdC8vc3R5bGUgZG8gdGVrc3R1XG5cdH1cblxuXHQmX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRnYXA6IDEycHg7XG5cdFx0cGFkZGluZy10b3A6IDI1cHg7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGdhcDogNjRweDtcblx0XHR9XG5cdH1cblxuXHQmX19zbWFsbC1idXR0b25zLXdyYXBwZXIge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0fVxuXHR9XG5cblx0Jl9fc21hbGwtYnV0dG9ucy1hbmQtdG9vbHRpcC13cmFwcGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0XHRnYXA6IDEycHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHR9XG5cdH1cblxuXHQmX190b29sdGlwIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRwcm9qZWN0LXdoaXRlO1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0dG9wOiAtNXB4O1xuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdHRvcDogN3B4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmX190b29sdGlwOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogdmFyKC0tYXJyb3cteCwgNTAlKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0Ym9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci1ib3R0b206IDEwcHggc29saWQgJHByb2plY3Qtd2hpdGU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRib3R0b206IDEwMCU7XG5cblx0XHRAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0Ym9yZGVyLXRvcDogMTBweCBzb2xpZCAkcHJvamVjdC13aGl0ZTtcblx0XHR9XG5cdH1cblxuXHQmX190b29sdGlwOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiB2YXIoLS1hcnJvdy14KTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0Ym9yZGVyLWxlZnQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItYm90dG9tOiA5cHggc29saWQgJHByb2plY3QtbmF2eWJsdWU7XG5cdFx0ei1pbmRleDogMjtcblx0XHRib3R0b206IDEwMCU7XG5cblx0XHRAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0Ym9yZGVyLXRvcDogOXB4IHNvbGlkICRwcm9qZWN0LW5hdnlibHVlO1xuXHRcdH1cblx0fVxuXG5cdCZfX2RlZmF1bHQtdmFsdWUtYnV0dG9ucyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0aGVpZ2h0OiA4OHB4O1xuXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdHdpZHRoOiA3NSU7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY3VzdG9tLXZhbHVlLWJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdC5jb25zdGFudGhlbHBfX3NpbmdsZS1idXR0b24ge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuXHRcdFx0d2lkdGg6IDI1JTtcblx0XHR9XG5cdH1cblxuXHQmX19zaW5nbGUtYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXI6IDRweCBzb2xpZCAkcHJvamVjdC1uYXZ5Ymx1ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0QG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1tZCkge1xuXHRcdFx0d2lkdGg6IDMzLjMzJTtcblx0XHR9XG5cblx0XHRAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkcHJvamVjdC1uYXZ5Ymx1ZTtcblx0XHR9XG5cdH1cblxuXHQmX19yYWRpbyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0aGVpZ2h0OiAwO1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQrIGxhYmVsIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJvamVjdC1uYXZ5Ymx1ZS1sMjAwLCAzJSk7XG5cblx0XHRcdFx0LnRhYi1uYXZpZ2F0aW9uICYge1xuXHRcdFx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCAkcHJvamVjdC13aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX3N1Ym1pdC1idXR0b24ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcmVkO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRoZWlnaHQ6IDYwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAxMDAlOyAvLyBiYXpvd28gcGXFgm5hIHN6ZXJva2/Fm8SHXG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0Y29sb3I6ICRwcm9qZWN0LWJsYWNrO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bWFyZ2luOiA4cHggYXV0byAwO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuXHRcdEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcblx0XHRAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQ7XG5cdFx0QGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcblx0XHRAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkoLjApO1xuXHRcdEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG5cdFx0QGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4yKTtcblxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHRtYXgtd2lkdGg6IDIwMHB4OyAvLyB6YW1pYXN0IGFic29sdXRlIHBvenljam9ub3dhbmllXG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKCRwcm9qZWN0LXJlZC1ob3Zlcik7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHQubWRjLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnV0dG9uLXRhYi1uYXZpZ2F0aW9uO1xuXHR9XG5cblx0Jl9fY3VzdG9taW5wdXQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG1hcmdpbjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwcHg7XG5cblx0XHQubWRjLXRleHQtZmllbGRfX2lucHV0IHtcblx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRoZWlnaHQ6IDU4cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNThweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWUtbDUwMDtcblx0XHRcdGNvbG9yOiAkcHJvamVjdC13aGl0ZSAhaW1wb3J0YW50O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y2FyZXQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuXHRcdFx0LW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cblx0XHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDY4cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA2OHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuXHRcdFx0Jjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG5cdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dDpjaGVja2VkIH4gJiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjZweDtcblx0XHRcdFx0aGVpZ2h0OiA1OHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNThweDtcblxuXHRcdFx0XHRAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNnB4O1xuXHRcdFx0XHRcdGhlaWdodDogODhweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogODhweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5tZGMtZmxvYXRpbmctbGFiZWwge1xuXHRcdFx0Y29sb3I6ICRwcm9qZWN0LXdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bGVmdDogMDtcblx0XHR9XG5cblx0XHQubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG5cdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuXHRcdFx0dG9wOiAyOC41cHg7XG5cdFx0fVxuXHR9XG5cblx0Jl9fbGFiZWwge1xuXHRcdG1hcmdpbjogMDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiA2OHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA2OHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuXHRcdGNvbG9yOiAkcHJvamVjdC1ibHVlLWw1MDA7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdGxldHRlci1zcGFjaW5nOiAwO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuXHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdGZvbnQtc2l6ZTogMjZweDtcblx0XHRcdGhlaWdodDogNjhweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA2OHB4O1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJvamVjdC13aGl0ZSwgMyUpO1xuXHRcdH1cblxuXG5cdFx0aW5wdXQ6Y2hlY2tlZCArICYge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZS1sNTAwO1xuXHRcdFx0Zm9udC1zaXplOiAyNnB4O1xuXHRcdFx0aGVpZ2h0OiA4OHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDg4cHg7XG5cdFx0XHRjb2xvcjogJHByb2plY3Qtd2hpdGU7XG5cblx0XHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAzNHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDg4cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA4OHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtLWN1c3RvbSB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRwcm9qZWN0LXdoaXRlO1xuXHRcdFx0Y29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuXG5cblx0XHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dDpjaGVja2VkICsgJiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblxuXHRcdFx0XHRAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyMXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lm1kYy10ZXh0LWZpZWxkIHtcblx0XHQmLS1kaXNhYmxlZCxcblx0XHQmLS1oaWRkZW4ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQmOmFmdGVyLFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxufSIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnNcIiBhcyBlbGV2YXRpb24tbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiIGFzIHJpcHBsZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIiBhcyBydGwtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9mdW5jdGlvbnNcIiBhcyB0aGVtZS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdG91Y2gtdGFyZ2V0L21peGluc1wiIGFzIHRvdWNoLXRhcmdldC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCIgYXMgdHlwb2dyYXBoeS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiIGFzIHNoYXBlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvZnVuY3Rpb25zXCIgYXMgc2hhcGUtZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9uc1wiIGFzIGRlbnNpdHktZnVuY3Rpb25zO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9mdW5jdGlvbnNcIiBhcyBlbGV2YXRpb24tZnVuY3Rpb25zO1xuXG4kcmlwcGxlLXRhcmdldDogXCIubWRjLWJ1dHRvbl9fcmlwcGxlXCI7XG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbn1cblxuQG1peGluIHRoZW1lLWJhc2VsaW5lKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC5tZGMtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkZW5zaXR5KHZhcmlhYmxlcy4kZGVuc2l0eS1zY2FsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGJ1dHRvbiBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1idXR0b24tY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtbWl4aW5zLndyYXBwZXIoJHF1ZXJ5KTsgLy8gQ09QWUJBUkFfQ09NTUVOVF9USElTX0xJTkVcbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5vdmVybGF5LWNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGJ1dHRvblxuICAubWRjLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYmFzZV8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzaGFwZS1yYWRpdXMoc21hbGwsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1jb250YWluZXItZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5KTtcbiAgICAvLyBUaGUgaWNvbiBDU1MgY2xhc3Mgb3ZlcnJpZGVzIHN0eWxlcyBkZWZpbmVkIGluIHRoZSAubWF0ZXJpYWwtaWNvbnMgQ1NTXG4gICAgLy8gY2xhc3MsIHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90XG4gICAgLy8gZ3VhcmFudGVlZC4gVGhlcmVmb3JlLCBpbmNyZWFzZSBzcGVjaWZpdHkgYnkgbmVzdGluZyB0aGlzIGNsYXNzIHRvIGVuc3VyZVxuICAgIC8vIG92ZXJyaWRlcyBhcHBseS5cbiAgICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbl87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1idXR0b25fX3RvdWNoIHtcbiAgICAgIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMudG91Y2gtdGFyZ2V0KCRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpbmstY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1pbmstY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1pbmstY29sb3IsICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBpY29uLXRyYWlsaW5nXztcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gIHN2Zy5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGljb24tc3ZnXztcbiAgICB9XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCxcbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIHtcbiAgICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gSWNvbnMgaW5zaWRlIGNvbnRhaW5lZCBidXR0b25zIGhhdmUgZGlmZmVyZW50IHN0eWxlcyBkdWUgdG8gaW5jcmVhc2VkIGJ1dHRvbiBwYWRkaW5nXG4gICAgICAgIEBpbmNsdWRlIGljb24tY29udGFpbmVkXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1jb250YWluZWQtdHJhaWxpbmdfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgICBAaW5jbHVkZSBmaWxsZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkIHtcbiAgICBAaW5jbHVkZSByYWlzZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG91dGxpbmVkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLXRvdWNoIHtcbiAgICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtbWl4aW5zLm1hcmdpbihcbiAgICAgICRjb21wb25lbnQtaGVpZ2h0OiB2YXJpYWJsZXMuJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGJ1dHRvbiBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1idXR0b24tY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLm1kYy1idXR0b24ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnJhZGl1cy1ib3VuZGVkKFxuICAgICAgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoXG4gICAgICAkY29sb3I6IHByaW1hcnksICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuXG4gICAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLy8gUmlwcGxlIG5lZWRzIGNvbnRlbnQtYm94IGFzIHRoZSBib3ggc2l6aW5nIGFuZCBib3gtc2l6aW5nOiBib3JkZXItYm94XG4gICAgICAgIC8vIGlzIG9mdGVuIHNldCBhcyBhIGRlZmF1bHQsIHNvIHdlIG92ZXJyaWRlIHRoYXQgaGVyZS5cbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmlwcGxlIHRhcmdldHMgaW5zaWRlIG91dGxpbmVkIGJ1dHRvbnMgc2V0IHRoZWlyIG93biBgdG9wYC9gbGVmdGAsXG4gICAgLy8gZGVwZW5kaW5nIG9uIHRoZSBib3JkZXIgd2lkdGguXG4gICAgJjpub3QoLm1kYy1idXR0b24tLW91dGxpbmVkKSAjeyRyaXBwbGUtdGFyZ2V0fSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcyhcbiAgICAgICRjb2xvcjogb24tcHJpbWFyeSwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuQG1peGluIGZpbGxlZC1hY2Nlc3NpYmxlKCRjb250YWluZXItZmlsbC1jb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZpbGwtdG9uZTogdGhlbWUtZnVuY3Rpb25zLnRvbmUoJGNvbnRhaW5lci1maWxsLWNvbG9yKTtcblxuICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcigkY29udGFpbmVyLWZpbGwtY29sb3IsICRxdWVyeSk7XG5cbiAgQGlmICgkZmlsbC10b25lID09IFwiZGFya1wiKSB7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzKFxuICAgICAgJGNvbG9yOiB0ZXh0LXByaW1hcnktb24tZGFyaywgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoXG4gICAgICAkY29sb3I6IHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgY29udGFpbmVyIGZpbGwgY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yIGZvciBhbiBlbmFibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBjb250YWluZXIgZmlsbCBjb2xvci5cbi8vL1xuQG1peGluIGNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLy8gOm5vdCg6ZGlzYWJsZWQpIGlzIHVzZWQgdG8gc3VwcG9ydCBsaW5rIHN0eWxlZCBhcyBidXR0b25cbiAgLy8gYXMgbGluayBkb2VzIG5vdCBzdXBwb3J0IDplbmFibGVkIHN0eWxlXG4gICY6bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBjb250YWluZXIgZmlsbCBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGNvbnRhaW5lciBmaWxsIGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgb3V0bGluZSBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGFuIGVuYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIG91dGxpbmUgY29sb3IuXG4vLy9cbkBtaXhpbiBvdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgb3V0bGluZSBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIG91dGxpbmUgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaWNvbiBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGFuIGVuYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGljb24gY29sb3IuXG4vLy9cbkBtaXhpbiBpY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaWNvbiBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGljb24gY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1pY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgaWNvbi1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYW4gZW5hYmxlZCBidXR0b24sXG4vLy8gYW5kIHNldHMgdGhlIGljb24gY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yIHVubGVzcyBgbWRjLWJ1dHRvbi1pY29uLWNvbG9yYFxuLy8vIGlzIGFsc28gdXNlZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBpbmsgY29sb3IuXG4vLy9cbkBtaXhpbiBpbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGluayBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLFxuLy8vIGFuZCBzZXRzIHRoZSBpY29uIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciB1bmxlc3MgYG1kYy1idXR0b24taWNvbi1jb2xvcmBcbi8vLyBpcyBhbHNvIHVzZWQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaW5rIGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIGRlbnNpdHkgc2NhbGUgZm9yIGJ1dHRvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgU3RyaW5nfSAkZGVuc2l0eS1zY2FsZSAtIERlbnNpdHkgc2NhbGUgdmFsdWUgZm9yIGNvbXBvbmVudC4gU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGUgdmFsdWVzIGAtM2AsXG4vLy8gICAgIGAtMmAsIGAtMWAsIGAwYC5cbi8vL1xuQG1peGluIGRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG5cbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHQsXG4gICk7XG5cbiAgQGluY2x1ZGUgaGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaWYgJGRlbnNpdHktc2NhbGUgIT0gMCB7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LXJlc2V0XygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gUmVzZXRzIHRvdWNoIHRhcmdldC1yZWxhdGVkIHN0eWxlcy4gVGhpcyBpcyBjYWxsZWQgZnJvbSB0aGUgZGVuc2l0eSBtaXhpbiB0b1xuLy8vIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBpbmNyZWFzZWQgdG91Y2ggdGFyZ2V0LCBzaW5jZSBkZW5zZSBjb21wb25lbnRzXG4vLy8gZG9uJ3QgaGF2ZSB0aGUgc2FtZSBkZWZhdWx0IGExMXkgcmVxdWlyZW1lbnRzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gdG91Y2gtdGFyZ2V0LXJlc2V0XygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fdG91Y2gge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBjdXN0b20gaGVpZ2h0IGZvciBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgLSBIZWlnaHQgb2YgYnV0dG9uIGluIGBweGAuXG4vLy9cbkBtaXhpbiBoZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBzaGFwZS1yYWRpdXMoJHJhZGl1cyxcbiRydGwtcmVmbGV4aXZlOiBmYWxzZSxcbiRkZW5zaXR5LXNjYWxlOiB2YXJpYWJsZXMuJGRlbnNpdHktc2NhbGUsXG4kcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuXG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJGRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuICAkcmVzb2x2ZWQtcmFkaXVzOiBzaGFwZS1mdW5jdGlvbnMucmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkaGVpZ2h0LCAkcmFkaXVzKTtcblxuICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIGhvcml6b250YWwgcGFkZGluZyB0byB0aGUgZ2l2ZW4gbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZ1xuLy8vXG5AbWl4aW4gaG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyAkcGFkZGluZyBzaG91bGQgYmUgYSBzaW5nbGUgdmFsdWU7IGVuZm9yY2UgaXQgYnkgc3BlY2lmeWluZyBhbGwgNCBzaWRlcyBpbiB0aGUgb3V0cHV0XG4gICAgcGFkZGluZzogMCAkcGFkZGluZyAwICRwYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBvdXRsaW5lLXdpZHRoKFxuICAkb3V0bGluZS13aWR0aCxcbiAgJHBhZGRpbmc6IHZhcmlhYmxlcy4kY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZyxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgLy8gTm90ZTogQWRqdXN0IHBhZGRpbmcgdG8gbWFpbnRhaW4gY29uc2lzdGVudCB3aWR0aCB3aXRoIG5vbi1vdXRsaW5lZCBidXR0b25zXG4gICRwYWRkaW5nLXZhbHVlOiBtYXRoLm1heCgkcGFkZGluZyAtICRvdXRsaW5lLXdpZHRoLCAwKTtcblxuICBAaW5jbHVkZSBob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmctdmFsdWUsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkb3V0bGluZS13aWR0aDtcbiAgfVxuXG4gICN7JHJpcHBsZS10YXJnZXR9IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRvcDogLSRvdXRsaW5lLXdpZHRoO1xuICAgICAgbGVmdDogLSRvdXRsaW5lLXdpZHRoO1xuICAgICAgYm9yZGVyOiAkb3V0bGluZS13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAubWRjLWJ1dHRvbl9fdG91Y2gge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbGVmdDogLSRvdXRsaW5lLXdpZHRoO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIgKiAjeyRvdXRsaW5lLXdpZHRofSk7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGJ1dHRvbiBsYWJlbCB0byBvdmVyZmxvdyBhcyBlbGxpcHNpc1xuLy8vXG5AbWl4aW4gbGFiZWwtb3Zlcmxvdy1lbGxpcHNpcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAubWRjLWJ1dHRvbl9fbGFiZWwge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLm92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gYmFzZV8oJHF1ZXJ5KSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShidXR0b24sICRxdWVyeSk7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtcGFkZGluZyh2YXJpYWJsZXMuJGhvcml6b250YWwtcGFkZGluZywgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5vdmVybGF5LXN1cmZhY2UtcG9zaXRpb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLm92ZXJsYXktZGltZW5zaW9ucygxMDAlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlOyBhbHJlYWR5IHNldCBpbiBtZGMtZWxldmF0aW9uLW92ZXJsYXktc3VyZmFjZS1wb3NpdGlvblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDY0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvLyBFdmVuIHRob3VnaCBgdmlzaWJsZWAgaXMgdGhlIGRlZmF1bHQsIElFIDExIGNvbXB1dGVzIHRoZSBwcm9wZXJ0eSBhc1xuICAgIC8vIGBoaWRkZW5gIGluIHNvbWUgY2FzZXMsIHVubGVzcyBpdCdzIGV4cGxpY2l0bHkgZGVmaW5lZCBoZXJlLlxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgJjphY3RpdmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaWNvbl8ge1xuICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuQG1peGluIGljb24tdHJhaWxpbmdfIHtcbiAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4KTtcbn1cblxuQG1peGluIGljb24tc3ZnXyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuQG1peGluIGljb24tY29udGFpbmVkXyB7XG4gIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgLTRweCwgOHB4KTtcbn1cblxuQG1peGluIGljb24tY29udGFpbmVkLXRyYWlsaW5nXyB7XG4gIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgOHB4LCAtNHB4KTtcbn1cblxuQG1peGluIG91dGxpbmVkXygkcXVlcnkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgb3V0bGluZS13aWR0aCh2YXJpYWJsZXMuJG91dGxpbmVkLWJvcmRlci13aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBvdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kb3V0bGluZS1jb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZGlzYWJsZWQtb3V0bGluZS1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWNvbnRhaW5lci1jb2xvciwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbkBtaXhpbiBmaWxsZWRfKCRxdWVyeSkge1xuICBAaW5jbHVkZSBob3Jpem9udGFsLXBhZGRpbmcodmFyaWFibGVzLiRjb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICBAaW5jbHVkZSBpbmstY29sb3Iob24tcHJpbWFyeSwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZGlzYWJsZWQtY29udGFpbmVyLWZpbGwtY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1jb250YWluZXItY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLWluay1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWluay1jb2xvciwgJHF1ZXJ5KTtcbn1cblxuQG1peGluIHJhaXNlZF8oJHF1ZXJ5KSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbig4LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigwLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBlbGV2YXRpb24tZnVuY3Rpb25zLnRyYW5zaXRpb24tdmFsdWUoKTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBjb250YWluZXIgZmlsbCBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IuIFRoaXMgbWl4aW4gc2hvdWxkIGJlXG4vLy8gd3JhcHBlZCBpbiBhIHNlbGVjdG9yIHRoYXQgcXVhbGlmaWVzIGJ1dHRvbiBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgb3V0bGluZSBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IuIFRoaXMgbWl4aW4gc2hvdWxkIGJlXG4vLy8gd3JhcHBlZCBpbiBhIHNlbGVjdG9yIHRoYXQgcXVhbGlmaWVzIGJ1dHRvbiBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIG91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGljb24gY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yLiBUaGlzIG1peGluIHNob3VsZCBiZVxuLy8vIHdyYXBwZWQgaW4gYSBzZWxlY3RvciB0aGF0IHF1YWxpZmllcyBidXR0b24gc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpY29uLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpbmsgY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yLiBUaGlzIG1peGluIHNob3VsZCBiZVxuLy8vIHdyYXBwZWQgaW4gYSBzZWxlY3RvciB0aGF0IHF1YWxpZmllcyBidXR0b24gc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cbiIsIi5hYm91dCB7XG4gICAgcGFkZGluZy10b3A6IDQ1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZS1sNDAwO1xuICAgIG9yZGVyOiA0MDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDg1cHg7XG4gICAgICAgIG9yZGVyOiA1MDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LXByaW1hcnk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcmVkO1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQxcHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDE3cHggYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAyMHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDBweCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgYiwgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zY3JvbGwge1xuICAgICAgICBtYXJnaW46IDAgLTIzcHggMTVweCAtMjNweDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQ2cHgpO1xuICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgLTE1cHg7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uby10b3VjaGV2ZW50cyAmIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMThweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkcHJvamVjdC1wcmltYXJ5LCAwLjUpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB0b3A6IDc2cHg7XG4gICAgICAgICAgICBsZWZ0OiAyMHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pZSAmIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtNTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vcmUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhbnZhcyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuXG4gICAgICAgIC5pZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IC0xM3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMzJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyOXB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjA2cHg7XG4gICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTNweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxODZweDtcbiAgICAgICAgICAgIHRvcDogMTNweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAzOXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDdweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmF2eWJsdWU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIubmV3cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHQmX190aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdGNvbG9yOiAkcHJvamVjdC1wcmltYXJ5O1xuXHRcdG1hcmdpbi1ib3R0b206IDM1cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IDM1cHg7XG5cblx0XHRAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzVweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAzNXB4O1xuXHRcdH1cblx0fVxuXG4gICAgJl9fcm93IHtcbiAgICAgICAgbWFyZ2luOiAzNXB4IC0yM3B4IDAgLTIzcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJHByb2plY3QtcHJpbWFyeSwgMC4zKTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW46IDM1cHggYXV0byBhdXRvIGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICYtLW1vcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ociB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwcm9qZWN0LWJsdWU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX19tb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIGhlaWdodDogNDVweDtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzMlIC0gMTdweCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDMzJSAtIDE3cHgpO1xuXG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygzMyUgLSAxNS42NjZweCk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoM24pIHtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmNhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoJHByb2plY3QtcHJpbWFyeSwgMC4zKTtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgZmxleDogMSAwIGNhbGMoMzMuMzMzJSAtIDMwcHgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNDMlLCByZ2JhKDI1MCwgMjUwLCAyNTIsIDApIDQ0JSwgcmdiYSgyMjMsIDIyNSwgMjM3LCAwLjA5KSA0OSUsIHJnYmEoMjcsIDQyLCAxMzUsIDEpIDEwMCUpO1xuICAgICAgICAgICAgb3BhY2l0eTogMC44NjtcbiAgICAgICAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRwcm9qZWN0LXByaW1hcnksIDAuNCk7XG4gICAgfVxuXG4gICAgJl9fY2FudmFzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcGFudG9uZS13YXJtLWdyZXktMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmF2eWJsdWU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS43O1xuICAgICAgICBwYWRkaW5nOiAyMXB4IDIwcHggMjFweCAxMTJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTM3cHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMzBweCA0MHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTU3cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIzcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyM3B4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIHdpZHRoOiAxMTJweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgY2FudmFzICsgcGljdHVyZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLW1kIC0gMC4xKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IoJHByb2plY3QtYmxhY2spO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4wNCk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IoJHByb2plY3Qtd2hpdGUpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4xMik7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24tdGFiLW5hdmlnYXRpb247XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LXdoaXRlLCAwLjA4KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc3RvcmllcyB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIG9yZGVyOiA5OTk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MC45JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAuOSU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXByaW1hcnk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDg4LjQlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwLjc0dncgMCAwIDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4LjglO1xuICAgICAgICAgICAgd2lkdGg6IDg4LjQlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2OC40JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4taGQpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4zNnZ3O1xuICAgICAgICAgICAgd2lkdGg6IDYwLjQlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogMjA0OHB4KSB7XG4gICAgICAgICAgICB3aWR0aDogNTguMiU7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgJl9fY2FudmFzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcGFudG9uZS13YXJtLWdyZXktMTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAkc2l0ZS1jb250YWluZXIgLSAzMHB4O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG59IiwiLnN0b3J5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogNjQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuICAgIFxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiA5NHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5NHB4O1xuICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgZmxleDogMCAwIDU5LjElO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1OS4xJTtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibGFjaztcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgIGZsZXg6IDAgMCBjYWxjKDEwMCUgLSAxNTRweCk7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTU0cHgpO1xuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5hdnlibHVlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxleDogMCAwIDQwLjklO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MC45JTtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICZfX2Jsb2NrcXVvdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgd2lkdGg6IDg4LjQlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOC44JTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICB3aWR0aDogODguNCU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICB3aWR0aDogNjguNCU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4taGQpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MC40JTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogMjA0OHB4KSB7XG4gICAgICAgICAgICB3aWR0aDogNTguMiU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJl9fY2FudmFzIHtcbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcGFudG9uZS13YXJtLWdyZXktMTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1wYW50b25lLXdhcm0tZ3JleS0xO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgXG4gICAgJl9faW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgXG4gICAgICAgIGNhbnZhcyArIHBpY3R1cmUgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgICAgICAgIHRvcDogLTEwMCU7XG4gICAgICAgICAgICBib3R0b206IC0xMDAlO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJl9fbGluZS1jbGFtcCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDg7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA2O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDc7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogODtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICAxLjd2dztcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjV2dztcbiAgICAgICAgfVxuICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHZ3O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNSU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjA5dnc7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMjNweDtcbiAgICAgICAgICAgIGhlaWdodDogMTlweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTQwcHg7XG4gICAgICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fY2l0ZShyZ2JhKCRwcm9qZWN0LXByaW1hcnksIDAuNSkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0Ljg3OHZ3O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMy42NHZ3O1xuICAgICAgICAgICAgICAgIHRvcDogLTYuMnZ3O1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAtNC42dnc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgICAgICB0b3A6IC00LjZ2dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICB0b3A6IC01LjJ2dztcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4taGQpIHtcbiAgICAgICAgICAgICAgICB0b3A6IC02LjJ2dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmX19wZXJzb24ge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuMTU5dnc7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxdnc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIFxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDI0MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDE1LjZ2dztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuMTF2dztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXZ3O1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICZfX292ZXJsaW5rIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4xKTtcbiAgICB9XG59IiwiLnBhcnRuZXJzIHtcbiAgICBtYXJnaW4tdG9wOiAyN3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgIH1cblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDg1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgLy8mX19jYXJvdXNlbCB7XG4gICAgLy8gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vXG4gICAgLy8gICAgJjpiZWZvcmUge1xuICAgIC8vICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIC8vICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vICAgICAgICB3aWR0aDogOXZ3O1xuICAgIC8vICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC40KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgLy8gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICAgbGVmdDogMDtcbiAgICAvLyAgICAgICAgdG9wOiAwO1xuICAgIC8vICAgICAgICB6LWluZGV4OiAxO1xuICAgIC8vICAgIH1cbiAgICAvL1xuICAgIC8vICAgICY6YWZ0ZXIge1xuICAgIC8vICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIC8vICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAvLyAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vICAgICAgICB3aWR0aDogOXZ3O1xuICAgIC8vICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC40KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMTAwJSk7XG4gICAgLy8gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgICAgICAgcmlnaHQ6IDA7XG4gICAgLy8gICAgICAgIHRvcDogMDtcbiAgICAvLyAgICAgICAgei1pbmRleDogMTtcbiAgICAvLyAgICB9XG4gICAgLy99XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LXByaW1hcnk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgICAgJi0tbW9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIucGFydG5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgLnBhcnRuZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LW5hdnlibHVlO1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xMnM7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXJ0bmVyOmhvdmVyICYge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvLFxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHRvcDogLTEwMCU7XG4gICAgICAgIGJvdHRvbTogLTEwMCU7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgICByaWdodDogLTEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19oZWFkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIC5lenJpY2h0ZXh0LWZpZWxkIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIGllXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDY7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHMpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MHB4O1xuICAgICAgICB9XG5cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA2O1xuICAgICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAvLyAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIC8vfVxuICAgICAgICAvL1xuICAgICAgICAvL0BtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgLy8gICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAvL31cbiAgICAgICAgLy9cbiAgICAgICAgLy9AbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgIC8vICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgLy99XG4gICAgICAgIC8vXG4gICAgICAgIC8vQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgLy8gICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAvL31cblxuICAgIH1cblxuICAgICZfX21vcmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgbWluLXdpZHRoOiAxMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZS1sNTAwO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5wcm9ncmFtcyB7XG4gICAgbWFyZ2luLXRvcDogMjdweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA4NXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICBjb2xvcjogJHByb2plY3QtcHJpbWFyeTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICAmLS1tb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA3MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWluLWhlaWdodDogMjkwcHg7XG5cbiAgICAgICAgLnByb2dyYW0ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGVyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwMHB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BsaWRlX19zbGlkZSB7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC01cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgkcHJvamVjdC1wcmltYXJ5LCAwLjMpO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14cykge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlICB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgkcHJvamVjdC1wcmltYXJ5LCAwLjMpO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhzKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5wcm9ncmFtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJl9fY2FudmFzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgdG9wOiAtMTAwJTtcbiAgICAgICAgYm90dG9tOiAtMTAwJTtcbiAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX292ZXJsaW5rIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KC4wKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1wcmVzcy1vcGFjaXR5KC4wNCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXRhYi1uYXZpZ2F0aW9uO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1ibGFjaywgMC4wMyk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnRvYXN0cyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICAvLyB6LWluZGV4OiAxODEyOyBjaGFuZ2VkIHRvIGJlIG92ZXIgbW9kYWxcbiAgICB6LWluZGV4OiAxOTEyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAvLyB6LWluZGV4OiAxMjtcbiAgICAgICAgei1pbmRleDogMTkxMjtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLnRvYXN0IHtcbiAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkcHJvamVjdC13aGl0ZSwgMC41KTtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICB3aWR0aDogMjQwcHg7XG4gICAgICAgIG1hcmdpbjogMjBweCAyMHB4IDEwcHggMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtZ3JlZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm94LXNoYWRvdzogLTNweCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICAgIFxuICAgICYudG9hc3QtLXdhcm5pbmcge1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13YXJuaW5nO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICYudG9hc3QtLWFsZXJ0IHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgIH1cblxuICAgICYtaGVhZGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNi41cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDU4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1OHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDU1cHggMCA1MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0zcHg7XG4gICAgXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjVweCAwIDE1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC50b2FzdC0td2FybmluZyAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdhcm5pbmc7XG4gICAgXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLnRvYXN0LS1hbGVydCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWVycm9yO1xuICAgIFxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX2NoZWNrLWNpcmNsZS1pbnZlcnQoJHByb2plY3QtYmx1ZSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19jaGVjay1jaXJjbGUtaW52ZXJ0KCRwcm9qZWN0LWdyZWVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLnRvYXN0LS13YXJuaW5nICYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1tYXRlcmlhbF9fd2FybmluZygkcHJvamVjdC13aGl0ZSk7XG4gICAgXG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1tYXRlcmlhbF9fd2FybmluZygkcHJvamVjdC13aGl0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgLnRvYXN0LS1hbGVydCAmIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtbWF0ZXJpYWxfX2Vycm9yKCRwcm9qZWN0LXdoaXRlKTtcbiAgICBcbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLW1hdGVyaWFsX19lcnJvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1ib2R5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogMTYuNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDVweCAyM3B4IDIzcHggMjNweDtcbiAgICBcbiAgICAgICAgLnRvYXN0LS13YXJuaW5nICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2FybmluZztcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAudG9hc3QtLWFsZXJ0ICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLnRvYXN0LS13YXJuaW5nICYge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIC50b2FzdC0tYWxlcnQgJiB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xvc2Uge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuIiwiLm1vZGFsLWZ1bGwge1xuXG4gICAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1uYXZ5Ymx1ZSwgMC41KTtcbiAgICB9XG5cbiAgICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTA4MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgLm1kYy1kaWFsb2cgJiB7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgcmlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX2Nsb3NlKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDE4cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgICAgICByaWdodDogMjRweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjJweCAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiYm9keSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm1haW4ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5zbGljay1zbGlkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIFxuICAgICYucHJvZHVjdC1jYXJkX19jb250cm9sIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICBcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcIkBtYXRlcmlhbC9jaGVja2JveC9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvY2hlY2tib3gvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2NoZWNrYm94L3ZhcmlhYmxlc1wiO1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JhZGlvL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yYWRpby9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmFkaW8vdmFyaWFibGVzXCI7XG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2VsZWN0L2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zZWxlY3QvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NlbGVjdC92YXJpYWJsZXNcIjtcblxuLnNpdGUtZm9ybSB7XG5cbiAgICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWludmFsaWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRwcm9qZWN0LXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCA2MHB4ICRwcm9qZWN0LWJsdWUtbDk1MCBpbnNldCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcblxuICAgICAgICAgICAgfiBsYWJlbCB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbcmVhZG9ubHldICsgLm1kYy1ub3RjaGVkLW91dGxpbmUtLW5vdGNoZWQge1xuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgICAgICAmLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgLy9AaW5jbHVkZSBtZGMtY2hlY2tib3gtY29udGFpbmVyLWNvbG9ycygkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yLCAkdW5tYXJrZWQtZmlsbC1jb2xvciwgJG1hcmtlZC1zdHJva2UtY29sb3IsICRtYXJrZWQtZmlsbC1jb2xvciwgJGdlbmVyYXRlLWtleWZyYW1lcyk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC1jb250YWluZXItY29sb3JzKCRwcm9qZWN0LWJsdWUtZDUwMCwgJHByb2plY3QtdHJhbnNwYXJlbnQsICRwcm9qZWN0LWJsdWUtZDUwMCwgJHByb2plY3QtYmx1ZS1kNTAwLCAnZmFsc2UnKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWluay1jb2xvcigkcHJvamVjdC13aGl0ZSk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJHByb2plY3QtYmx1ZS1kNTAwKTtcblxuICAgICAgICAubWRjLWNoZWNrYm94X19yaXBwbGUge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDowO1xuICAgICAgICAgICAgICAgIHRvcDowO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1ibHVlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OjA7XG4gICAgICAgICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5tZGMtY2hlY2tib3hfX3JpcHBsZSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMDg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAubWRjLXJhZGlvIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1kYy1yYWRpby11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRwcm9qZWN0LWJsdWUtZDUwMCk7IC8vU2V0cyB0aGUgc3Ryb2tlIGNvbG9yIG9mIGFuIHVuY2hlY2tlZCByYWRpbyBidXR0b25cbiAgICAgICAgQGluY2x1ZGUgbWRjLXJhZGlvLWNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRwcm9qZWN0LWJsdWUtZDUwMCk7IC8vU2V0cyB0aGUgc3Ryb2tlIGNvbG9yIG9mIGEgY2hlY2tlZCByYWRpbyBidXR0b25cbiAgICAgICAgQGluY2x1ZGUgbWRjLXJhZGlvLWluay1jb2xvcigkcHJvamVjdC1ibHVlLWQ1MDApOyAvL1NldHMgdGhlIGluayBjb2xvciBvZiBhIHJhZGlvIGJ1dHRvblxuICAgICAgICBAaW5jbHVkZSBtZGMtcmFkaW8tZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRwcm9qZWN0LWJsdWUpOyAvL1NldHMgdGhlIGNvbG9yIG9mIHRoZSBmb2N1cyBpbmRpY2F0b3JcblxuICAgICAgICAvL0BpbmNsdWRlIG1kYy1yYWRpby1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJGNvbG9yKTtcblxuICAgICAgICArIGxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1yYWRpb19fcmlwcGxlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LWJsdWU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6MDtcbiAgICAgICAgICAgICAgICB0b3A6MDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDowO1xuICAgICAgICAgICAgICAgIHRvcDowO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubWRjLXJhZGlvX19yaXBwbGUge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjA4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLm1kYy1yYWRpby1maWVsZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgLm1kYy1mb3JtLWZpZWxkIHtcbiAgICAgICAgLm1kYy1yYWRpbyB7XG4gICAgICAgICAgICArIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMS41cHg7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgICAgY2FyZXQtY29sb3I6ICRwcm9qZWN0LWJsYWNrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmx1ZS1kNTAwO1xuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsMCwwLC42KTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsMCwwLC42KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpyZXF1aXJlZCB7XG4gICAgICAgICYgfiAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgICAgICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsdWUtZDUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53YXMtdmFsaWRhdGVkICYsXG4gICAgJi53YXMtdmFsaWRhdGVkIHtcblxuICAgICAgICAubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLWNoZWNrYm94IHtcbiAgICAgICAgICAgIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmludmFsaWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW52YWxpZCB+IGxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtcmFkaW8ge1xuICAgICAgICAgICAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6aW52YWxpZCB+IC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSwgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDppbnZhbGlkIH4gbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDppbnZhbGlkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aW52YWxpZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAgICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDppbnZhbGlkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByb2plY3QtbmV3LXJlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cblxuICAgICAgICAubWRjLXRleHQtZmllbGRfX2lucHV0OmludmFsaWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2l0ZS1mb3JtX19jaGVja2JveC0tcmVxdWlyZWQuc2l0ZS1mb3JtX19jaGVja2JveC0tdW5jaGVja2VkIH4gbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlLWZvcm1fX3JhZGlvLS1yZXF1aXJlZC5zaXRlLWZvcm1fX3JhZGlvLS11bmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLWludmFsaWQge1xuICAgICAgICAgICAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fc2VsZWN0LWNhcmV0KCRwcm9qZWN0LW5ldy1yZWQpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtbmV3LXJlZCwgMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1uZXctcmVkLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAgICAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtcmFkaW8tZmllbGQge1xuICAgICAgICAgICAgLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzNXB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taW52YWxpZCB7XG4gICAgICAgICAgICAgICAgLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1mb3JtLWZpZWxkLS1pbnZhbGlkIHtcbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB+IC5zaXRlLWZvcm1fX3ZhbGlkYXRpb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDZweCAwIDAgMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB+IC5uZXdzbGV0dGVyLWFncmVlbWVudHNfX2luZm8gfiAuc2l0ZS1mb3JtX192YWxpZGF0aW9uLXRleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlcnZlci1zaWRlLXZhbGlkYXRlZCB7XG4gICAgICAgIC5zZXJ2ZXItc2lkZS0taW52YWxpZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAgICAgICAuc2VydmVyLXNpZGUtLWludmFsaWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gICAgICAgIC5zZXJ2ZXItc2lkZS0taW52YWxpZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VydmVyLXNpZGUtLWludmFsaWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLXNlbGVjdC0tb3V0bGluZWQuc2VydmVyLXNpZGUtLWludmFsaWQge1xuICAgICAgICAgICAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fc2VsZWN0LWNhcmV0KCRwcm9qZWN0LW5ldy1yZWQpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtbmV3LXJlZCwgMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1uZXctcmVkLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAgICAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5maWxlaW5wdXQtY29udGFpbmVyLmZpbGVpbnB1dC1jb250YWluZXItLWludmFsaWQge1xuICAgICAgICAgICAgLmZpbGVpbnB1dDpub3QoLmZpbGVpbnB1dC1leGlzdHMpIH4gLnNpdGUtZm9ybV9fc2VydmVyLXZhbGlkYXRpb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5qcy1zaWRlLXZhbGlkYXRlZCB7XG4gICAgICAgIC5qcy1zaWRlLS1pbnZhbGlkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5qcy1zaWRlLS1pbnZhbGlkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAuanMtc2lkZS0taW52YWxpZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtc2lkZS0taW52YWxpZCB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5qcy1zaWRlLS1pbnZhbGlkIHtcbiAgICAgICAgICAgIC5tZGMtc2VsZWN0X19hbmNob3Ige1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX3NlbGVjdC1jYXJldCgkcHJvamVjdC1uZXctcmVkKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LW5ldy1yZWQsIDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtbmV3LXJlZCwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgICAgICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAgICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zaXRlLWZvcm1fX3ZhbGlkYXRpb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWZvcm0tZmllbGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAmLS1jaGVja2JveCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LWdyYXktZDQwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTI7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU3ODtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZXpyaWNodGV4dC1maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICAgICAgICAgICAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luOiA5cHggMCAwIDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDhweCAwIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDZweCAwIDAgMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2plY3QtbmF2eWJsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgICAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGV4dC1maWVsZC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLnRleHQtZmllbGQtaGVscGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLnRleHQtZmllbGQtZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgIC50ZXh0LWZpZWxkLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEzcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLXRleHQtZmllbGQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dC1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDZweCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsgLnRleHQtZmllbGQtY29udGFpbmVyLS1oYWxmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYWxmLXNsYXNoIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVza3RvcC1oYWxmIHtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsgLnRleHQtZmllbGQtY29udGFpbmVyLS1kZXNrdG9wLWhhbGYge1xuICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZS1mdWxsIHtcbiAgICAgICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc20gLSAwLjEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yb3ctc2xhc2gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19zbGFzaCgkcHJvamVjdC1ncmF5LWQzMDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDE2cHggY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDE4cHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDIxcHggY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTBweCAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1idXR0b24ge1xuICAgICAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsXG4gICAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICB0b3A6IDEzcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgdG9wOiAxOXB4O1xuXG4gICAgICAgICAgICAuZmlyZWZveCAmIHtcbiAgICAgICAgICAgICAgICB0b3A6IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBub3QgZm9jdXNlZCBib3JkZXIgMXB4XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoLjc1KTtcbiAgICAgICAgdG9wOiAyMXB4O1xuXG4gICAgICAgIC5maXJlZm94ICYge1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICAgIHRvcDogMjRweDtcblxuICAgICAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKC43NSk7XG4gICAgICAgIHRvcDogMjNweDtcblxuICAgICAgICAuZmlyZWZveCAmIHtcbiAgICAgICAgICAgIHRvcDogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgICB0b3A6IDI1cHg7XG5cbiAgICAgICAgICAgIC5maXJlZm94ICYge1xuICAgICAgICAgICAgICAgIHRvcDogMjFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1xuXG4gICAgLy8gZm9jdXNlZCBib3JkZXIgMnB4XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgIHRvcDogMjBweDtcblxuICAgICAgICAuZmlyZWZveCAmIHtcbiAgICAgICAgICAgIHRvcDogMTlweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICB0b3A6IDIzcHg7XG5cbiAgICAgICAgICAgIC5maXJlZm94ICYge1xuICAgICAgICAgICAgICAgIHRvcDogMTlweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgdG9wOiAyM3B4O1xuXG4gICAgICAgIC5maXJlZm94ICYge1xuICAgICAgICAgICAgdG9wOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIHRvcDogMjVweDtcblxuICAgICAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICAgICAgdG9wOiAyMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vXG5cblxuICAgIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbiAgICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCkge1xuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1ibHVlLWQ1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkKSB7XG4gICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9qZWN0LWJsdWUtZDUwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByb2plY3QtYmx1ZS1kNTAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAgICAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1ibHVlLWQ1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCkge1xuICAgICAgICAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1ibHVlLWQ1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICAgICAgICAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJvamVjdC1ibHVlLWQ1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX192YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNnB4KTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgICAgbGVmdDogMTNweDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQ6dmFsaWQgfiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53YXMtdmFsaWRhdGVkIGlucHV0OmludmFsaWQgfiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAud2FzLXZhbGlkYXRlZCAubWRjLXRleHQtZmllbGQtLWludmFsaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC53YXMtdmFsaWRhdGVkIC5zaXRlLWZvcm1fX2NoZWNrYm94LS1yZXF1aXJlZC5zaXRlLWZvcm1fX2NoZWNrYm94LS11bmNoZWNrZWQgfiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIG1hcmdpbjogNnB4IDAgMCAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VydmVyLWVycm9yIHtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fc2VydmVyLXZhbGlkYXRpb24tdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuICAgICAgICBsZWZ0OiAxM3B4O1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZDtcbiAgICAgICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VydmVyLXNpZGUtdmFsaWRhdGVkIC5zZXJ2ZXItc2lkZS0taW52YWxpZCB+ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19qcy12YWxpZGF0aW9uLXRleHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNnB4KTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgICAgbGVmdDogMTNweDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5ldy1yZWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhzKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmpzLXNpZGUtdmFsaWRhdGVkIC5qcy1zaWRlLS1pbnZhbGlkIH4gJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtbWVudSB7XG4gICAgICAgIHotaW5kZXg6IDIwMDA7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWxpc3QtaXRlbSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmUtc2hhcGUtcmFkaXVzKDAsIGZhbHNlKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yKCRwcm9qZWN0LWJsdWUtZDUwMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRwcm9qZWN0LWJsdWUtZDUwMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItb3V0bGluZS1jb2xvcigkcHJvamVjdC1ibHVlLWQ1MDApO1xuICAgICAgICAvL0BpbmNsdWRlIG1kYy1zZWxlY3QtbGFiZWwtY29sb3IoJHByb2plY3QtYmx1ZS1kNTAwKTtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxhYmVsLWNvbG9yKCRwcm9qZWN0LWJsdWUtZDUwMCk7XG5cbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgIGhlaWdodDogNDhweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNXB4IDMxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxNHB4IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLW1lbnUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHggMjVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb25zLXByb2plY3RfX3NlbGVjdC1jYXJldCgkcHJvamVjdC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDdweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNjJweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgICAgdG9wOiAyMnB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgICAgICAgICB0b3A6IDEzcHg7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTJweDtcblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1zZWxlY3RfX2FuY2hvciAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gICAgICAgIC5tZGMtc2VsZWN0X19hbmNob3IubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDYlKSBzY2FsZSguNzUpO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9qZWN0LWJsdWUtZDUwMDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NyUpIHNjYWxlKC43NSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsdWUsIDAuMDYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibHVlLWQ1MDA7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLXNlbGVjdC1pbnB1dC1oaWRkZW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMTAwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtc2VsZWN0LS1jb21wYWN0IHtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweCAzMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTRweCBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICAgICAgaGVpZ2h0OiA1NHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEycHggY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDI1cHg7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1NHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNTNweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgICYubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxM3B4O1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxOXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtc2VsZWN0X19hbmNob3IgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAgICAgICAubWRjLXNlbGVjdF9fYW5jaG9yLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTA0JSkgc2NhbGUoLjc1KTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NyUpIHNjYWxlKC43NSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAubWRjLXRleHQtZmllbGQtLWNvbXBhY3Qge1xuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgICAgICAgICBoZWlnaHQ6IDU0cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxN3B4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxNnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG5vdCBmb2N1c2VkIDFweCBib3JkZXJcbiAgICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIHtcbiAgICAgICAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZmlyZWZveCAmIHtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTlweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGZvY3VzZWQgMnB4IGJvcmRlclxuICAgICAgICAmLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcbiAgICAgICAgICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCB7XG4gICAgICAgICAgICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAxOXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmZpcmVmb3ggJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0ZXh0YXJlYVxuICAgIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWxwLXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICAgIC5tZGMtZm9ybS1maWVsZC0tY2hlY2tib3ggPiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5mbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWR+Lm1kYy1mbG9hdGluZy1sYWJlbDpub3QoLnJlcXVpcmVkKTo6YWZ0ZXIsIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWR+Lm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDpub3QoLnJlcXVpcmVkKTo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gQ3VzdG9tIEthbGlvcCBmb3Jtc1xuLmthbGlvcGN1c3RvbWZvcm1zLWZvcm0ge1xuICAgICYtLWRlZmF1bHQge1xuICAgICAgICBtYXgtd2lkdGg6IDYyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bi0tYmx1ZTpkaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2UtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2plY3QtZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvamVjdC13YXJuaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2plY3QtZ3JlZW47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jdXN0b20tZmllbGQge1xuICAgICYtLWluZGVudGVkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gICAgfVxufVxuXG4uc3RhdGljX3RleHQtZmllbGQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICYtLXNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICYtLW5vcm1hbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG59XG5cbi50aW1lbGVzcy1mb3JtIHtcbiAgICBtYXgtd2lkdGg6IDY4MnB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5hbm51YWwtZm9ybSB7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbn1cblxuLm5ld3NsZXR0ZXItYWdyZWVtZW50cyB7XG4gICAgLmV6cmljaHRleHQtZmllbGQsIC5uZ2wtcmljaF90ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIH1cblxuICAgICAgICBwOm5vdChbY2xhc3NdKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgLmV6cmljaHRleHQtZmllbGQsIC5uZ2wtcmljaF90ZXh0LCAmIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvbGQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nob2ljZXMge1xuICAgICAgICAvKnBhZGRpbmctbGVmdDogNDhweDtcbiAgICAgICAgLm5ld3NsZXR0ZXItYWdyZWVtZW50cy0tY29sbGFwc2FibGUgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH0qL1xuXG4gICAgICAgIC5jbGllbnQtc2V0dGluZ3MgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICAubmV3c2xldHRlci1hZ3JlZW1lbnRzX19jaG9pY2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDclO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nob2ljZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX190b2dnbGUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMThweCAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctdG9wKCRwcm9qZWN0LWJsYWNrKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDdweDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibHVlO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubmV3c2xldHRlci1hZ3JlZW1lbnRzX190b2dnbGUtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ld3NsZXR0ZXItYWdyZWVtZW50c19fdG9nZ2xlLS1zaG93biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19hcnJvdy1ib3R0b20oJHByb2plY3QtYmxhY2spO1xuXG4gICAgICAgICAgICAubmV3c2xldHRlci1hZ3JlZW1lbnRzX190b2dnbGUtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmV3c2xldHRlci1hZ3JlZW1lbnRzX190b2dnbGUtLXNob3duIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFuZWwge1xuICAgICAgICAubmV3c2xldHRlci1hZ3JlZW1lbnRzX19pbmZvIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5mbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDIycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuXG4gICAgICAgICYtLXNwYWNlZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmRlbnRlZCwgLm5ld3NsZXR0ZXItYWdyZWVtZW50c19fY2hvaWNlICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5lenJpY2h0ZXh0LWZpZWxkLCAubmdsLXJpY2hfdGV4dCwgJiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEyLjVweDtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS43O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tZGMtY2hlY2tib3gtbXVsdGlwbGUge1xuXHQuc2l0ZS1mb3JtX192YWxpZGF0aW9uLXRleHQge1xuXHRcdGxlZnQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tYm90dG9tOiAxNHB4O1xuXHRcdG1heC13aWR0aDogdW5zZXQ7XG5cdH1cbn1cblxuLnNlcnZlci1zaWRlLS1pbnZhbGlkIHtcblx0LnNpdGUtZm9ybV9fdmFsaWRhdGlvbi10ZXh0IHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG59XG5cbi53YXMtdmFsaWRhdGVkIC5uZXdzbGV0dGVyLWFncmVlbWVudHMgLnNpdGUtZm9ybV9fY2hlY2tib3gtLXJlcXVpcmVkLnNpdGUtZm9ybV9fY2hlY2tib3gtLXVuY2hlY2tlZCB+IC5zaXRlLWZvcm1fX3ZhbGlkYXRpb24tdGV4dCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4O1xuICAgIH1cbn0iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIiBhcyBmdW5jdGlvbnMyO1xuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9uc1wiIGFzIGRlbnNpdHktZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiIGFzIHJpcHBsZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIiBhcyByaXBwbGUtdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiIGFzIHZhcmlhYmxlczI7XG5AdXNlIFwiQG1hdGVyaWFsL3RvdWNoLXRhcmdldC9taXhpbnNcIiBhcyB0b3VjaC10YXJnZXQtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90b3VjaC10YXJnZXQvdmFyaWFibGVzXCIgYXMgdG91Y2gtdGFyZ2V0LXZhcmlhYmxlcztcbkB1c2UgXCIuL2Z1bmN0aW9uc1wiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbiRyaXBwbGUtdGFyZ2V0OiBcIi5tZGMtcmFkaW9fX3JpcHBsZVwiO1xuXG4vLy9cbi8vLyBSYWRpbyBjb3JlIHN0eWxlcy5cbi8vL1xuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyByYWRpbyBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1yYWRpby1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSByYWRpb1xuXG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMud3JhcHBlcigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC5tZGMtcmFkaW8ge1xuICAgIEBpbmNsdWRlIHVuY2hlY2tlZC1zdHJva2UtY29sb3IodmFyaWFibGVzLiR1bmNoZWNrZWQtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBjaGVja2VkLXN0cm9rZS1jb2xvcih2YXJpYWJsZXMuJGJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yKHZhcmlhYmxlcy4kYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKHZhcmlhYmxlcy4kZGlzYWJsZWQtY2lyY2xlLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgZGlzYWJsZWQtY2hlY2tlZC1zdHJva2UtY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1jaXJjbGUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBkaXNhYmxlZC1pbmstY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1jaXJjbGUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBmb2N1cy1pbmRpY2F0b3ItY29sb3IodmFyaWFibGVzLiRiYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGRlbnNpdHkodmFyaWFibGVzLiRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICB3aWR0aDogdmFyaWFibGVzLiRpY29uLXNpemU7XG4gICAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgYm9yZGVyLWNvbG9yLCBjb2xvcjtcbiAgICB9XG5cbiAgICAvLyBDb250YWluZXIgZm9yIHJhZGlvIGNpcmNsZXMgYW5kIHJpcHBsZS5cbiAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLmV4aXQob3BhY2l0eSksIGZ1bmN0aW9ucy5leGl0KHRyYW5zZm9ybSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdXRlci1jaXJjbGUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLmV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lci1jaXJjbGUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgZnVuY3Rpb25zLmV4aXQodHJhbnNmb3JtKSxcbiAgICAgICAgICBmdW5jdGlvbnMuZXhpdChib3JkZXItY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX25hdGl2ZS1jb250cm9sIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgY3Vyc29yOiBpbmhlcml0O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXRvdWNoIHtcbiAgICAgIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMubWFyZ2luKFxuICAgICAgICAkY29tcG9uZW50LWhlaWdodDogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgICAgICAgJGNvbXBvbmVudC13aWR0aDogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgICAgICAgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0KCRzaXplOiB0b3VjaC10YXJnZXQtdmFyaWFibGVzLiRoZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGZ1bmN0aW9ucy5lbnRlcihvcGFjaXR5KSxcbiAgICAgICAgICBmdW5jdGlvbnMuZW50ZXIodHJhbnNmb3JtKTtcbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLmVudGVyKGJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIGZ1bmN0aW9ucy5lbnRlcih0cmFuc2Zvcm0pLFxuICAgICAgICAgICAgZnVuY3Rpb25zLmVudGVyKGJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvLS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguNSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgZnVuY3Rpb25zLmVudGVyKHRyYW5zZm9ybSksXG4gICAgICAgICAgICBmdW5jdGlvbnMuZW50ZXIoYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkLFxuICBbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2wge1xuICAgICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmZvY3VzIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogbWFwLmdldChyaXBwbGUtdmFyaWFibGVzLiRkYXJrLWluay1vcGFjaXRpZXMsIGZvY3VzKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgZnVuY3Rpb25zLmVudGVyKG9wYWNpdHkpLFxuICAgICAgICAgIGZ1bmN0aW9ucy5lbnRlcih0cmFuc2Zvcm0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIHJhZGlvIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXJhZGlvLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC5tZGMtcmFkaW8ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoXG4gICAgICAkY29sb3I6IHZhcmlhYmxlcy4kYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQge1xuICAgICAgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN7JHJpcHBsZS10YXJnZXR9IHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnRhcmdldC1jb21tb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIHN0cm9rZSBjb2xvciBvZiBhbiB1bmNoZWNrZWQsIGVuYWJsZWQgcmFkaW8gYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIHN0cm9rZSBjb2xvci5cbi8vL1xuQG1peGluIHVuY2hlY2tlZC1zdHJva2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkLXVuY2hlY2tlZF8ge1xuICAgIEBpbmNsdWRlIHN0cm9rZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgc3Ryb2tlIGNvbG9yIG9mIGEgY2hlY2tlZCwgZW5hYmxlZCByYWRpbyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgc3Ryb2tlIGNvbG9yLlxuLy8vXG5AbWl4aW4gY2hlY2tlZC1zdHJva2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1lbmFibGVkLWNoZWNrZWRfIHtcbiAgICBAaW5jbHVkZSBzdHJva2UtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIG9mIGFuIGVuYWJsZWQgcmFkaW8gYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGluayBjb2xvci5cbi8vL1xuQG1peGluIGluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWVuYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIHN0cm9rZSBjb2xvciBvZiBhbiB1bmNoZWNrZWQsIGRpc2FibGVkIHJhZGlvIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBzdHJva2UgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaWYtZGlzYWJsZWQtdW5jaGVja2VkXyB7XG4gICAgQGluY2x1ZGUgc3Ryb2tlLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzdHJva2UgY29sb3Igb2YgYSBjaGVja2VkLCBkaXNhYmxlZCByYWRpbyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgc3Ryb2tlIGNvbG9yLlxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtY2hlY2tlZC1zdHJva2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1kaXNhYmxlZC1jaGVja2VkXyB7XG4gICAgQGluY2x1ZGUgc3Ryb2tlLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpbmsgY29sb3Igb2YgYSBkaXNhYmxlZCByYWRpbyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaW5rIGNvbG9yXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGZvY3VzLWluZGljYXRvci1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHJhZGlvIHRvdWNoIHRhcmdldCBzaXplIHdoaWNoIGNhbiBiZSBtb3JlIHRoYW4gdGhlIHJpcHBsZSBzaXplLiBQYXJhbSBgJHJpcHBsZS1zaXplYCBpcyByZXF1aXJlZCBmb3IgY3VzdG9tXG4vLy8gcmlwcGxlIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgU2l6ZSBvZiB0b3VjaCB0YXJnZXQgKE5hdGl2ZSBpbnB1dCkgaW4gYHB4YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpcHBsZS1zaXplIFNpemUgb2YgcmlwcGxlIGluIGBweGAuIFJlcXVpcmVkIG9ubHkgZm9yIGN1c3RvbSByaXBwbGUgc2l6ZS5cbi8vL1xuQG1peGluIHRvdWNoLXRhcmdldChcbiAgJHNpemU6IHZhcmlhYmxlcy4kcmlwcGxlLXNpemUsXG4gICRyaXBwbGUtc2l6ZTogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRvZmZzZXQ6ICgkcmlwcGxlLXNpemUgLSAkc2l6ZSkgLyAyO1xuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRvcDogJG9mZnNldDtcbiAgICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICAgICAgbGVmdDogJG9mZnNldDtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIGhlaWdodDogJHNpemU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSBmb3IgcmFkaW8uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGRlbnNpdHktc2NhbGUgLSBEZW5zaXR5IHNjYWxlIHZhbHVlIGZvciBjb21wb25lbnQuIFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlIHZhbHVlc1xuLy8vICAgICBgLTNgLCBgLTJgLCBgLTFgLCBgMGAuXG4vLy9cbkBtaXhpbiBkZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkc2l6ZTogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBzaXplLFxuICApO1xuXG4gIEBpbmNsdWRlIHJpcHBsZS1zaXplKCRzaXplLCAkcXVlcnk6ICRxdWVyeSk7XG4gIC8vIFNldHMgdG91Y2ggdGFyZ2V0IHNpemUgc2FtZSBhcyByaXBwbGUgc2l6ZS5cbiAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0KCRzaXplOiAkc2l6ZSwgJHJpcHBsZS1zaXplOiAkc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpZiAkZGVuc2l0eS1zY2FsZSAhPSAwIHtcbiAgICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtcmVzZXRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHJhZGlvIHJpcHBsZSBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gUmlwcGxlIHNpemUgaW4gYHB4YC5cbi8vL1xuQG1peGluIHJpcHBsZS1zaXplKCRzaXplLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJHBhZGRpbmc6ICgkc2l6ZSAtIHZhcmlhYmxlcy4kaWNvbi1zaXplKSAvIDI7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gIH1cblxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAtJHBhZGRpbmc7XG4gICAgICBsZWZ0OiAtJHBhZGRpbmc7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgICBoZWlnaHQ6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBSZXNldHMgdG91Y2ggdGFyZ2V0LXJlbGF0ZWQgc3R5bGVzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIHRoZSBkZW5zaXR5IG1peGluIHRvXG4vLy8gYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGluY3JlYXNlZCB0b3VjaCB0YXJnZXQsIHNpbmNlIGRlbnNlIGNvbXBvbmVudHNcbi8vLyBkb24ndCBoYXZlIHRoZSBzYW1lIGRlZmF1bHQgYTExeSByZXF1aXJlbWVudHMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiB0b3VjaC10YXJnZXQtcmVzZXRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vLy9cbi8vLyBIZWxwcyBzZWxlY3QgdGhlIHJhZGlvIGJhY2tncm91bmQgb25seSB3aGVuIGl0cyBuYXRpdmUgY29udHJvbCBpcyBpbiB0aGVcbi8vLyBlbmFibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtZW5hYmxlZF8ge1xuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkICsge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgcmFkaW8gYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluIHRoZVxuLy8vIGVuYWJsZWQgJiB1bmNoZWNrZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi1lbmFibGVkLXVuY2hlY2tlZF8ge1xuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCkgKyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSByYWRpbyBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW4gdGhlXG4vLy8gZW5hYmxlZCAmIGNoZWNrZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi1lbmFibGVkLWNoZWNrZWRfIHtcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkICsge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgcmFkaW8gYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluIHRoZVxuLy8vIGRpc2FibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtZGlzYWJsZWRfIHtcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgKyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSByYWRpbyBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW4gdGhlXG4vLy8gZGlzYWJsZWQgJiB1bmNoZWNrZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi1kaXNhYmxlZC11bmNoZWNrZWRfIHtcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgJjpub3QoOmNoZWNrZWQpICsge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgcmFkaW8gYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluIHRoZVxuLy8vIGRpc2FibGVkICYgY2hlY2tlZCBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLWRpc2FibGVkLWNoZWNrZWRfIHtcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgJjpjaGVja2VkICsge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGluayBjb2xvciBmb3IgcmFkaW8uIFRoaXMgaXMgd3JhcHBlZCBpbiBhIG1peGluXG4vLy8gdGhhdCBxdWFsaWZpZXMgc3RhdGUgc3VjaCBhcyBgbWRjLXJhZGlvLWlmLWVuYWJsZWRfYFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgc3Ryb2tlIGNvbG9yIGZvciByYWRpby4gVGhpcyBpcyB3cmFwcGVkIGluIGEgbWl4aW5cbi8vLyB0aGF0IHF1YWxpZmllcyBzdGF0ZSBzdWNoIGFzIGBtZGMtcmFkaW8taWYtZW5hYmxlZF9gXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBzdHJva2UtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIiBhcyBzaGFwZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiIGFzIGZsb2F0aW5nLWxhYmVsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvZnVuY3Rpb25zXCIgYXMgc2hhcGUtZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgICBAaW5jbHVkZSBiYXNlXygkcXVlcnkpO1xuXG4gICAgJl9fbGVhZGluZyxcbiAgICAmX19ub3RjaCxcbiAgICAmX190cmFpbGluZyB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItdG9wOiB2YXJpYWJsZXMuJGJvcmRlci13aWR0aCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogdmFyaWFibGVzLiRib3JkZXItd2lkdGggc29saWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2xlYWRpbmcge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KGJvcmRlciwgdmFyaWFibGVzLiRib3JkZXItd2lkdGggc29saWQsIG5vbmUpO1xuXG4gICAgICAgIHdpZHRoOiB2YXJpYWJsZXMuJGxlYWRpbmctd2lkdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fdHJhaWxpbmcge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KGJvcmRlciwgbm9uZSwgdmFyaWFibGVzLiRib3JkZXItd2lkdGggc29saWQpO1xuXG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ub3RjaCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICN7dmFyaWFibGVzLiRsZWFkaW5nLXdpZHRofSAqIDIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC8gLjc1KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCB7XG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gocGFkZGluZywgcmlnaHQsIDhweCk7XG5cbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm8tbGFiZWwge1xuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0cm9rZS13aWR0aCgkd2lkdGgsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItd2lkdGg6ICR3aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gQWRkcyB0b3Agb2Zmc2V0IHRvIGNvbXBlbnNhdGUgZm9yIGJvcmRlciB3aWR0aCBib3ggc2l6ZSB3aGVuIGl0IGlzIG5vdGNoZWQuXG4vLy8gVXNlIHRoaXMgd2hlbiBmbG9hdGluZyBsYWJlbCBpcyBhbGlnbmVkIHRvIGNlbnRlciB0byBwcmV2ZW50IGxhYmVsIGp1bXAgb24gZm9jdXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdHJva2Utd2lkdGggU3Ryb2tlIHdpZHRoIG9mIG5vdGNoZWQgb3V0bGluZSB0aGF0IG5lZWRzIHRvIGJlIG9mZnNldC5cbi8vL1xuQG1peGluIG5vdGNoLW9mZnNldCgkc3Ryb2tlLXdpZHRoLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy10b3A6ICRzdHJva2Utd2lkdGg7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJHJhZGl1czogc2hhcGUtZnVuY3Rpb25zLnByb3AtdmFsdWUoJHJhZGl1cyk7XG5cbiAgQGlmIChsaXN0Lmxlbmd0aCgkcmFkaXVzKSA+IDEpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmUtbGVuZ3RoXG4gICAgQHdhcm4gXCJtZGMtbm90Y2hlZC1vdXRsaW5lLXNoYXBlLXJhZGl1cyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHJhZGl1czsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRlcmlhbC1jb21wb25lbnRzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL2lzc3Vlcy80MTQwXCI7XG4gIH1cblxuICAkcmFkaXVzOiBsaXN0Lm50aCgkcmFkaXVzLCAxKTtcblxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XG4gICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhzaGFwZS1mdW5jdGlvbnMubWFzay1yYWRpdXMoJHJhZGl1cywgMSAwIDAgMSksICRydGwtcmVmbGV4aXZlOiB0cnVlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpZiAoJHJhZGl1cyA+IHZhcmlhYmxlcy4kbGVhZGluZy13aWR0aCkge1xuICAgICAgICB3aWR0aDogJHJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgKCRyYWRpdXMgPiB2YXJpYWJsZXMuJGxlYWRpbmctd2lkdGgpIHtcbiAgICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gI3skcmFkaXVzfSAqIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhzaGFwZS1mdW5jdGlvbnMubWFzay1yYWRpdXMoJHJhZGl1cywgMCAxIDEgMCksICRydGwtcmVmbGV4aXZlOiB0cnVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKFxuICAkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5mbG9hdC1wb3NpdGlvbihcbiAgICAkcG9zaXRpb25ZICsgdmFyaWFibGVzLiRsYWJlbC1hZGp1c3QsICRwb3NpdGlvblgsIDEsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmb250LXNpemU6ICgkc2NhbGUgKiAxcmVtKTtcbiAgICB9XG4gIH1cblxuICAvLyBUd28gc2VsZWN0b3JzIHRvIGVuc3VyZSB3ZSBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGNsYXNzIHdoZW4gYXBwbGllZCBmcm9tIHRoaXMgY29tcG9uZW50IG9yIGEgcGFyZW50IGNvbXBvbmVudC5cbiAgJi5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCxcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIHtcbiAgICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuZmxvYXQtcG9zaXRpb24oJHBvc2l0aW9uWSwgJHBvc2l0aW9uWCwgJHNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgZmxvYXRpbmcgbGFiZWwgcG9zaXRpb24gaW4gbm90Y2hlZCBvdXRsaW5lIHdoZW4gbGFiZWwgaXMgYWZsb2F0LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwb3NpdGlvblkgQWJzb2x1dGUgWS1heGlzIHBvc2l0aW9uIGluIGBweGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwb3NpdGlvblggQWJzb2x1dGUgWC1heGlzIHBvc2l0aW9uIGluIGBweGAuIERlZmF1bHRzIHRvIGAwYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNjYWxlIERlZmF1bHRzIHRvIGAuNzVgLlxuLy8vXG4vLy8gQHRvZG8gUmVwbGFjZSBtaXhpbiBgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbmAgd2l0aCB0aGlzIG1peGluIHdoZW4gZmxvYXRpbmcgbGFiZWwgaXNcbi8vLyAgICAgY2VudGVyIGFsaWduZWQgaW4gYWxsIHRoZSBwbGFjZXMuXG4vLy9cbkBtaXhpbiBmbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbi1hYnNvbHV0ZShcbiAgJHBvc2l0aW9uWSwgJHBvc2l0aW9uWDogMCwgJHNjYWxlOiAuNzUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5mbG9hdC1wb3NpdGlvbihcbiAgICAkcG9zaXRpb25ZICsgdmFyaWFibGVzLiRsYWJlbC1hZGp1c3QtYWJzb2x1dGUsICRwb3NpdGlvblgsIDEsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmb250LXNpemU6ICgkc2NhbGUgKiAxcmVtKTtcbiAgICB9XG4gIH1cblxuICAvLyBUd28gc2VsZWN0b3JzIHRvIGVuc3VyZSB3ZSBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGNsYXNzIHdoZW4gYXBwbGllZCBmcm9tIHRoaXMgY29tcG9uZW50IG9yIGEgcGFyZW50IGNvbXBvbmVudC5cbiAgJi5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCxcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIHtcbiAgICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuZmxvYXQtcG9zaXRpb24oXG4gICAgICAkcG9zaXRpb25ZLCAkcG9zaXRpb25YLCAkc2NhbGUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIGZvciB0aGUgbm90Y2hcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIE1heC13aWR0aCBmb3IgdGhlIG5vdGNoXG4vLy9cbkBtaXhpbiBub3RjaC1tYXgtd2lkdGgoJG1heC13aWR0aCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgOm5vdCgubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5AbWl4aW4gYmFzZV8oJHF1ZXJ5KSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCIgYXMgYW5pbWF0aW9uLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiIGFzIGZsb2F0aW5nLWxhYmVsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvbGluZS1yaXBwbGUvbWl4aW5zXCIgYXMgbGluZS1yaXBwbGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvbWl4aW5zXCIgYXMgbm90Y2hlZC1vdXRsaW5lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lL3ZhcmlhYmxlc1wiIGFzIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIiBhcyByaXBwbGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvZnVuY3Rpb25zXCIgYXMgcmlwcGxlLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiIGFzIHNoYXBlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvZnVuY3Rpb25zXCI7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiIGFzIHR5cG9ncmFwaHktbWl4aW5zO1xuQHVzZSBcIi4vaGVscGVyLXRleHQvbWl4aW5zXCIgYXMgaGVscGVyLXRleHQtbWl4aW5zO1xuQHVzZSBcIi4vaWNvbi92YXJpYWJsZXNcIiBhcyBpY29uLXZhcmlhYmxlcztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIHdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG59XG5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXNlbGVjdCB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyLWZpbGwtY29sb3IodmFyaWFibGVzLiRmaWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yKHZhcmlhYmxlcy4kaW5rLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbGFiZWwtY29sb3IodmFyaWFibGVzLiRsYWJlbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGJvdHRvbS1saW5lLWNvbG9yKHZhcmlhYmxlcy4kYm90dG9tLWxpbmUtaWRsZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGhlbHBlci10ZXh0LW1peGlucy5oZWxwZXItdGV4dC1jb2xvcih2YXJpYWJsZXMuJGhlbHBlci10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAvLyBGb2N1c2VkIHN0YXRlIGNvbG9yc1xuICAgIEBpbmNsdWRlIGZvY3VzZWQtYm90dG9tLWxpbmUtY29sb3IocHJpbWFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGZvY3VzZWQtbGFiZWwtY29sb3IodmFyaWFibGVzLiRmb2N1c2VkLWxhYmVsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAvLyBIb3ZlciBzdGF0ZSBjb2xvcnNcbiAgICBAaW5jbHVkZSBob3Zlci1ib3R0b20tbGluZS1jb2xvcih2YXJpYWJsZXMuJGJvdHRvbS1saW5lLWhvdmVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAvLyBGbG9hdGluZyBsYWJlbCBwcml2YXRlIG1peGluXG4gICAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWxfKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIC8vIHN0cnVjdHVyYWxcbiAgICBAaW5jbHVkZSBzaGFwZS1yYWRpdXMoc21hbGwsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBwYWRkaW5nLWhvcml6b250YWxfKFxuICAgICAgJGxlZnQ6IHZhcmlhYmxlcy4kYW5jaG9yLXBhZGRpbmctbGVmdCxcbiAgICAgICRsZWZ0LXdpdGgtbGVhZGluZy1pY29uOiB2YXJpYWJsZXMuJGFuY2hvci1wYWRkaW5nLWxlZnQtd2l0aC1sZWFkaW5nLWljb24sXG4gICAgICAkcmlnaHQ6IHZhcmlhYmxlcy4kYW5jaG9yLXBhZGRpbmctcmlnaHQsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gTWVudSBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhpcy5cbiAgICB9XG5cbiAgICAmX19kcm9wZG93bi1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGRkLWFycm93LXN2Zy1iZ18odmFyaWFibGVzLiRkcm9wZG93bi1jb2xvciwgdmFyaWFibGVzLiRkcm9wZG93bi1vcGFjaXR5LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sXG4gICAgICAgICAgaWNvbi12YXJpYWJsZXMuJGljb24taG9yaXpvbnRhbC1tYXJnaW4sXG4gICAgICAgICAgaWNvbi12YXJpYWJsZXMuJGljb24taG9yaXpvbnRhbC1tYXJnaW4pO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXJpYWJsZXMuJGRyb3Bkb3duLXRyYW5zaXRpb24tZHVyYXRpb24gYW5pbWF0aW9uLXZhcmlhYmxlcy4kc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgfVxuXG4gICAgICAubWRjLXNlbGVjdC0tZm9jdXNlZCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGQtYXJyb3ctc3ZnLWJnXyh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShwcmltYXJ5KSwgMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgfVxuXG4gICAgICAubWRjLXNlbGVjdC0tYWN0aXZhdGVkICYge1xuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyaWFibGVzLiRkcm9wZG93bi10cmFuc2l0aW9uLWR1cmF0aW9uIGFuaW1hdGlvbi12YXJpYWJsZXMuJHN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19hbmNob3Ige1xuICAgIEBpbmNsdWRlIGhlaWdodCh2YXJpYWJsZXMuJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5mbG9hdC1wb3NpdGlvbih2YXJpYWJsZXMuJGxhYmVsLXBvc2l0aW9uLXksICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZvY3VzZWQtbGluZS1yaXBwbGVfIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAyKTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgaGVscGVyLXRleHRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgdGV4dF8oJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgb3V0bGluZWRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0LS1pbnZhbGlkIHtcbiAgICBAaW5jbHVkZSBsYWJlbC1jb2xvcih2YXJpYWJsZXMuJGVycm9yLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3IodmFyaWFibGVzLiRlcnJvci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGZvY3VzZWQtYm90dG9tLWxpbmUtY29sb3IodmFyaWFibGVzLiRlcnJvci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGZvY3VzZWQtbGFiZWwtY29sb3IodmFyaWFibGVzLiRlcnJvci1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGhlbHBlci10ZXh0LW1peGlucy5oZWxwZXItdGV4dC12YWxpZGF0aW9uLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3ItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIC8vIEhvdmVyIHN0YXRlIGNvbG9yc1xuICAgIEBpbmNsdWRlIGhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3ItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICAgICAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcih2YXJpYWJsZXMuJGVycm9yLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICBAaW5jbHVkZSBob3Zlci1vdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kZXJyb3ItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICAgIEBpbmNsdWRlIGZvY3VzZWQtb3V0bGluZS1jb2xvcih2YXJpYWJsZXMuJGVycm9yLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICAgICAgQGluY2x1ZGUgZGQtYXJyb3ctc3ZnLWJnXyh2YXJpYWJsZXMuJGVycm9yLWNvbG9yLCAxLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtc2VsZWN0LS1yZXF1aXJlZCB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgIC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBjb250ZW50OiBcIipcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ge1xuICAgIEBpbmNsdWRlIHdpdGgtbGVhZGluZy1pY29uXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsIG9uLXN1cmZhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1rZXlmcmFtZXMoXG4gICAgc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbixcbiAgICB2YXJpYWJsZXMuJG91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXG4gICAgdmFyaWFibGVzLiRvdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14LFxuICAgICRxdWVyeTogJHF1ZXJ5XG4gICk7XG4gIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1rZXlmcmFtZXMoXG4gICAgc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwsXG4gICAgdmFyaWFibGVzLiRvdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LFxuICAgIC0odmFyaWFibGVzLiRvdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14KSxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xufVxuXG5AbWl4aW4gcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC5tZGMtc2VsZWN0X19hbmNob3Ige1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5yYWRpdXMtYm91bmRlZCgkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMtYmFzZS1jb2xvcih2YXJpYWJsZXMuJGluay1jb2xvciwgJHJpcHBsZS10YXJnZXQ6IHZhcmlhYmxlcy4kcmlwcGxlLXRhcmdldCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzLW9wYWNpdGllcyhcbiAgICAgIChcbiAgICAgICAgaG92ZXI6IHJpcHBsZS1mdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkodmFyaWFibGVzLiRpbmstY29sb3IsIGhvdmVyKSxcbiAgICAgICAgZm9jdXM6IHJpcHBsZS1mdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkodmFyaWFibGVzLiRpbmstY29sb3IsIGZvY3VzKSxcbiAgICAgICksXG4gICAgICAkcmlwcGxlLXRhcmdldDogdmFyaWFibGVzLiRyaXBwbGUtdGFyZ2V0LFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuXG4gICAgI3t2YXJpYWJsZXMuJHJpcHBsZS10YXJnZXR9IHtcbiAgICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMudGFyZ2V0LWNvbW1vbigkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMob24tc3VyZmFjZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBpbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBjb250YWluZXItZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gZm9jdXNlZC1sYWJlbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgICYubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5pbmstY29sb3IodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGJvdHRvbS1saW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBmb2N1c2VkLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgZm9jdXNlZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGxhYmVsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmbG9hdGluZy1sYWJlbC1taXhpbnMuaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBvdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLW91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgZm9jdXNlZC1vdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGlmIGxpc3QubGVuZ3RoKCRyYWRpdXMpID4gMiB7XG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xuICB9XG5cbiAgJG1hc2tlZC1yYWRpdXM6IGZ1bmN0aW9ucy5tYXNrLXJhZGl1cygkcmFkaXVzLCAxIDEgMCAwKTtcblxuICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKGZ1bmN0aW9ucy5yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKHZhcmlhYmxlcy4kaGVpZ2h0LCAkbWFza2VkLXJhZGl1cyksICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJHJlc29sdmVkLXJhZGl1czogbGlzdC5udGgoZnVuY3Rpb25zLnJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXModmFyaWFibGVzLiRoZWlnaHQsIGZ1bmN0aW9ucy5wcm9wLXZhbHVlKCRyYWRpdXMpKSwgMSk7XG5cbiAgQGlmIChsaXN0Lmxlbmd0aChmdW5jdGlvbnMucHJvcC12YWx1ZSgkcmFkaXVzKSkgPiAxKSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lLWxlbmd0aFxuICAgIEB3YXJuIFwibWRjLXNlbGVjdC1vdXRsaW5lLXNoYXBlLXJhZGl1cyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHJhZGl1czsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRlcmlhbC1jb21wb25lbnRzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL2lzc3Vlcy80MTQwXCI7XG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5zaGFwZS1yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgKCRyZXNvbHZlZC1yYWRpdXMgPiBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzLiRsZWFkaW5nLXdpZHRoKSB7XG4gICAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgICAgcGFkZGluZyxcbiAgICAgICAgICAkcmVzb2x2ZWQtcmFkaXVzICsgbm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcy4kcGFkZGluZyxcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgICAgbWFyZ2luLFxuICAgICAgICAgICRyZXNvbHZlZC1yYWRpdXMgKyBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzLiRwYWRkaW5nLFxuICAgICAgICAgIHZhcmlhYmxlcy4kb3V0bGluZS1sYWJlbC1vZmZzZXRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gUHJpdmF0ZVxuQG1peGluIGZvY3VzZWQtbGluZS1yaXBwbGVfIHtcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb2N1c2VkLW91dGxpbmVfIHtcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZm9jdXNlZC1vdXRsaW5lLWlkbGVfIHtcbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY29udGFpbmVyLWZpbGwtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtc2VsZWN0X19hbmNob3Ige1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgQGluY2x1ZGUgbGluZS1yaXBwbGUtbWl4aW5zLmluYWN0aXZlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBmb2N1c2VkLWxpbmUtcmlwcGxlLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGZvY3VzZWQtbGluZS1yaXBwbGVfIHtcbiAgICBAaW5jbHVkZSBsaW5lLXJpcHBsZS1taXhpbnMuYWN0aXZlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBkZC1hcnJvdy1zdmctYmdfKCRmaWxsLWhleC1udW1iZXIsICRvcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAvLyBMb29rdXAgY29sb3IgYW5kIHJlbW92ZSBsZWFkaW5nICMuXG4gICRmaWxsLWhleC1udW1iZXI6IHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRmaWxsLWhleC1udW1iZXIpO1xuICAkZmlsbC1oZXgtbnVtYmVyOiBzdHJpbmcuc2xpY2Uoc3RyaW5nLnVucXVvdGUoXCIjeyRmaWxsLWhleC1udW1iZXJ9XCIpLCAyKTtcblxuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuY3Rpb24tdXJsLXF1b3Rlc1xuICAgIGJhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTBweCUyMiUyMGhlaWdodCUzRCUyMjVweCUyMiUyMHZpZXdCb3glM0QlMjI3JTIwMTAlMjAxMCUyMDUlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwaWQlM0QlMjJTaGFwZSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBmaWxsJTNEJTIyJTIzI3skZmlsbC1oZXgtbnVtYmVyfSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBvcGFjaXR5JTNEJTIyI3skb3BhY2l0eX0lMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0UnKVxuICAgICAgbm8tcmVwZWF0XG4gICAgICBjZW50ZXI7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIGhvdmVyLW91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNvbWJpbmF0b3Itc3BhY2UtYWZ0ZXJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19hbmNob3I6aG92ZXIge1xuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMuY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgZm9jdXNlZC1vdXRsaW5lXyB7XG4gICAgQGluY2x1ZGUgbm90Y2hlZC1vdXRsaW5lLW1peGlucy5zdHJva2Utd2lkdGgodmFyaWFibGVzLiRvdXRsaW5lZC1zdHJva2Utd2lkdGgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLmNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBmbG9hdGluZy1sYWJlbF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCB2YXJpYWJsZXMuJG91dGxpbmUtbGFiZWwtb2Zmc2V0KTtcblxuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCBub3RjaGVkLW91dGxpbmUtdmFyaWFibGVzLiRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHdpdGgtbGVhZGluZy1pY29uXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAkaWNvbi10b3RhbC13aWR0aDogaWNvbi12YXJpYWJsZXMuJGljb24tc2l6ZSArIDIgKiBpY29uLXZhcmlhYmxlcy4kaWNvbi1ob3Jpem9udGFsLW1hcmdpbjtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRpY29uLXRvdGFsLXdpZHRoKTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkaWNvbi10b3RhbC13aWR0aCAtIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJGxlYWRpbmctd2lkdGgpO1xuICAgICAgfVxuXG4gICAgICAmLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRpY29uLXRvdGFsLXdpZHRoIC0gbm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcy4kbGVhZGluZy13aWR0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLmZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uLWFic29sdXRlKFxuICAgICAgdmFyaWFibGVzLiRvdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LFxuICAgICAgJGljb24tdG90YWwtd2lkdGggLSBpY29uLXZhcmlhYmxlcy4kaWNvbi1ob3Jpem9udGFsLW1hcmdpbiAtIG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJG5vdGNoLWd1dHRlci1zaXplLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICAgIEBpbmNsdWRlIGZsb2F0aW5nLWxhYmVsLW1peGlucy5zaGFrZS1hbmltYXRpb24oc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLnNoYWtlLWFuaW1hdGlvbihzZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAzMnB4IC8qIGxlZnQtdmFsdWUgKi8sIDMycHggLyogcmlnaHQtdmFsdWUgKi8pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdGV4dF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShzdWJ0aXRsZTEsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6Oi1tcy12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgaGVpZ2h0OiB2YXJpYWJsZXMuJHNlbGVjdGVkLXRleHQtaGVpZ2h0O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNoZWV0XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlZF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBjb250YWluZXItZmlsbC1jb2xvcl8odmFyaWFibGVzLiRkaXNhYmxlZC1maWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLmluay1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWxhYmVsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XG4gICAgQGluY2x1ZGUgZGQtYXJyb3ctc3ZnLWJnXyh2YXJpYWJsZXMuJGRyb3Bkb3duLWNvbG9yLCB2YXJpYWJsZXMuJGRpc2FibGVkLWRyb3Bkb3duLW9wYWNpdHksICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtbGluZS1yaXBwbGUge1xuICAgIEBpbmNsdWRlIGxpbmUtcmlwcGxlLW1peGlucy5pbmFjdGl2ZS1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvLyBUT0RPKGIvMTQ2MDgwMDA2KTogRml4IGluY29ycmVjdCBzdHlsaW5nXG4gICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXNlbGVjdF9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCB2YXJpYWJsZXMuJGRpc2FibGVkLWljb24tY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsIHZhcmlhYmxlcy4kZGlzYWJsZWQtaW5rLWNvbG9yKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yXyh0cmFuc3BhcmVudCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG91dGxpbmUtY29sb3JfKHZhcmlhYmxlcy4kb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmVkXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG91dGxpbmUtY29sb3IodmFyaWFibGVzLiRvdXRsaW5lZC1pZGxlLWJvcmRlciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Zlci1vdXRsaW5lLWNvbG9yKHZhcmlhYmxlcy4kb3V0bGluZWQtaG92ZXItYm9yZGVyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZvY3VzZWQtb3V0bGluZS1jb2xvcihwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG91dGxpbmUtc2hhcGUtcmFkaXVzKHNtYWxsLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgQGluY2x1ZGUgZmxvYXRpbmctbGFiZWwtbWl4aW5zLnNoYWtlLWFuaW1hdGlvbihzZWxlY3Qtb3V0bGluZWQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLmZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uLWFic29sdXRlKHZhcmlhYmxlcy4kb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG5vdGNoZWQtb3V0bGluZS1taXhpbnMubm90Y2gtb2Zmc2V0KG5vdGNoZWQtb3V0bGluZS12YXJpYWJsZXMuJGJvcmRlci13aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtc2VsZWN0LS1mb2N1c2VkIHtcbiAgICBAaW5jbHVkZSBub3RjaGVkLW91dGxpbmUtbWl4aW5zLm5vdGNoLW9mZnNldCh2YXJpYWJsZXMuJG91dGxpbmVkLXN0cm9rZS13aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBoZWxwZXItdGV4dF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgIC5tZGMtc2VsZWN0X19hbmNob3IgKyAmIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtc2VsZWN0X19hbmNob3IgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dDpub3QoLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBob3Jpem9udGFsIHBhZGRpbmcgdG8gdGhlIHNlbGVjdGVkIHRleHRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCAtIGxlZnQgc2lkZSBwYWRkaW5nXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0LXdpdGgtbGVhZGluZy1pY29uIC0gbGVmdC1zaWRlIHBhZGRpbmcgd2hlbiBhIGxlYWRpbmdcbi8vLyAgICAgaWNvbiBpcyBwcmVzZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCAtIHJpZ2h0LXNpZGUgcGFkZGluZzsgbm90ZSB0aGF0IGEgdHJhaWxpbmcgaWNvbiBpc1xuLy8vICAgICBhbHdheXMgcHJlc2VudC5cbkBtaXhpbiBwYWRkaW5nLWhvcml6b250YWxfKFxuICAkbGVmdCxcbiAgJGxlZnQtd2l0aC1sZWFkaW5nLWljb24sXG4gICRyaWdodCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXNlbGVjdF9fYW5jaG9yIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KFxuICAgICAgICBwYWRkaW5nLFxuICAgICAgICAkbGVmdCxcbiAgICAgICAgJHJpZ2h0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2FuY2hvciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShcbiAgICAgICAgcGFkZGluZyxcbiAgICAgICAgJGxlZnQtd2l0aC1sZWFkaW5nLWljb24sXG4gICAgICAgICRyaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBoZWlnaHQgb2YgZGVmYXVsdCBzZWxlY3QgdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsIFNldHMgdGhlIG1pbmltdW0gaGVpZ2h0IGZvclxuLy8vICAgICBmaWxsZWQgc2VsZWN0cyBhdCB3aGljaCB0byBhbGxvdyBmbG9hdGluZyBsYWJlbHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaWxsZWQtYmFzZWxpbmUtdG9wIFRoZSBiYXNlbGluZSBmcm9tIHRoZSB0b3Agb2YgdGhlIGFuY2hvclxuLy8vICAgICB0aGF0IHRoZSBpbnB1dCBzaG91bGQgYmUgYWxpZ25lZCB0byBmb3IgYSBmaWxsZWQgdmFyaWFudCB3aXRoIGEgbGFiZWxcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vXG5AbWl4aW4gaGVpZ2h0KFxuICAkaGVpZ2h0LFxuICAkbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbDogdmFyaWFibGVzLiRtaW5pbXVtLWhlaWdodC1mb3ItZmlsbGVkLWxhYmVsLFxuICAkZmlsbGVkLWJhc2VsaW5lLXRvcDogdmFyaWFibGVzLiRmaWxsZWQtYmFzZWxpbmUtdG9wLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICAvLyBGaWxsZWQgdmFyaWFudCBpcyBhbGlnbmVkIHRvIGJhc2VsaW5lLi4uXG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLmJhc2VsaW5lKCR0b3A6ICRmaWxsZWQtYmFzZWxpbmUtdG9wLCAkZGlzcGxheTogaW5saW5lLWZsZXgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgLy8gLi4udW5sZXNzIGl0IGlzIHRvbyBzbWFsbCB0byBkaXNwbGF5IGEgbGFiZWxcbiAgQGlmICRoZWlnaHQgPCAkbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbCB7XG4gICAgQGluY2x1ZGUgY2VudGVyLWFsaWduZWRfKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgJjpub3QoLm1kYy1zZWxlY3QtLW91dGxpbmVkKSB7XG4gICAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPdXRsaW5lZCBhbmQgbm8tbGFiZWwgdmFyaWFudHMgYXJlIGFsd2F5cyBjZW50ZXJlZFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgJixcbiAgLm1kYy1zZWxlY3QtLW5vLWxhYmVsICYge1xuICAgIEBpbmNsdWRlIGNlbnRlci1hbGlnbmVkXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8gUmVtb3ZlcyBmaWxsZWQgYmFzZWxpbmUgYWxpZ25tZW50XG5AbWl4aW4gY2VudGVyLWFsaWduZWRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vIEluIG9yZGVyIGZvciBhIGZsZXhib3ggY29udGFpbmVyIHRvIHBhcnRpY2lwYXRlIGluIGJhc2VsaW5lIGFsaWdubWVudCxcbiAgICAvLyBpdCBmb2xsb3dzIHRoZXNlIHJ1bGVzIHRvIGRldGVybWluZSB3aGVyZSBpdHMgYmFzZWxpbmUgaXM6XG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvI2ZsZXgtYmFzZWxpbmVzXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBsZWFkaW5nIGljb25zIFwiY29udHJvbGxpbmdcIiB0aGUgYmFzZWxpbmUgKHNpbmNlIHRoZXlcbiAgICAvLyBhcmUgdGhlIGZpcnN0IGNoaWxkKSwgZmxleGJveCB3aWxsIGdlbmVyYXRlIGEgYmFzZWxpbmUgZnJvbSBhbnkgY2hpbGRcbiAgICAvLyBmbGV4IGl0ZW1zIHRoYXQgcGFydGljaXBhdGUgaW4gYmFzZWxpbmUgYWxpZ25tZW50LlxuICAgIC8vXG4gICAgLy8gSWNvbnMgYXJlIHNldCB0byBcImFsaWduLXNlbGY6IGNlbnRlclwiLCB3aGlsZSBhbGwgb3RoZXIgY2hpbGRyZW4gYXJlXG4gICAgLy8gYWxpZ25lZCB0byBiYXNlbGluZS4gVGhlIG5leHQgcHJvYmxlbSBpcyBkZWNpZGluZyB3aGljaCBjaGlsZCBpc1xuICAgIC8vIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBiYXNlbGluZS5cbiAgICAvL1xuICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCB0aGUgaXRlbSB3aXRoIHRoZSBsYXJnZXN0IGRpc3RhbmNlIGJldHdlZW4gaXRzXG4gICAgLy8gYmFzZWxpbmUgYW5kIHRoZSBlZGdlIG9mIHRoZSBjcm9zcyBheGlzIGlzIHBsYWNlZCBmbHVzaCB3aXRoIHRoYXQgZWRnZSxcbiAgICAvLyBtYWtpbmcgaXQgdGhlIGJhc2VsaW5lIG9mIHRoZSBjb250YWluZXIuXG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvI2Jhc2VsaW5lLXBhcnRpY2lwYXRpb25cbiAgICAvL1xuICAgIC8vIEZvciB0aGUgZmlsbGVkIHZhcmlhbnQsIHRoZSBwc2V1ZG8gOjpiZWZvcmUgc3RydXQgaXMgdGhlIFwibGFyZ2VzdFwiXG4gICAgLy8gY2hpbGQgc2luY2UgdGhlIGlucHV0IGhhcyBhIGhlaWdodCBvZiAyOHB4IGFuZCB0aGUgc3RydXQgaXMgNDBweC4gV2VcbiAgICAvLyBjYW4gZW11bGF0ZSBjZW50ZXIgYWxpZ25tZW50IGFuZCBmb3JjZSB0aGUgYmFzZWxpbmUgdG8gdXNlIHRoZSBpbnB1dFxuICAgIC8vIHRleHQgYnkgbWFraW5nIHRoZSBpbnB1dCB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lciBhbmQgcmVtb3ZpbmdcbiAgICAvLyB0aGUgYmFzZWxpbmUgc3RydXQuXG4gICAgLy9cbiAgICAvLyBJRTExIGRvZXMgbm90IHJlc3BlY3QgdGhpcywgYW5kIG1ha2VzIHRoZSBsZWFkaW5nIGljb24gKGlmIHByZXNlbnQpXG4gICAgLy8gdGhlIGJhc2VsaW5lLlxuICAgIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2Fzczpjb2xvclwiO1xuQHVzZSBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvdmFyaWFibGVzXCIgYXMgbm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbkBmdW5jdGlvbiBnZXQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSgkc2VsZWN0LWFuY2hvci1oZWlnaHQpIHtcbiAgQHJldHVybiAkc2VsZWN0LWFuY2hvci1oZWlnaHQgLyAyICsgbm90Y2hlZC1vdXRsaW5lLXZhcmlhYmxlcy4kbGFiZWwtYm94LWhlaWdodCAvIDI7XG59XG4kcmlwcGxlLXRhcmdldDogJy5tZGMtc2VsZWN0X19yaXBwbGUnO1xuJGFycm93LXBhZGRpbmc6IDUycHggIWRlZmF1bHQ7XG4kbGFiZWwtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRoZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWluaW11bS1oZWlnaHQtZm9yLWZpbGxlZC1sYWJlbDogNTJweCAhZGVmYXVsdDtcbiRmaWxsZWQtYmFzZWxpbmUtdG9wOiA0MHB4ICFkZWZhdWx0O1xuJHNlbGVjdGVkLXRleHQtaGVpZ2h0OiAyOHB4ICFkZWZhdWx0O1xuJGFuY2hvci1wYWRkaW5nLWxlZnQ6IDE2cHggIWRlZmF1bHQ7XG4kYW5jaG9yLXBhZGRpbmctbGVmdC13aXRoLWxlYWRpbmctaWNvbjogMCAhZGVmYXVsdDtcbiRhbmNob3ItcGFkZGluZy1yaWdodDogMCAhZGVmYXVsdDtcbiRvdXRsaW5lZC1zdHJva2Utd2lkdGg6IDJweCAhZGVmYXVsdDtcblxuJGluay1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1jb2xvcjogdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kaWNvbi1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcbiRsYWJlbC1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuJGZvY3VzZWQtbGFiZWwtY29sb3I6IHJnYmEodmFyaWFibGVzLnByb3AtdmFsdWUocHJpbWFyeSksIC44NykgIWRlZmF1bHQ7XG4kYm90dG9tLWxpbmUtaWRsZS1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjQyKSAhZGVmYXVsdDtcbiRib3R0b20tbGluZS1ob3Zlci1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRoZWxwZXItdGV4dC1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuXG4kZmlsbC1jb2xvcjogY29sb3IubWl4KHZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCB2YXJpYWJsZXMucHJvcC12YWx1ZShzdXJmYWNlKSwgNCUpICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tb3BhY2l0eTogLjU0ICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlZCBTdHlsZXNcbiRkaXNhYmxlZC1sYWJlbC1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM4KSAhZGVmYXVsdDtcbiRkaXNhYmxlZC1pY29uLWNvbG9yOiByZ2JhKHZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzgpICFkZWZhdWx0O1xuJGRpc2FibGVkLWluay1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM4KSAhZGVmYXVsdDtcbiRkaXNhYmxlZC1maWxsLWNvbG9yOiBjb2xvci5taXgodmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksIHZhcmlhYmxlcy5wcm9wLXZhbHVlKHN1cmZhY2UpLCAyJSkgIWRlZmF1bHQ7XG4kZGlzYWJsZWQtZHJvcGRvd24tb3BhY2l0eTogLjM4ICFkZWZhdWx0O1xuXG4kb3V0bGluZWQtaWRsZS1ib3JkZXI6IHJnYmEodmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zOCkgIWRlZmF1bHQ7XG4kb3V0bGluZWQtaG92ZXItYm9yZGVyOiByZ2JhKHZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuXG4vLyBzaG91bGQgYmUgLjA2IGFmdGVyIG1kYy1zZWxlY3Qgb3BhY2l0eSBpcyBhcHBsaWVkXG4kb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyOiByZ2JhKHZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMTYpICFkZWZhdWx0O1xuXG4kbGFiZWwtcG9zaXRpb24teTogMTA2JSAhZGVmYXVsdDtcbiRvdXRsaW5lLWxhYmVsLW9mZnNldDogMTZweCAhZGVmYXVsdDtcbiRvdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15OiBnZXQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSgkaGVpZ2h0KSAhZGVmYXVsdDtcbiRvdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14OiAzMnB4ICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG5cbi8vIEVycm9yIGNvbG9yc1xuJGVycm9yLWNvbG9yOiBlcnJvciAhZGVmYXVsdDtcbiIsIi5tb2RhbC1mdWxsLS1uZXdzbGV0dGVyIHtcbiAgLm1vZGFsLWZ1bGwge1xuICAgICZfX2NvbnRlbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19jbG9zZSgkcHJvamVjdC13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgICAgbWF4LXdpZHRoOiA3NTBweDtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsLW5ld3NsZXR0ZXIge1xuICAmX19yb3cge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi0tY2VudGVyIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gICZfX2Zvcm0ge1xuICAgIHBhZGRpbmc6IDAgNTBweDtcbiAgICBtYXJnaW4tdG9wOiAtNDVweDtcblxuICAgIC5tZGMtdGV4dC1maWVsZCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJvamVjdC11bmljZWY7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jdXN0b20tdmFsaWRhdGlvbi10ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjZweCk7XG4gICAgICBib3R0b206IC0xNHB4O1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHByb2plY3QtbmV3LXJlZCAhaW1wb3J0YW50O1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1uZXctcmVkICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveC0taW52YWxpZCB7XG4gICAgICAmIH4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmV3LXJlZCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCB+IC5jdXN0b20tdmFsaWRhdGlvbi10ZXh0LFxuICAgIC5tZGMtY2hlY2tib3gtLWludmFsaWQgfiAuY3VzdG9tLXZhbGlkYXRpb24tdGV4dCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAmX19zZW5kIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICZfX2luZm8ge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICAuc2l0ZS1mb3JtIC5tZGMtZm9ybS1maWVsZC0tY2hlY2tib3ggbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fZmlndXJlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19jYW52YXMge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgY2FudmFzICsgcGljdHVyZSAmIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC1uZXdzbGV0dGVyLXRoYW5rcyB7XG4gICZfX2ZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJl9fY2FudmFzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJl9faW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIGNhbnZhcyArIHBpY3R1cmUgJiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxufSIsIi5sb2dvcyB7XG4gICAgbWFyZ2luLXRvcDogMjdweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA4NXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIC5sb2dvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICB9XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICAgIC5sb2dvIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1wcmltYXJ5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICAgICYtLW1vcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDcwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiAyOTBweDtcblxuICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGxpZGVfX3NsaWRlIHtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogLTVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKCRwcm9qZWN0LXByaW1hcnksIDAuMyk7XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXhzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTE1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5sb2dvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9faW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHRvcDogLTEwMCU7XG4gICAgICAgIGJvdHRvbTogLTEwMCU7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgICByaWdodDogLTEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19vdmVybGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC1ibGFjayk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSguMDQpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi10YWItbmF2aWdhdGlvbjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5jYXJkLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoJHByb2plY3QtcHJpbWFyeSwgMC4zKTtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMnB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMTdweCAzM3B4IDE3cHggMjJweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDczcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJvamVjdC1ncmF5LWw1MDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTE1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IC0yMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTI1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibGFjaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgaGVpZ2h0OiA3NnB4O1xuXG4gICAgICAgIC5zaG93ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgICB9XG5cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbmZvIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcHJpbWFyeTtcbiAgICAgICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICBoZWlnaHQ6IDE3cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aW1lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmxhY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgaGVpZ2h0OiAxN3B4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsgLy8gMzFcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG4gICAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ3NjsgLy8gMzFcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMTJweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICBvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICAmLS1kZXNrdG9wLFxuICAgICAgICAmLS1tb2JpbGV7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1wYW50b25lLXdhcm0tZ3JleS0xO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgY2FudmFzICsgcGljdHVyZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC1ibGFjayk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSguMDQpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tdGFiLW5hdmlnYXRpb247XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHJnYmEoJHByb2plY3QtYmx1ZSwgMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgcmdiYSgkcHJvamVjdC1ibHVlLCAwKTtcbiAgICAgICAgICAgIHRvcDogLTE1cHg7XG4gICAgICAgICAgICBsZWZ0OiAtMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmQtMjpob3ZlciAmIHtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXZlcnRpY2FsIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAuY2FyZC0yX19oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkLTJfX2ZpZ3VyZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkLTJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2xpZGVyX19pdGVtIC5jYXJkLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoJHByb2plY3QtcHJpbWFyeSwgMC4zKTtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMnB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMTdweCAzM3B4IDE3cHggMjJweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDczcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcHJvamVjdC1ncmF5LWw1MDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTE1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IC0yMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTI1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1ibGFjaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgaGVpZ2h0OiA3NnB4O1xuXG4gICAgICAgIC5zaG93ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgICB9XG5cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbmZvIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC13aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtcHJpbWFyeTtcbiAgICAgICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgICAgICBoZWlnaHQ6IDE3cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aW1lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBjb2xvcjogJHByb2plY3QtYmxhY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgaGVpZ2h0OiAxN3B4O1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsgLy8gMzFcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG4gICAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eGwpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ3NjsgLy8gMzFcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMTJweDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYW52YXMge1xuICAgICAgICAmLS1kZXNrdG9wLFxuICAgICAgICAmLS1tb2JpbGV7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvamVjdC1wYW50b25lLXdhcm0tZ3JleS0xO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgY2FudmFzICsgcGljdHVyZSAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGluayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2U7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSguMCk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkcHJvamVjdC1ibGFjayk7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSguMDQpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tdGFiLW5hdmlnYXRpb247XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHJnYmEoJHByb2plY3QtYmx1ZSwgMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgcmdiYSgkcHJvamVjdC1ibHVlLCAwKTtcbiAgICAgICAgICAgIHRvcDogLTE1cHg7XG4gICAgICAgICAgICBsZWZ0OiAtMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcmQtMjpob3ZlciAmIHtcbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJHByb2plY3QtYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXZlcnRpY2FsIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAuY2FyZC0yX19oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkLTJfX2ZpZ3VyZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJkLTJfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGVyby12aWV3IHtcbiAgLnRvcGJhciB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IHVuc2V0O1xuICB9XG59XG5cbi50b3BiYXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMTFweDtcblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgIHRvcDogLTE2MXB4O1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYtcmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYteWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkYwMTtcbiAgICAgICAgY29sb3I6ICMwMDA7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pYmV4YS1idG4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgYSB7XG4gICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICB9XG4gICAgfVxufSIsIi50ZXh0X3dpdGhfbnVtYmVycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3QtYmx1ZS1sOTAwO1xuICAgIGNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZTtcbiAgICBwYWRkaW5nOiAzNXB4IDAgMzVweCAwO1xuICAgIG92ZXJmbG93OiBpbmhlcml0O1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICBwYWRkaW5nOiA3MHB4IDA7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICAgIG1heC13aWR0aDogMTM0MnB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogYXV0bztcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1uYXZ5Ymx1ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zcGxpZGVfX2Fycm93cyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNwbGlkZV9fYXJyb3cge1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDc1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCA3NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX251bWJlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgY29sb3I6ICRwcm9qZWN0LW5hdnlibHVlO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14eHMpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLXh4cykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi14bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgICAgICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTM1cHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC03MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faHIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJvamVjdC1ibHVlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIGhlaWdodDogNDVweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG59IiwiLnRleHRfd2l0aF9pbWFnZSB7XG4gICAgcGFkZGluZzogMDtcblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cdFx0bWluLWhlaWdodDogMzAwcHg7XG5cbiAgICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1zbSkge1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICB9XG5cblx0XHRwaWN0dXJlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRwaWN0dXJlIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0fVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4NjBweDtcbiAgICAgICAgcGFkZGluZzogNDBweDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXhsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICRzY3JlZW4tc20pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICB3aWR0aDogMjUwcHg7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG59XG4iLCIuaG9tZS1wcm9kdWN0cyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHNjcmVlbi1sZykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG5cdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHQuZ2xpZGUtLXN3aXBlYWJsZSB7XG5cdFx0XHRjdXJzb3I6IGF1dG8gIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmX190aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdGNvbG9yOiAkcHJvamVjdC1vcmFuZ2U7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzVweDtcblx0XHRtYXJnaW4tdG9wOiAzNXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRmb250LXNpemU6IDM2cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzNXB4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDM1cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAzNXB4O1xuXHRcdH1cblxuXHRcdEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAzNXB4O1xuXHRcdH1cblx0fVxuXG4gICAgJl9fc2xpZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLWxnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5nbGlkZV9fdHJhY2sge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teGwpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbGcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzk2cHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzODFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC04MHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmV2IHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzRweCAzNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDZweCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LXdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAudGFiLW5hdmlnYXRpb24gJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJvamVjdC1ibGFjaywgMC4wMyk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctbGVmdCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbnMtcHJvamVjdF9fYXJyb3ctcmlnaHQoJHByb2plY3QtYmxhY2spO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDM0cHggMzRweDtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgNnB4IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTIwcHg7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByb2plY3QtYmxhY2ssIDAuMDMpO31cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC50YWItbmF2aWdhdGlvbiAmIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9qZWN0LWJsYWNrLCAwLjAzKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29ucy1wcm9qZWN0X19hcnJvdy1yaWdodCgkcHJvamVjdC1ibGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYShtaW4td2lkdGg6ICRzY3JlZW4teHhsKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZSB7XG4gICAgICAgICAgICBAbWVkaWEobWluLXdpZHRoOiAkc2NyZWVuLW1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICB9XG5cbiAgICAmX19ociB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHByb2plY3Qtb3JhbmdlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgY29sb3I6ICNGMjZBMjEgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogI0YyNkEyMSAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgaGVpZ2h0OiA0NXB4O1xuICAgICAgei1pbmRleDogMTtcblxuICAgICAgQG1lZGlhKG1heC13aWR0aDogJHNjcmVlbi1tZCkge1xuICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgfVxufSIsIi5jYXJkLTgge1xuICAgIGhlaWdodDogbWF4LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2plY3Qtd2hpdGU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmX19pbmZvIHtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHBpY3R1cmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIHBpY3R1cmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByb2plY3Qtb3JhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2Vjb25kIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuY2FyZC04X19maWd1cmUge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbmltYXRlZDpob3ZlciB7XG4gICAgICAgICAgICAuY2FyZC04X19maWd1cmUge1xuICAgICAgICAgICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLXNlY29uZCB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogODJweDtcbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGNvbG9yOiAkcHJvamVjdC1uYXZ5LWJsdWUtZGFyaztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZfX2hlYWRsaW5lLWNvdW50LWluZm8ge1xuICAgICAgICBjb2xvcjogJHByb2plY3QtbmF2eS1ibHVlLWRhcms7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBjb2xvcjogJHByb2plY3Qtb3JhbmdlO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDV2dztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDZ2dztcbiAgICAgICAgdHJhbnNpdGlvbjogLjQ1cztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgICYubWRjLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9qZWN0LW9yYW5nZTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDN2dyA1dnc7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNHZ3O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDR2dztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/