/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-13.use[1]!./node_modules/resolve-url-loader/index.js??clonedRuleSet-13.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-13.use[3]!./assets/styles/app.scss ***!
  \***************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
:root {
  --zoom: 1;
}

:root {
  --color-light-blue: #D8EEF5;
  --color-blue: #0089C6;
  --color-dark-blue: #005191;
  --color-text-color: #003056;
  --color-header-color: #e5edf4;
  --color-orange: #E7622D;
  --color-gray: #A7A7A7;
  --color-succes: #7AC690;
  --color-error: #EF8D64;
  --color-black: #000000;
  --color-matt-black: #1A171B;
  --color-white: #FFFFFF;
  --color-beige: #F4EDE5;
  --color-green: #06E68F;
  --color-light-gray: #f6f6f4;
  --color-dark-gray: #333333;
  --color-label-gray: #494949;
  --color-dusty-gray: #979797;
  --color-light-black: #202020;
  --color-medium-gray: #8b8b8b;
  --color-red: #eb0000;
  --color-default: #eb0000;
  --color-default-light: #ff1f1f;
  --color-light-purple: #EFECF8;
  --color-border: #EBEBEB;
  --color-placeholder: #E7E7E7;
}

body {
  padding: 0;
  margin: 0;
}

ul, ol, p, h1, h2, h3, h4, h5, h6, blockquote, pre, dl, dd, figure, hr, fieldset, legend {
  margin-top: 0;
}

* {
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0;
  -webkit-padding-start: 0;
  -webkit-padding-after: 0;
  -webkit-padding-before: 0;
  -webkit-padding-end: 0;
  -webkit-margin-before: 0;
  margin-after: 0;
  margin-start: 0;
  margin-end: 0;
  padding-start: 0;
  padding-after: 0;
  padding-before: 0;
  padding-end: 0;
  -moz-margin-after: 0;
  -moz-margin-start: 0;
  -moz-margin-end: 0;
  -moz-padding-start: 0;
  -moz-padding-after: 0;
  -moz-padding-before: 0;
  -moz-padding-end: 0;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.full-width {
  width: 100%;
}

.hidden {
  display: none;
}

.cursor-pointer {
  cursor: pointer;
}

.cursor-default {
  cursor: default;
}

@font-face {
  font-family: "sun";
  src: url(/build/fonts/sun3-webfont.e8adab3e.eot);
  src: url(/build/fonts/sun3-webfont.e8adab3e.eot?#iefix) format("embedded-opentype"), url(/build/fonts/sun3-webfont.c9868d02.woff) format("woff"), url(/build/fonts/sun3-webfont.a6c59346.ttf) format("truetype"), url(/build/images/sun3-webfont.64cffcd5.svg) format("svg");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "sun";
  src: url(/build/fonts/sun5-webfont.83c38ba1.eot);
  src: url(/build/fonts/sun5-webfont.83c38ba1.eot?#iefix) format("embedded-opentype"), url(/build/fonts/sun5-webfont.0e9794b4.woff) format("woff"), url(/build/fonts/sun5-webfont.7ab2fc9e.ttf) format("truetype"), url(/build/images/sun5-webfont.233712d8.svg) format("svg");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "sun";
  src: url(/build/fonts/sun5i-webfont.17e6aee2.eot);
  src: url(/build/fonts/sun5i-webfont.17e6aee2.eot?#iefix) format("embedded-opentype"), url(/build/fonts/sun5i-webfont.39d0a74e.woff) format("woff"), url(/build/fonts/sun5i-webfont.8bbda444.ttf) format("truetype"), url(/build/images/sun5i-webfont.70e1c55f.svg) format("svg");
  font-weight: 500;
  font-style: italic;
}
@font-face {
  font-family: "sun";
  src: url(/build/fonts/sun7-webfont.295733f0.eot);
  src: url(/build/fonts/sun7-webfont.295733f0.eot?#iefix) format("embedded-opentype"), url(/build/fonts/sun7-webfont.ffc207bf.woff) format("woff"), url(/build/fonts/sun7-webfont.7462584c.ttf) format("truetype"), url(/build/images/sun7-webfont.2c82c06e.svg) format("svg");
  font-weight: 700;
  font-style: normal;
}
body {
  font-size: 17px;
  line-height: 1.2;
  font-family: "Sun", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: normal;
  color: #003056;
}
@media screen and (min-width: 1921px) {
  body {
    line-height: 1.4;
  }
}

p {
  margin-bottom: calc(4.2666666667 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  p {
    margin-bottom: calc(2.0833333333 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  p {
    margin-bottom: calc(1.6666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  p {
    margin-bottom: 32px;
  }
}

[v-cloak] {
  display: none !important;
}

*:focus {
  outline: none !important;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html, body {
  -webkit-text-size-adjust: none;
  position: relative;
  min-height: 100%;
  min-width: 100%;
  width: 100%;
  background-color: white;
}

img {
  height: auto;
  max-width: 100%;
}

figure img {
  max-width: initial;
}

p:first-child,
.p:first-child,
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child,
h6:first-child,
ul:first-child,
ol:first-child,
form:first-child {
  margin-top: 0;
}
p:last-child,
.p:last-child,
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child,
ul:last-child,
ol:last-child,
form:last-child {
  margin-bottom: 0;
}

ol {
  padding-left: 12px;
  margin-bottom: 24px;
  line-height: 1.6;
}

.loading-container {
  text-align: center;
  padding: 2rem;
}

.loader {
  border: 4px solid #f3f3f3;
  border-radius: 50%;
  border-top: 4px solid #3498db;
  width: 40px;
  height: 40px;
  margin: 20px auto;
  animation: spin 1s linear infinite;
}

.loader-button {
  border: 2px solid #f3f3f3;
  border-radius: 50%;
  border-top: 2px solid #3498db;
  width: 21px;
  height: 21px;
  margin: 0 auto;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.btn {
  cursor: pointer;
  display: inline-block;
  font-family: "Sun", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 700;
  color: white;
  background-color: #E7622D;
  transition: all 0.3s;
  border: calc(0.2666666667 * var(--zoom, 1) * 1vw) solid #E7622D;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom;
  border-radius: 4px;
  padding: 14px 15px 16px;
  margin-bottom: calc(2.1333333333 * var(--zoom, 1) * 1vw);
}
.btn:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
@media screen and (min-width: 720px) {
  .btn {
    border: calc(0.1302083333 * var(--zoom, 1) * 1vw) solid #E7622D;
    margin-bottom: calc(1.0416666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .btn {
    border: calc(0.0520833333 * var(--zoom, 1) * 1vw) solid #E7622D;
    margin-bottom: calc(0.4166666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .btn {
    border: 1px solid #E7622D;
    padding: 14px 15px 16px;
    margin-bottom: 8px;
  }
}

.btn--ghost {
  background-color: white;
  color: #1A171B;
}
.btn--ghost:hover {
  color: #1A171B;
  background-color: transparent;
  border-color: #1A171B;
}
.btn--ghost.btn--blue {
  border: 2px solid #005191;
  color: #005191;
  border-color: #005191;
}

.btn--back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content !important;
  background-color: white;
  color: #1A171B;
  border: 2px solid #A7A7A7;
  padding: 12px !important;
  transition: border-color 200ms ease-out;
}
@media screen and (min-width: 720px) {
  .btn--back {
    display: none !important;
  }
}
.btn--back:hover {
  border-color: #1A171B;
}
.btn--back:hover svg {
  fill: #1A171B;
}

.actions-row {
  display: flex;
  align-items: stretch;
  gap: 12px;
}

.actions-row .btn--back {
  flex: 0 0 auto;
}

.actions-row .formkit-outer {
  flex: 1 1 auto;
}

.actions-row {
  display: flex;
  align-items: stretch;
  gap: 12px;
}

.actions-row .btn--back {
  flex: 0 0 auto;
}

.actions-row .formkit-outer {
  flex: 1 1 auto;
}

.actions-row .formkit-outer,
.actions-row .formkit-input,
.actions-row .btn {
  margin: 0 !important;
}

.actions-row .formkit-wrapper,
.actions-row .formkit-inner,
.actions-row .formkit-input {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

.actions-row .btn,
.actions-row .formkit-input[type=submit] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: "Sun", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 700;
  border-radius: 4px;
  padding: 12px 15px;
}

.actions-row .formkit-input[type=submit] {
  border-width: 2px;
  border-style: solid;
  border-color: #E7622D;
  background-color: #E7622D;
  color: white;
}

.btn--uppercase {
  text-transform: uppercase;
}

.btn--large {
  font-size: calc(5.3333333333 * var(--zoom, 1) * 1vw);
  line-height: calc(6.4 * var(--zoom, 1) * 1vw);
  padding: calc(4 * var(--zoom, 1) * 1vw) calc(8.5333333333 * var(--zoom, 1) * 1vw) calc(4 * var(--zoom, 1) * 1vw) calc(4.2666666667 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .btn--large {
    font-size: calc(2.6041666667 * var(--zoom, 1) * 1vw);
    line-height: calc(3.125 * var(--zoom, 1) * 1vw);
    padding: calc(1.953125 * var(--zoom, 1) * 1vw) calc(4.1666666667 * var(--zoom, 1) * 1vw) calc(1.953125 * var(--zoom, 1) * 1vw) calc(2.0833333333 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .btn--large {
    font-size: calc(1.0416666667 * var(--zoom, 1) * 1vw);
    line-height: calc(1.25 * var(--zoom, 1) * 1vw);
    padding: calc(0.78125 * var(--zoom, 1) * 1vw) calc(1.6666666667 * var(--zoom, 1) * 1vw) calc(0.78125 * var(--zoom, 1) * 1vw) calc(0.8333333333 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .btn--large {
    font-size: 20px;
    line-height: 24px;
    padding: 15px 32px 15px 16px;
  }
}

.btn--red {
  background-color: #eb0000;
  color: white;
  border-color: #eb0000;
}
.btn--red:hover {
  color: white;
  background-color: #eb0000;
  border-color: #eb0000;
}
.btn--red:before {
  color: black;
}

.btn-extended {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 12px 16px;
  color: #000000;
  border: 1px solid #E9E9E9;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  text-decoration: none;
  transition: border 200ms ease-out;
}
.btn-extended:hover {
  border: 1px solid #0089C6;
  transition: border 200ms ease-out;
}
.btn-extended:after {
  position: absolute;
  top: 50%;
  margin-top: -9px;
  right: 16px;
  width: 11px;
  height: 18px;
  content: "";
  background-image: url(/build/images/chevron-darkblue.09bb71ec.svg);
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 4px;
  transition: all 0.3s;
}

.btn-extended__title {
  font-weight: 700;
  font-size: 17px;
  line-height: 1.2;
  margin-bottom: 4px;
}

.btn-extended__text {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.2;
  margin-bottom: 4px;
}

.btn-extended__icon {
  display: flex;
  align-items: center;
  color: #005191;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
}
.btn-extended__icon:before {
  display: inline-block;
  width: 20px;
  height: 20px;
  content: "";
  background-image: url(/build/images/icon-stopwatch.2e8697f1.svg);
  background-size: contain;
  margin-right: 2px;
}

.link {
  font-weight: 500;
  text-decoration: none;
  color: #0089C6;
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-column-gap: calc(4.2666666667 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .grid {
    grid-column-gap: calc(2.0833333333 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .grid {
    grid-column-gap: calc(2.34375 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .grid {
    grid-column-gap: 45px;
  }
}

.container {
  margin: 0 auto;
  width: 100%;
  padding: 0 calc(6.4 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .container {
    padding: 0 calc(3.125 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .container {
    max-width: calc(75.15625 * var(--zoom, 1) * 1vw);
    padding: 0 calc(1.25 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .container {
    max-width: 1093px;
    padding: 0 24px;
  }
}

.formkit-form {
  padding-bottom: 60px;
}
.formkit-form [data-type=submit] + .formkit-messages .formkit-message {
  background-color: transparent;
  color: #EF8D64;
}
.formkit-form [data-type=submit] + .formkit-messages .formkit-message:before {
  display: inline;
  content: "*";
}

.formkit-outer {
  margin-bottom: 14px;
}
@media screen and (min-width: 720px) {
  .formkit-outer {
    margin-bottom: 16px;
  }
}
.formkit-outer[data-invalid=true] .formkit-input {
  border: 1px solid #EF8D64;
  margin-bottom: -2px;
}
.formkit-outer[data-invalid=true] .formkit-help {
  display: none;
}
.formkit-outer + .formkit-messages .formkit-message {
  border-radius: 0;
}

.formkit--checkbox .formkit-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.formkit--checkbox .formkit-wrapper .formkit-inner .formkit-input {
  display: none;
}
.formkit--checkbox .formkit-wrapper .formkit-inner .formkit-input:checked + .formkit-decorator:after {
  opacity: 1;
}
.formkit--checkbox .formkit-wrapper .formkit-inner .formkit-decorator {
  position: relative;
  display: block;
  top: 0;
  left: 0;
  width: 1rem;
  height: 1rem;
  margin-right: 0.6rem;
  border: 1px solid #a7a7a7;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}
.formkit--checkbox .formkit-wrapper .formkit-inner .formkit-decorator:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  opacity: 0;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
.formkit--checkbox .formkit-wrapper .formkit-inner .formkit-decorator:hover {
  cursor: pointer;
}
.formkit--checkbox .formkit-wrapper .formkit-label {
  margin-bottom: 0;
}

.formkit-fieldset {
  border: none;
}

.formkit-legend {
  display: inline-block;
  font-weight: 700;
  font-size: 17px;
  line-height: 1.2;
  color: #000000;
  margin-bottom: 10px;
}

.formkit-options {
  list-style: none;
}

.formkit-option {
  margin-bottom: 8px;
}
.formkit-option .formkit-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  padding: 16px;
}
.formkit-option .formkit-wrapper .formkit-inner .formkit-input {
  display: none;
}
.formkit-option .formkit-wrapper .formkit-inner .formkit-input:checked + .formkit-decorator {
  border: 2px solid #0089C6;
  transition: border 200ms ease-out;
}
.formkit-option .formkit-wrapper .formkit-inner .formkit-decorator {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  transition: border 200ms ease-out;
}
.formkit-option .formkit-wrapper .formkit-inner .formkit-decorator:hover {
  cursor: pointer;
  border: 1px solid #0089C6;
  transition: border 200ms ease-out;
}
.formkit-option .formkit-wrapper .formkit-label {
  margin-bottom: 0;
}

.formkit-label {
  display: inline-block;
  color: #000000;
  font-weight: 700;
  font-size: 17px;
  line-height: 1.2;
  margin-bottom: 4px;
}
@media screen and (min-width: 720px) {
  .formkit-label {
    margin-bottom: 4px;
  }
}
@media screen and (min-width: 960px) {
  .formkit-label {
    margin-bottom: 4px;
  }
}
@media screen and (min-width: 1921px) {
  .formkit-label {
    margin-bottom: 4px;
  }
}

.formkit-inner select {
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

.formkit-input {
  width: 100%;
  font-size: 17px;
  border: 1px solid #A7A7A7;
  border-radius: 4px;
  margin-bottom: 8px;
  padding: 12px 16px;
}
.formkit-input:focus {
  border: 1px solid #0089C6;
}
.formkit-input[type=date] {
  position: relative;
}
.formkit-input[type=date]::-webkit-calendar-picker-indicator {
  background: transparent;
  bottom: 0;
  color: transparent;
  cursor: pointer;
  height: auto;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: auto;
}
.formkit-input[type=submit], .formkit-input[type=button] {
  cursor: pointer;
  display: inline-block;
  font-family: "Sun", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 700;
  color: white;
  background-color: #E7622D;
  transition: all 0.3s;
  border: calc(0.2666666667 * var(--zoom, 1) * 1vw) solid #E7622D;
  text-align: center;
  text-decoration: none;
  vertical-align: bottom;
  border-radius: 4px;
  padding: 14px 15px 16px;
  margin-bottom: calc(2.1333333333 * var(--zoom, 1) * 1vw);
}
.formkit-input[type=submit]:disabled, .formkit-input[type=button]:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
@media screen and (min-width: 720px) {
  .formkit-input[type=submit], .formkit-input[type=button] {
    border: calc(0.1302083333 * var(--zoom, 1) * 1vw) solid #E7622D;
    margin-bottom: calc(1.0416666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .formkit-input[type=submit], .formkit-input[type=button] {
    border: calc(0.0520833333 * var(--zoom, 1) * 1vw) solid #E7622D;
    margin-bottom: calc(0.4166666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .formkit-input[type=submit], .formkit-input[type=button] {
    border: 1px solid #E7622D;
    padding: 14px 15px 16px;
    margin-bottom: 8px;
  }
}

.formkit-help {
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  color: #A7A7A7;
}

.formkit-messages {
  list-style: none;
}

.formkit-message {
  padding: 10px 16px 8px 16px;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
  border-radius: 0 0 4px 4px;
  background-color: #EF8D64;
}

.formkit-label--extra-content {
  display: flex;
}
.formkit-label--extra-content > div {
  flex-basis: calc(100% - 40px);
  padding-right: 24px;
}
.formkit-label--extra-content > div h3 {
  font-weight: 700;
  font-size: 17px;
  line-height: 1.4;
  margin-bottom: 4px;
}
.formkit-label--extra-content > div p {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
}
.formkit-label--extra-content img {
  flex-basis: 40px;
}

.formkit--search {
  position: relative;
}
.formkit--search:after {
  position: absolute;
  width: 18px;
  height: 18px;
  top: 13px;
  right: 16px;
  content: "";
  background: url(/build/images/icon-search-darkblue.a91c08a0.svg) no-repeat center center;
}

.formkit--toggle .formkit-option .formkit-wrapper {
  padding: 16px 8px;
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}
@media screen and (min-width: 720px) {
  .formkit--toggle .formkit-option .formkit-wrapper {
    padding: 16px;
  }
}
.formkit--toggle .formkit-option .formkit-wrapper:hover {
  cursor: pointer;
}
.formkit--toggle .formkit-option .formkit-wrapper .formkit-inner input:checked + .formkit-decorator, .formkit--toggle .formkit-option .formkit-wrapper .formkit-inner input[value=true] + .formkit-decorator {
  background: #0089C6;
  border-radius: 32px;
  border: 1px solid #0089C6;
}
.formkit--toggle .formkit-option .formkit-wrapper .formkit-inner input:checked + .formkit-decorator:after, .formkit--toggle .formkit-option .formkit-wrapper .formkit-inner input[value=true] + .formkit-decorator:after {
  transform: translateX(100%);
  transition: transform 200ms ease-out;
}
.formkit--toggle .formkit-option .formkit-wrapper .formkit-inner .formkit-decorator {
  position: absolute;
  top: 50%;
  margin-top: -16px;
  right: 16px;
  left: auto;
  width: 52px;
  height: 32px;
  display: inline-block;
  border-radius: 32px;
  background: #A7A7A7;
  box-shadow: none;
}
.formkit--toggle .formkit-option .formkit-wrapper .formkit-inner .formkit-decorator:after {
  position: absolute;
  top: 3px;
  width: 24px;
  height: 24px;
  content: "";
  border-radius: 50%;
  background-color: #FFFFFF;
  transform: translateX(3px);
  transition: transform 200ms ease-out;
}
.formkit--toggle .formkit-label {
  display: flex;
  padding-right: 64px;
}
.formkit--toggle .formkit-label img {
  margin-right: 12px;
  width: 32px;
}
@media screen and (min-width: 720px) {
  .formkit--toggle .formkit-label img {
    width: 40px;
  }
}
.formkit--toggle .formkit-label h4 {
  font-size: 17px;
  line-height: 24px;
}
.formkit--toggle .formkit-label p {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.3;
}
.formkit--toggle .formkit-label p a {
  color: #0089C6;
  text-decoration: none;
}

.formkit--no-margin {
  margin-bottom: 0;
}

.formkit-outer--single-row {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 960px) {
  .formkit-outer--single-row {
    flex-direction: row;
    justify-content: space-between;
    gap: 24px;
  }
}
.formkit-outer--single-row .formkit-outer {
  width: 100%;
}

.formkit-options--50-50 {
  display: flex;
  justify-content: space-between;
  gap: 24px;
}
.formkit-options--50-50 .formkit-option {
  width: 100%;
}
.formkit-options--50-50 .formkit-option .formkit-wrapper {
  justify-content: center;
}

.formkit-option--fullcolor .formkit-wrapper[data-checked=true] .formkit-decorator {
  color: #FFFFFF;
  background-color: #005191;
}
.formkit-option--fullcolor .formkit-wrapper[data-checked=true] .formkit-label {
  position: relative;
  color: #FFFFFF;
}
.formkit-option--fullcolor .formkit-label {
  font-weight: normal;
}

.formkit--euro {
  position: relative;
}
.formkit--euro:before {
  content: "€";
  position: absolute;
  top: 15px;
  left: 16px;
  font-size: 17px;
  line-height: 16px;
  font-weight: 500;
}
.formkit--euro input {
  padding-left: 30px;
}

.formkit--phone-suffix .formkit-inner {
  position: relative;
}
.formkit--phone-suffix .formkit-inner:before {
  content: "+31 (0)6";
  position: absolute;
  top: 15px;
  left: 16px;
  font-size: 17px;
  line-height: 16px;
  font-weight: 700;
}
.formkit--phone-suffix .formkit-inner:after {
  position: absolute;
  left: 85px;
  height: calc(100% - 8px);
  width: 1px;
  content: "";
  background-color: #A7A7A7;
}
.formkit--phone-suffix .formkit-inner input {
  padding-left: 92px;
}
.formkit--phone-suffix[data-invalid=true] .formkit-inner:after {
  height: 101%;
  background-color: #EF8D64;
}

.formkit--auto-complete-input {
  position: relative;
}
.formkit--auto-complete-input input {
  width: 100%;
}
.formkit--auto-complete-input .combo-dropdown {
  position: absolute;
  z-index: 10;
  left: 0;
  right: 0;
  max-height: 240px;
  overflow-y: auto;
  margin: 0;
  padding: 4px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}
.formkit--auto-complete-input .combo-option {
  padding: 8px 12px;
  cursor: pointer;
}
.formkit--auto-complete-input .combo-option.is-active {
  background-color: #F0F6FB;
}

.error-message {
  border-radius: 4px;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.accordion {
  margin-bottom: 36px;
}

.accordion__items details {
  padding-right: 0;
}
.accordion__items details summary {
  position: relative;
  font-weight: 700;
  font-size: 16px;
  line-height: 24px;
  cursor: pointer;
  border-bottom: 1px solid #D3D3D3;
}
.accordion__items details summary:after, .accordion__items details summary:before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 2px;
  background-color: #005191;
}
.accordion__items details summary:after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.accordion__items details summary::marker {
  display: none;
}
.accordion__items details summary h3 {
  font-size: 17px;
  line-height: 24px;
  margin-bottom: 0;
  padding: 12px 0;
}
.accordion__items details > div {
  padding: 12px 0;
}
.accordion__items details[open] summary:after {
  transform: translate(-50%, -50%) rotate(180deg);
}
.accordion__items details > summary {
  list-style: none;
}
.accordion__items details > summary::marker,
.accordion__items details > summary::-webkit-details-marker {
  display: none;
}

.app {
  display: flex;
}

.usps {
  list-style: none;
  margin-bottom: 12px;
}
.usps li {
  margin-bottom: 4px;
}
.usps li b {
  color: #005191;
  font-weight: 700;
}
.usps li:before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 14px;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 4px;
}
@media screen and (min-width: 720px) {
  .usps li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 960px) {
  .usps li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 1921px) {
  .usps li:before {
    width: 15px;
    height: 14px;
  }
}

.content {
  width: 100%;
  height: 100vh;
  padding-top: 120px;
  padding-bottom: calc(12.2666666667 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .content {
    width: calc(100% - 320px);
    padding-top: 74px;
    padding-bottom: 46px;
    margin-left: 320px;
    min-width: 0;
  }
}
@media screen and (min-width: 960px) {
  .content {
    width: calc(100% - 360px);
    padding-top: calc(3.125 * var(--zoom, 1) * 1vw);
    padding-bottom: calc(2.3958333333 * var(--zoom, 1) * 1vw);
    margin-left: 360px;
  }
}
@media screen and (min-width: 1921px) {
  .content {
    width: calc(100% - 360px);
    padding-top: 140px;
    padding-bottom: 46px;
  }
}
.content h2 {
  font-weight: 700;
  font-size: 24px;
  line-height: 1.25;
  margin-bottom: 10px;
}
@media screen and (min-width: 720px) {
  .content h2 {
    font-size: 24px;
    margin-bottom: 10px;
  }
}
@media screen and (min-width: 1921px) {
  .content h2 {
    font-size: 32px;
    margin-bottom: 12px;
  }
}
.content h3 {
  font-weight: 700;
  line-height: 1.25;
  font-size: 24px;
  margin-bottom: calc(4.2666666667 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .content h3 {
    font-size: 24px;
    margin-bottom: 12px;
  }
}
@media screen and (min-width: 960px) {
  .content h3 {
    font-size: 24px;
    margin-bottom: calc(0.625 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .content h3 {
    font-size: 24px;
    margin-bottom: 12px;
  }
}

.content__columns {
  grid-column: 1/13;
}
@media screen and (min-width: 720px) {
  .content__columns {
    grid-column: 1/13;
    max-width: 500px;
    margin: 0 auto;
  }
}
@media screen and (min-width: 960px) {
  .content__columns {
    grid-column: 2/12;
  }
}
@media screen and (min-width: 1921px) {
  .content__columns {
    grid-column: 4/10;
  }
}
.content__columns .btn {
  width: 100%;
}

.content__back {
  display: none;
  grid-column: 1/13;
  margin-bottom: 32px;
}
@media screen and (min-width: 720px) {
  .content__back {
    display: block;
  }
}
.content__back a {
  display: flex;
  color: #005191;
  font-style: normal;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
}

.content__occupation-results {
  display: inline;
  list-style: none;
  margin-bottom: calc(8.5333333333 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .content__occupation-results {
    margin-bottom: calc(4.1666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-results {
    margin-bottom: calc(1.6666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-results {
    margin-bottom: 32px;
  }
}
.content__occupation-results li {
  position: relative;
  margin-bottom: calc(2.1333333333 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .content__occupation-results li {
    margin-bottom: calc(1.0416666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-results li {
    margin-bottom: calc(0.4166666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-results li {
    margin-bottom: 8px;
  }
}
.content__occupation-results li:last-of-type {
  margin-bottom: calc(8.5333333333 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .content__occupation-results li:last-of-type {
    margin-bottom: calc(4.1666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-results li:last-of-type {
    margin-bottom: calc(1.6666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-results li:last-of-type {
    margin-bottom: 32px;
  }
}

.content__occupation-result {
  width: 100%;
  padding: 16px;
  font-size: 17px;
  font-weight: 700;
  background-color: white;
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  text-align: left;
}
@media screen and (min-width: 720px) {
  .content__occupation-result {
    font-size: 17px;
    padding: 16px;
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-result {
    font-size: 17px;
    padding: 16px;
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-result {
    font-size: 17px;
    padding: 16px;
  }
}
.content__occupation-result:hover {
  background-color: #005191;
  color: #FFFFFF;
  cursor: pointer;
}
.content__occupation-result:hover:after {
  background-image: url(/build/images/chevron-white.fd1882ed.svg);
}
.content__occupation-result:after {
  display: block;
  position: absolute;
  top: 50%;
  margin-top: -8px;
  content: "";
  right: 16px;
  width: 11px;
  height: 18px;
  background-image: url(/build/images/chevron-darkblue.09bb71ec.svg);
  background-size: contain;
}
@media screen and (min-width: 720px) {
  .content__occupation-result:after {
    right: 16px;
    width: 11px;
    height: 18px;
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-result:after {
    right: 16px;
    width: 11px;
    height: 18px;
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-result:after {
    right: 16px;
    width: 11px;
    height: 18px;
  }
}

.content__occupation-result--active {
  background-color: #005191;
  color: #FFFFFF;
  user-select: none;
  margin-bottom: 10px;
}
.content__occupation-result--active:after {
  background-image: url(/build/images/chevron-white.fd1882ed.svg);
  background-repeat: no-repeat;
  margin-top: -24px;
}
@media screen and (min-width: 720px) {
  .content__occupation-result--active:after {
    margin-top: -24px;
  }
}
@media screen and (min-width: 960px) {
  .content__occupation-result--active:after {
    margin-top: -22px;
  }
}
@media screen and (min-width: 1921px) {
  .content__occupation-result--active:after {
    margin-top: -26px;
  }
}

.content__occupation-result--remove {
  text-align: right;
}
.content__occupation-result--remove span {
  text-decoration: underline;
}
.content__occupation-result--remove span:hover {
  cursor: pointer;
}

.final-overview {
  padding: 40px 16px 16px 16px;
  border: 1px solid #E9E9E9;
  box-shadow: 0 9px 40px rgba(211, 211, 211, 0.5);
  margin-bottom: 56px;
}
.final-overview hr {
  border-top: 1px dashed black;
  margin-bottom: 16px;
}
.final-overview ul {
  list-style: none;
  margin-bottom: 12px;
}
.final-overview ul li {
  margin-bottom: 4px;
}
.final-overview ul li b {
  color: #005191;
  font-weight: 700;
}
.final-overview ul li:before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 14px;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 4px;
}
@media screen and (min-width: 720px) {
  .final-overview ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 960px) {
  .final-overview ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 1921px) {
  .final-overview ul li:before {
    width: 15px;
    height: 14px;
  }
}

.final-overview__heading {
  display: flex;
  justify-content: space-between;
}

.final-overview__links {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  margin-bottom: 18px;
}
@media screen and (min-width: 960px) {
  .final-overview__links {
    flex-direction: row;
  }
}
.final-overview__links a {
  text-decoration: none;
  color: #0089C6;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px;
}

.final-overview__insurance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  margin-bottom: 20px;
}
.final-overview__insurance h4 {
  font-size: 17px;
  line-height: 1.2;
}
.final-overview__insurance span {
  color: #1A171B;
  font-weight: 700;
  font-size: 24px;
  line-height: 125%;
}

.overlay {
  position: fixed;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  z-index: 100;
}

.overlay--background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #1A171B;
  opacity: 0.8;
}

.overlay__content {
  width: 90%;
  padding: 24px;
  background-color: #FFFFFF;
  border: 1px solid #E9E9E9;
  box-shadow: 0 9px 40px #222222;
  border-radius: 8px;
  z-index: 110;
}
@media screen and (min-width: 720px) {
  .overlay__content {
    width: 600px;
    padding: 30px;
  }
}
@media screen and (min-width: 960px) {
  .overlay__content {
    width: 600px;
  }
}
.overlay__content > img {
  margin-bottom: 12px;
}

.overlay__content-block {
  position: relative;
  padding: 16px;
  border: 1px solid #E9E9E9;
  box-shadow: 0 9px 40px rgba(211, 211, 211, 0.5);
  border-radius: 4px;
  margin-bottom: 24px;
  z-index: 10;
}
.overlay__content-block ul {
  list-style: none;
  margin-bottom: 12px;
}
.overlay__content-block ul li {
  margin-bottom: 4px;
}
.overlay__content-block ul li b {
  color: #005191;
  font-weight: 700;
}
.overlay__content-block ul li:before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 14px;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 4px;
}
@media screen and (min-width: 720px) {
  .overlay__content-block ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 960px) {
  .overlay__content-block ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 1921px) {
  .overlay__content-block ul li:before {
    width: 15px;
    height: 14px;
  }
}
.overlay__content-block ul.crosses li:before {
  background-image: url(/build/images/icon-close-darkblue.cb828218.svg);
}
.overlay__content-block table {
  width: 100%;
}
.overlay__content-block tr td:last-of-type {
  text-align: right;
}

.overlay__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.overlay__cta .btn {
  width: 100%;
}
@media screen and (min-width: 720px) {
  .overlay__cta .btn {
    width: auto;
  }
}

.overlay__close {
  color: #005191;
  font-family: "Sun", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 700;
  font-size: 17px;
  line-height: 24px;
  border: none;
  background: none;
  margin-bottom: 20px;
}
@media screen and (min-width: 720px) {
  .overlay__close {
    margin-bottom: 24px;
  }
}
.overlay__close:before {
  display: inline-block;
  width: 14px;
  height: 14px;
  content: "";
  background-image: url(/build/images/icon-close-darkblue.cb828218.svg);
  margin-right: 12px;
}
.overlay__close:hover {
  cursor: pointer;
}

.overview-configurator {
  padding: 16px;
  border: 1px solid #E9E9E9;
  box-shadow: 0 9px 40px rgba(211, 211, 211, 0.5);
}
.overview-configurator.loading {
  pointer-events: none;
  opacity: 0.65;
}

.overview-configurator__title {
  margin-bottom: 24px !important;
}

.overview-configurator__details {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}

.overview-configurator__details-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
}
@media screen and (min-width: 720px) {
  .overview-configurator__details-item {
    margin-bottom: 4px;
  }
}

.overview-configurator__details-item-title {
  color: #1A171B;
  font-weight: 700;
}

.overview-configurator__details-item-value {
  color: #1A171B;
}

.overview-configurator__montly-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 24px;
}
.overview-configurator__montly-price span {
  color: #005191;
  font-weight: 700;
  font-size: 40px;
  line-height: 1.2;
  margin-bottom: 4px;
}
@media screen and (min-width: 960px) {
  .overview-configurator__montly-price span {
    font-size: 64px;
  }
}
.overview-configurator__montly-price span sub {
  color: #000000;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.2;
}
.overview-configurator__montly-price i {
  font-style: normal;
  color: #A7A7A7;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
}

.overview-configurator__payments {
  margin-bottom: 46px;
}
.overview-configurator__payments h4 {
  margin-bottom: 4px;
}

.overview-configurator__payments-items {
  display: flex;
  flex-direction: column;
  padding: 4px 16px 16px 16px;
  border: 1px solid #E9E9E9;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

.overview-configurator__payments-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #D3D3D3;
  padding-top: 12px;
  padding-bottom: 12px;
}
.overview-configurator__payments-item:last-of-type {
  margin-bottom: 10px;
}

.overview-configurator__payments-item-title, .overview-configurator__payments-item-value, .overview-configurator__payments-item-discount {
  flex-basis: 33.33%;
}

.overview-configurator__payments-item-value {
  color: #005191;
  font-weight: 700;
}

.overview-configurator__payments-item-discount {
  text-align: right;
}
.overview-configurator__payments-item-discount span {
  display: inline-block;
  text-align: center;
  padding: 4px 6px;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  background: #7AC690;
  border-radius: 16px;
}
@media screen and (min-width: 720px) {
  .overview-configurator__payments-item-discount span {
    padding: 4px 12px;
  }
}

.overview-configurator__summary {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}
.overview-configurator__summary h2:first-of-type {
  margin-bottom: 20px;
}
@media screen and (min-width: 720px) {
  .overview-configurator__summary h2:first-of-type {
    margin-bottom: 32px;
  }
}
.overview-configurator__summary h2, .overview-configurator__summary h3 {
  text-align: center;
}
.overview-configurator__summary ul {
  list-style: none;
  margin-bottom: 12px;
  margin-bottom: 30px;
}
.overview-configurator__summary ul li {
  margin-bottom: 4px;
}
.overview-configurator__summary ul li b {
  color: #005191;
  font-weight: 700;
}
.overview-configurator__summary ul li:before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 14px;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 4px;
}
@media screen and (min-width: 720px) {
  .overview-configurator__summary ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 960px) {
  .overview-configurator__summary ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 1921px) {
  .overview-configurator__summary ul li:before {
    width: 15px;
    height: 14px;
  }
}
.overview-configurator__summary .btn {
  margin-bottom: 16px;
}

.overview-configurator__proceed {
  display: flex;
  flex-direction: column;
  padding: 16px;
  box-shadow: 0 9px 40px rgba(211, 211, 211, 0.5);
  margin-left: -16px;
  margin-right: -16px;
  margin-bottom: -16px;
}
.overview-configurator__proceed hr {
  border-top: 1px dashed black;
  margin-bottom: 16px;
}
.overview-configurator__proceed .btn {
  margin-bottom: 10px;
}
.overview-configurator__proceed ul {
  list-style: none;
  margin-bottom: 12px;
}
.overview-configurator__proceed ul li {
  margin-bottom: 4px;
}
.overview-configurator__proceed ul li b {
  color: #005191;
  font-weight: 700;
}
.overview-configurator__proceed ul li:before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 14px;
  background-image: url(/build/images/checkmark-darkblue.f8bcd3e5.svg);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 4px;
}
@media screen and (min-width: 720px) {
  .overview-configurator__proceed ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 960px) {
  .overview-configurator__proceed ul li:before {
    width: 15px;
    height: 14px;
  }
}
@media screen and (min-width: 1921px) {
  .overview-configurator__proceed ul li:before {
    width: 15px;
    height: 14px;
  }
}

.overview-configurator__proceed-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.overview-configurator__proceed-header h2 {
  margin-bottom: 0;
}
@media screen and (min-width: 1921px) {
  .overview-configurator__proceed-header h2 {
    margin-bottom: 0;
  }
}
.overview-configurator__proceed-header span {
  color: #005191;
  font-weight: 700;
  font-size: 32px;
  line-height: 125%;
}

.sidebar {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: calc(96 * var(--zoom, 1) * 1vw);
  height: 100vh;
  padding: calc(6.4 * var(--zoom, 1) * 1vw);
  background: #e5edf4;
}
@media screen and (min-width: 720px) {
  .sidebar {
    display: flex;
    height: 100vh;
    top: 0;
    left: 0;
    position: fixed;
    width: 320px;
    padding: 24px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar {
    width: 360px;
    padding: calc(1.25 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar {
    width: 360px;
    padding: 24px;
  }
}

.sidebar__logo {
  width: 128px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
@media screen and (min-width: 720px) {
  .sidebar__logo {
    width: 128px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__logo {
    width: calc(6.6666666667 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__logo {
    width: 128px;
  }
}

.sidebar__list {
  color: #003056;
}
.sidebar__list h2 {
  color: #003056;
  font-weight: 700;
  font-size: 24px;
  margin-bottom: 24px;
}
@media screen and (min-width: 720px) {
  .sidebar__list h2 {
    font-size: 24px;
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__list h2 {
    font-size: 24px;
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__list h2 {
    font-size: 24px;
    margin-bottom: 24px;
  }
}
.sidebar__list ul {
  list-style: none;
}

.sidebar__list-item {
  display: flex;
  align-items: center;
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  margin-bottom: 24px;
}
@media screen and (min-width: 720px) {
  .sidebar__list-item {
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__list-item {
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__list-item {
    margin-bottom: 24px;
  }
}
.sidebar__list-item span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #005191;
  background: #D8EEF5;
  border: 1px solid #005191;
  border-radius: 50%;
  margin-right: calc(3.2 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .sidebar__list-item span {
    margin-right: 12px; /* small cleanup for consistency */
  }
}
@media screen and (min-width: 960px) {
  .sidebar__list-item span {
    margin-right: calc(0.625 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__list-item span {
    margin-right: 12px;
  }
}

.sidebar__list-item--current {
  font-weight: 700;
}
.sidebar__list-item--current span {
  font-weight: 700;
  color: #FFFFFF;
  background: #005191;
  border: 1px solid #FFFFFF;
}

.sidebar__list-item--complete {
  font-weight: 700;
}
.sidebar__list-item--complete span {
  color: transparent;
  background: #005191;
  border: 1px solid #FFFFFF;
  background-size: 62%;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url(/build/images/checkmark-white.c65664a3.svg);
}

.sidebar__contact {
  display: flex;
  align-items: center;
  background: #FFFFFF;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  border-radius: 4px;
  overflow: hidden;
}
@media screen and (min-width: 720px) {
  .sidebar__contact {
    align-items: flex-end;
  }
}

.sidebar__contact-figure {
  position: relative;
  display: flex;
  flex-basis: calc(30.4 * var(--zoom, 1) * 1vw);
}
@media screen and (min-width: 720px) {
  .sidebar__contact-figure {
    flex-basis: 114px; /* align with fixed tablet sizing */
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-figure {
    flex-basis: calc(5.9375 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-figure {
    flex-basis: 114px;
  }
}
.sidebar__contact-figure img {
  width: 100%;
}

.sidebar__contact-text {
  flex-basis: calc(100% - 114px); /* align with contact-figure */
  align-self: center;
  padding: 10px 0;
}
@media screen and (min-width: 720px) {
  .sidebar__contact-text {
    flex-basis: calc(100% - 114px);
    padding: 10px 0;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-text {
    flex-basis: calc(100% - 5.9375 * var(--zoom, 1) * 1vw);
    padding: 10px 0;
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-text {
    flex-basis: calc(100% - 114px);
    padding: 14px 12px 14px 0;
  }
}
.sidebar__contact-text h2 {
  font-size: 20px;
  margin-bottom: 8px;
}
.sidebar__contact-text h3 {
  font-weight: 700;
  font-size: 17px;
  line-height: 1.2;
  margin-bottom: 2px;
}
@media screen and (min-width: 720px) {
  .sidebar__contact-text h3 {
    font-size: 17px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-text h3 {
    font-size: 17px;
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-text h3 {
    font-size: 17px;
    margin-bottom: 4px;
  }
}
.sidebar__contact-text h3 a {
  text-decoration: none;
  color: #1A171B;
}
.sidebar__contact-text p {
  font-weight: 400;
  font-size: 14px;
  margin-bottom: calc(1.0666666667 * var(--zoom, 1) * 1vw);
  line-height: 1.2;
}
@media screen and (min-width: 720px) {
  .sidebar__contact-text p {
    font-size: 14px;
    margin-bottom: 4px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-text p {
    font-size: 14px;
    margin-bottom: calc(0.2083333333 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-text p {
    font-size: 14px;
    margin-bottom: 4px;
  }
}
.sidebar__contact-text > a {
  color: #005191;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.2;
  text-decoration: none;
}
@media screen and (min-width: 720px) {
  .sidebar__contact-text > a {
    font-size: 16px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-text > a {
    font-size: 16px;
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-text > a {
    font-size: 16px;
  }
}
.sidebar__contact-text > a:after {
  display: inline-block;
  content: "";
  width: 7px;
  height: 12px;
  margin-left: 12px; /* align with fixed tablet */
  background-image: url(/build/images/chevron-darkblue.09bb71ec.svg);
  background-repeat: no-repeat;
}
@media screen and (min-width: 720px) {
  .sidebar__contact-text > a:after {
    width: 7px;
    height: 12px;
    margin-left: 12px;
  }
}
@media screen and (min-width: 960px) {
  .sidebar__contact-text > a:after {
    width: 7px;
    height: 12px;
    margin-left: calc(0.625 * var(--zoom, 1) * 1vw);
  }
}
@media screen and (min-width: 1921px) {
  .sidebar__contact-text > a:after {
    width: 7px;
    height: 12px;
    margin-left: 12px;
  }
}

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltiptext {
  position: absolute;
  top: 22px;
  left: 50%;
  margin-left: -150px;
  width: 300px;
  visibility: hidden;
  background: linear-gradient(48.39deg, #005191 -1.75%, #0089C6 99.99%, #0087C4 100%);
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 8px 8px;
  z-index: 1;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: -10px;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #005191 transparent transparent transparent;
  transform: rotate(-180deg);
}

.tooltip--icon {
  display: inline-block;
  width: 12px;
  height: 12px;
  background-image: url(/build/images/icon-tooltip.84e642d3.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
@media screen and (max-width: 720px) {
  .tooltip--icon {
    width: 20px;
    height: 20px;
  }
}
.tooltip--icon:hover {
  cursor: pointer;
}

.tooltip--relative {
  position: relative;
}

@media screen and (max-width: 720px) {
  .tooltip--right {
    position: absolute;
    bottom: -5px;
    right: 0;
  }
}
@media screen and (max-width: 720px) {
  .tooltip--right .tooltiptext {
    margin-left: -180px;
  }
}
@media screen and (max-width: 720px) {
  .tooltip--right .tooltiptext:after {
    left: 90%;
  }
}

.topbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}
@media screen and (min-width: 720px) {
  .topbar {
    display: none;
  }
}

.topbar__bg {
  position: absolute;
  width: 100%;
  height: 42px;
  background: #e5edf4;
}

.topbar__logo {
  position: relative;
  width: 74px;
  margin-top: 12px;
}

.modal {
  position: relative;
  z-index: 10;
}
.modal.entering {
  animation: modal-enter 300ms ease-out;
}
.modal.leaving {
  animation: modal-exit 200ms ease-in;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(107, 114, 128, 0.75);
  transition: opacity 300ms;
}

.modal-container {
  position: fixed;
  inset: 0;
  z-index: 10;
  width: 100vw;
  height: 100vh;
  overflow-y: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-wrapper {
  display: flex;
  min-height: 100%;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  text-align: center;
}

.modal-content {
  position: relative;
  display: block;
  transform: translateY(0);
  overflow: hidden;
  border-radius: 0.5rem;
  background-color: white;
  text-align: left;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
  transition: all 300ms;
  margin: auto;
  max-height: calc(100vh - 4rem);
  overflow-y: auto;
}
@media (min-width: 720px) {
  .modal-content {
    margin: 0;
    width: 100%;
    max-width: 500px;
  }
}

.modal-body {
  background-color: white;
  padding: 1rem 1rem 1rem;
}
@media (min-width: 640px) {
  .modal-body {
    padding: 1.5rem 1.5rem 1rem;
  }
}

@media (min-width: 640px) {
  .modal-flex-container {
    display: flex;
    align-items: flex-start;
  }
}

.modal-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
  color: rgb(17, 24, 39);
}

@keyframes modal-enter {
  from {
    opacity: 0;
    transform: translateY(1rem) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes modal-exit {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(1rem) scale(0.95);
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-1/Indexing.vue?vue&type=style&index=0&id=f8349046&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-f8349046] {
  margin: 0 auto;
}
[data-v-f8349046] .modal-body .formkit-form {
  padding-bottom: 0 !important;
}
[data-v-f8349046] .formkit-checkbox-override {
  display: inline-block !important;
  margin-right: 4px !important;
}
[data-v-f8349046] .formkit-wrapper-secondary .formkit-input {
  background-color: var(--color-white);
  color: var(--color-dark-blue);
  border: 2px solid var(--color-dark-blue);
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-2/OverviewConfigurator.vue?vue&type=style&index=0&id=8249440c&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/

.icon-text-button[data-v-8249440c] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.error-message[data-v-8249440c] {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.btn--loading[data-v-8249440c] {
  opacity: 0.7;
  cursor: not-allowed;
}
.loading-container[data-v-8249440c] {
  padding: 0;
}
button[data-v-8249440c]:disabled {
  opacity: 0.7 !important;
  cursor: not-allowed;
}
.btn.btn--success[data-v-8249440c] {
  color: var(--color-succes, #7AC690) !important;
  border-color: var(--color-succes, #7AC690) !important;
}
.btn.btn--ghost[data-v-8249440c] {
  background-color: transparent;
  border: 2px solid var(--color-dark-blue, #005191);
  color: var(--color-dark-blue, #005191);
}
[data-v-8249440c] .modal-body .formkit-form {
  padding-bottom: 0 !important;
}
[data-v-8249440c] .formkit-checkbox-override {
  display: inline-block !important;
  margin-right: 4px !important;
}
.icon-text-button[data-v-8249440c] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-align: center;
}
.icon-text-button svg[data-v-8249440c] {
  flex-shrink: 0;
}


/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-3/AverageYearIncome.vue?vue&type=style&index=0&id=4f5e73f0&scoped=true&lang=css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-4f5e73f0] {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.form-actions[data-v-4f5e73f0] {
  margin-top: 20px;
}
.btn--loading[data-v-4f5e73f0] {
  opacity: 0.7;
  cursor: not-allowed;
}
.loading-container[data-v-4f5e73f0] {
  padding: 0;
}
button[data-v-4f5e73f0]:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-3/TerminateInsurance.vue?vue&type=style&index=0&id=3a0e8a84&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/

.error-message {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.form-actions {
  margin-top: 20px;
}
.btn--loading {
  opacity: 0.7;
  cursor: not-allowed;
}
.loading-container {
  padding: 0;
}
button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-3/PersonalData.vue?vue&type=style&index=0&id=62f2de56&scoped=true&lang=css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-62f2de56] {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.form-actions[data-v-62f2de56] {
  margin-top: 20px;
}
.btn--loading[data-v-62f2de56] {
  opacity: 0.7;
  cursor: not-allowed;
}
.loading-container[data-v-62f2de56] {
  padding: 0;
}
[data-v-62f2de56] .formkit-checkbox-override {
  display: inline-block !important;
  margin-right: 4px !important;
}
button[data-v-62f2de56]:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-3/FinalOverview.vue?vue&type=style&index=0&id=53932558&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-53932558] {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.form-actions[data-v-53932558] {
  margin-top: 20px;
}
.btn--loading[data-v-53932558] {
  opacity: 0.7;
  cursor: not-allowed;
}
.loading-container[data-v-53932558] {
  padding: 0;
}
button[data-v-53932558]:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-4/KnowledgeResult.vue?vue&type=style&index=0&id=38d1427e&scoped=true&lang=css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-38d1427e] {
  color: red;
  margin: 15px 0 !important;
}
.form-actions[data-v-38d1427e] {
  margin-top: 20px;
}
.loading-container[data-v-38d1427e] {
  padding: 0;
}
button[data-v-38d1427e]:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-7/components/PaymentLoadingState.vue?vue&type=style&index=0&id=ccbea2ae&scoped=true&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/

.loading-container[data-v-ccbea2ae] {
  display: block;
  text-align: center;
  padding: 2rem 0;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/step-7/components/PaymentStatusState.vue?vue&type=style&index=0&id=06ddb57b&scoped=true&lang=css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************/

.payment-state-container[data-v-06ddb57b] {
  text-align: center;
  padding: 2rem 0;
}
.action-buttons[data-v-06ddb57b] {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/components/views/Continue.vue?vue&type=style&index=0&id=1251bf89&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/

.error-message[data-v-1251bf89] {
  color: #d32f2f;
  background-color: #ffebee;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #d32f2f;
}
.info-message[data-v-1251bf89] {
  color: #3498DB;
  background-color: #F3F3F3;
  padding: 12px 16px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid #3498DB;
}
.loader[data-v-1251bf89] {
  width: 50px;
  height: 50px;
  margin: 50px auto;
}
.text-center[data-v-1251bf89] {
  text-align: center;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQSxnQkFBZ0I7QUFHaEI7RUFDQztBQUREOztBQ3lFQTtFQUVFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUQ5Q0Y7O0FFaENBO0VBQ0U7RUFDQTtBRm1DRjs7QUVoQ0E7RUFDRTtBRm1DRjs7QUVoQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FGbUNGOztBR3RFQTtFQUNDO0FIeUVEOztBR3RFQTtFQUNDO0FIeUVEOztBR3RFQTtFQUNDO0FIeUVEOztBR3RFQTtFQUNDO0FIeUVEOztBSXRGQTtFQUNFO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7QUpzRkY7QUluRkE7RUFDRTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0FKa0ZGO0FJL0VBO0VBQ0U7RUFDQTtFQUNBO0VBSUE7RUFDQTtBSjhFRjtBSTNFQTtFQUNFO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7QUowRUY7QUtuSEE7RUFDQztFQUNBO0VBQ0EsaUVKaUZjO0VJaEZkO0VBQ0EsY0pLVztBRGdIWjtBTS9HSTtFRFhKO0lBZ0JFO0VMOEdBO0FBQ0Y7O0FLM0dBO0VBQ0M7QUw4R0Q7QU14SEk7RURTSjtJQUlFO0VMK0dBO0FBQ0Y7QU03SEk7RURTSjtJQVFFO0VMZ0hBO0FBQ0Y7QU1sSUk7RURTSjtJQVlFO0VMaUhBO0FBQ0Y7O0FPaEpBO0VBQ0M7QVBtSkQ7O0FPaEpBO0VBQ0M7QVBtSkQ7O0FPaEpBO0VBQ0M7QVBtSkQ7O0FPaEpBO0VBQ0M7QVBtSkQ7O0FPaEpBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FQbUpEOztBTzVJQTtFQUNDO0VBQ0E7QVArSUQ7O0FPMUlDO0VBQ0M7QVA2SUY7O0FPN0hDOzs7Ozs7Ozs7OztFQUNDO0FQMElGO0FPdklDOzs7Ozs7Ozs7OztFQUNDO0FQbUpGOztBTy9JQTtFQUNDO0VBQ0E7RUFDQTtBUGtKRDs7QU8vSUE7RUFDQztFQUNBO0FQa0pEOztBTy9JQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FQa0pEOztBTy9JQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FQa0pEOztBTy9JQTtFQUNDO0lBQ0M7RVBrSkE7RU9oSkQ7SUFDQztFUGtKQTtBQUNGO0FRL01BO0VBdkNDO0VBQ0E7RUFDQSxpRVBpRmM7RU9oRmQ7RUFDQTtFQUNBO0VBQ0E7RUFDQSx5QlBJYTtFT0hiO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJ5UEQ7QVF2UEM7RUFDQztFQUNBO0FSeVBGO0FNbFFJO0VFNkJKO0lBaEJFO0lBQ0E7RVJ5UEE7QUFDRjtBTXhRSTtFRTZCSjtJQVhFO0lBQ0E7RVIwUEE7QUFDRjtBTTlRSTtFRTZCSjtJQU5FO0lBQ0E7SUFDQTtFUjJQQTtBQUNGOztBUW5QQTtFQUNDO0VBQ0EsY1A5QmdCO0FEb1JqQjtBUXBQQztFQUNDLGNQakNlO0VPa0NmO0VBQ0EscUJQbkNlO0FEeVJqQjtBUW5QQztFQUNDO0VBQ0EsY1BoRGM7RU9pRGQscUJQakRjO0FEc1NoQjs7QVFqUEE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY1BuRGdCO0VPb0RoQjtFQUNBO0VBQ0E7QVJvUEQ7QU1oVEk7RUVtREo7SUFZRTtFUnFQQTtBQUNGO0FRblBDO0VBQ0MscUJQN0RlO0FEa1RqQjtBUW5QRTtFQUNDLGFQaEVjO0FEcVRqQjs7QVFoUEE7RUFDQztFQUNBO0VBQ0E7QVJtUEQ7O0FRaFBBO0VBQ0M7QVJtUEQ7O0FRaFBBO0VBQ0M7QVJtUEQ7O0FRaFBBO0VBQ0M7RUFDQTtFQUNBO0FSbVBEOztBUWhQQTtFQUNDO0FSbVBEOztBUWhQQTtFQUNDO0FSbVBEOztBUWhQQTs7O0VBR0M7QVJtUEQ7O0FRaFBBOzs7RUFHQztFQUNBO0VBQ0E7QVJtUEQ7O0FRaFBBOztFQUVDO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsaUVQbERjO0VPbURkO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJtUEQ7O0FRaFBBO0VBQ0M7RUFDQTtFQUNBLHFCUHJJYTtFT3NJYix5QlB0SWE7RU91SWI7QVJtUEQ7O0FRL09BO0VBQ0M7QVJrUEQ7O0FRL09BO0VBQ0M7RUFDQTtFQUNBO0FSa1BEO0FNcllJO0VFZ0pKO0lBS0U7SUFDQTtJQUNBO0VSb1BBO0FBQ0Y7QU01WUk7RUVnSko7SUFVRTtJQUNBO0lBQ0E7RVJzUEE7QUFDRjtBTW5aSTtFRWdKSjtJQWVFO0lBQ0E7SUFDQTtFUndQQTtBQUNGOztBUXBQQTtFQUNDLHlCUHRKVTtFT3VKVjtFQUNBLHFCUHhKVTtBRCtZWDtBUXJQQztFQUNDO0VBQ0EseUJQNUpTO0VPNkpULHFCUDdKUztBRG9aWDtBUXBQQztFQUNDO0FSc1BGOztBUWxQQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY1B0TFk7RU91TFo7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnFQRDtBUW5QQztFQUNDO0VBQ0E7QVJxUEY7QVFsUEM7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJvUEY7O0FRaFBBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QVJtUEQ7O0FRaFBBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QVJtUEQ7O0FRaFBBO0VBQ0M7RUFDQTtFQUNBLGNQMU9lO0VPMk9mO0VBQ0E7RUFDQTtBUm1QRDtBUWpQQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSbVBGOztBUS9PQTtFQUNDO0VBQ0E7RUFDQSxjUDlQVztBRGdmWjs7QVN4ZkE7RUFDRTtFQUNBO0VBQ0E7QVQyZkY7QU1uZkk7RUdYSjtJQUtJO0VUNmZGO0FBQ0Y7QU14Zkk7RUdYSjtJQVFJO0VUK2ZGO0FBQ0Y7QU03Zkk7RUdYSjtJQVdJO0VUaWdCRjtBQUNGOztBUzlmQTtFQUNFO0VBQ0E7RUFDQTtBVGlnQkY7QU14Z0JJO0VHSUo7SUFLSTtFVG1nQkY7QUFDRjtBTTdnQkk7RUdJSjtJQVFJO0lBQ0E7RVRxZ0JGO0FBQ0Y7QU1uaEJJO0VHSUo7SUFZSTtJQUNBO0VUdWdCRjtBQUNGOztBVW5pQkE7RUFDQztBVnNpQkQ7QVVoaUJHO0VBQ0M7RUFDQSxjVEtTO0FENmhCYjtBVWhpQkk7RUFDQztFQUNBO0FWa2lCTDs7QVUzaEJBO0VBQ0M7QVY4aEJEO0FNemlCSTtFSVVKO0lBSUU7RVYraEJBO0FBQ0Y7QVU1aEJFO0VBQ0M7RUFDQTtBVjhoQkg7QVUzaEJFO0VBQ0M7QVY2aEJIO0FVdmhCRTtFQUNDO0FWeWhCSDs7QVVsaEJDO0VBQ0M7RUFDQTtFQUNBO0FWcWhCRjtBVWpoQkc7RUFDQztBVm1oQko7QVU3Z0JNO0VBQ0M7QVYrZ0JQO0FVemdCRztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWMmdCSjtBVXpnQkk7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVjJnQkw7QVV4Z0JJO0VBQ0M7QVYwZ0JMO0FVcmdCRTtFQUNDO0FWdWdCSDs7QVVsZ0JBO0VBQ0M7QVZxZ0JEOztBVWxnQkE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVZxZ0JEOztBVWxnQkE7RUFDQztBVnFnQkQ7O0FVbGdCQTtFQUNDO0FWcWdCRDtBVW5nQkM7RUFDQztFQUNBO0VBQ0E7RUFDQTtBVnFnQkY7QVVqZ0JHO0VBQ0M7QVZtZ0JKO0FVL2ZLO0VBQ0M7RUFDQTtBVmlnQk47QVU1Zkc7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY4Zko7QVU1Zkk7RUFDQztFQUNBO0VBQ0E7QVY4Zkw7QVV6ZkU7RUFDQztBVjJmSDs7QVVsZkE7RUFDQztFQUNBLGNUbEtZO0VTbUtaO0VBQ0E7RUFDQTtFQUNBO0FWcWZEO0FNaHFCSTtFSXFLSjtJQVNFO0VWc2ZBO0FBQ0Y7QU1ycUJJO0VJcUtKO0lBYUU7RVZ1ZkE7QUFDRjtBTTFxQkk7RUlxS0o7SUFpQkU7RVZ3ZkE7QUFDRjs7QVVuZkM7RUFDQztFQUNBO0VBQ0E7QVZzZkY7O0FVbGZBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWcWZEO0FVbmZDO0VBQ0M7QVZxZkY7QVVsZkM7RUFDQztBVm9mRjtBVWxmRTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWb2ZIO0FVaGZDO0VGMU9BO0VBQ0E7RUFDQSxpRVBpRmM7RU9oRmQ7RUFDQTtFQUNBO0VBQ0E7RUFDQSx5QlBJYTtFT0hiO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVI2dEJEO0FRM3RCQztFQUNDO0VBQ0E7QVI2dEJGO0FNdHVCSTtFSWdPSDtJRm5OQztJQUNBO0VSNnRCQTtBQUNGO0FNNXVCSTtFSWdPSDtJRjlNQztJQUNBO0VSOHRCQTtBQUNGO0FNbHZCSTtFSWdPSDtJRnpNQztJQUNBO0lBQ0E7RVIrdEJBO0FBQ0Y7O0FVcGhCQTtFQUNDO0VBQ0E7RUFDQTtFQUNBLGNUdk9XO0FEOHZCWjs7QVVwaEJBO0VBQ0M7QVZ1aEJEOztBVXBoQkE7RUFDQztFQUNBLGNUM09ZO0VTNE9aO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSx5QlRwUFk7QUQyd0JiOztBVW5oQkE7RUFDQztBVnNoQkQ7QVVwaEJDO0VBQ0M7RUFDQTtBVnNoQkY7QVVwaEJFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QVZzaEJIO0FVbmhCRTtFQUNDO0VBQ0E7RUFDQTtBVnFoQkg7QVVqaEJDO0VBQ0M7QVZtaEJGOztBVS9nQkE7RUFDQztBVmtoQkQ7QVVoaEJDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVZraEJGOztBVTFnQkU7RUFDQztFQUNBO0VBQ0E7RUFDQTtBVjZnQkg7QU16ekJJO0VJd1NGO0lBT0U7RVY4Z0JGO0FBQ0Y7QVU1Z0JHO0VBQ0M7QVY4Z0JKO0FVcmdCTTtFQUNDLG1CVGhVSztFU2lVTDtFQUNBO0FWdWdCUDtBVXJnQk87RUFDQztFQUNBO0FWdWdCUjtBVWpnQkk7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtQlRqVk87RVNrVlA7QVZtZ0JMO0FVamdCSztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHlCVHRWTztFU3VWUDtFQUNBO0FWbWdCTjtBVTVmQztFQUNDO0VBQ0E7QVY4ZkY7QVU1ZkU7RUFDQztFQUNBO0FWOGZIO0FNMTJCSTtFSTBXRjtJQUtFO0VWK2ZGO0FBQ0Y7QVU1ZkU7RUFDQztFQUNBO0FWOGZIO0FVM2ZFO0VBQ0M7RUFDQTtFQUNBO0FWNmZIO0FVM2ZHO0VBQ0MsY1RqWVE7RVNrWVI7QVY2Zko7O0FVdmZBO0VBQ0M7QVYwZkQ7O0FVdmZBO0VBQ0M7RUFDQTtBVjBmRDtBTXI0Qkk7RUl5WUo7SUFLRTtJQUNBO0lBQ0E7RVYyZkE7QUFDRjtBVXpmQztFQUNDO0FWMmZGOztBVXZmQTtFQUNDO0VBQ0E7RUFDQTtBVjBmRDtBVXhmQztFQUNDO0FWMGZGO0FVeGZFO0VBQ0M7QVYwZkg7O0FVL2VHO0VBQ0MsY1R0YVM7RVN1YVQseUJUaGJZO0FEazZCaEI7QVUvZUc7RUFDQztFQUNBLGNUNWFTO0FENjVCYjtBVTVlQztFQUNDO0FWOGVGOztBVTFlQTtFQUNDO0FWNmVEO0FVM2VDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVY2ZUY7QVUxZUM7RUFDQztBVjRlRjs7QVV0ZUM7RUFDQztBVnllRjtBVXZlRTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWeWVIO0FVdGVFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWd2VIO0FVcmVFO0VBQ0M7QVZ1ZUg7QVU5ZEc7RUFDQztFQUNBLHlCVC9lUztBRCs4QmI7O0FVMWRBO0VBQ0M7QVY2ZEQ7QVUxZEM7RUFDQztBVjRkRjtBVXBjQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FWc2NGO0FVbmNDO0VBQ0M7RUFDQTtBVnFjRjtBVWxjQztFQUNDO0FWb2NGOztBVWhjQTtFQUNDO0VBQ0E7RUFDQTtBVm1jRDs7QVdqZ0NBO0VBQ0U7QVhvZ0NGOztBVy8vQkU7RUFDRTtBWGtnQ0o7QVdoZ0NJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FYa2dDTjtBV2hnQ007RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FYaWdDUjtBVzkvQk07RUFDRTtBWGdnQ1I7QVc3L0JNO0VBQ0U7QVgrL0JSO0FXNS9CTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FYOC9CUjtBVzEvQkk7RUFDRTtBWDQvQk47QVdwL0JNO0VBQ0U7QVhzL0JSO0FXai9CRTtFQUNFO0FYbS9CSjtBV2gvQkU7O0VBRUU7QVhrL0JKOztBWXBqQ0E7RUFDRTtBWnVqQ0Y7O0FheGpDQTtFQ2lCQztFQUNBO0FkMmlDRDtBY3ppQ0M7RUFDQztBZDJpQ0Y7QWN6aUNFO0VBQ0MsY2JmYTtFYWdCYjtBZDJpQ0g7QWN4aUNFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZDBpQ0g7QU1ua0NJO0VRaUJGO0lBV0U7SUFDQTtFZDJpQ0Y7QUFDRjtBTXprQ0k7RVFpQkY7SUFnQkU7SUFDQTtFZDRpQ0Y7QUFDRjtBTS9rQ0k7RVFpQkY7SUFxQkU7SUFDQTtFZDZpQ0Y7QUFDRjs7QWE1bENBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QWIrbENEO0FNNWxDSTtFT1BKO0lBT0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFYmdtQ0E7QUFDRjtBTXJtQ0k7RU9QSjtJQWVFO0lBQ0E7SUFDQTtJQUNBO0ViaW1DQTtBQUNGO0FNN21DSTtFT1BKO0lBc0JFO0lBQ0E7SUFDQTtFYmttQ0E7QUFDRjtBYWhtQ0M7RUFDQztFQUNBO0VBQ0E7RUFDQTtBYmttQ0Y7QU0xbkNJO0VPb0JIO0lBT0U7SUFDQTtFYm1tQ0Q7QUFDRjtBTWhvQ0k7RU9vQkg7SUFZRTtJQUNBO0Vib21DRDtBQUNGO0Fham1DQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0FibW1DRjtBTTVvQ0k7RU9xQ0g7SUFPRTtJQUNBO0Vib21DRDtBQUNGO0FNbHBDSTtFT3FDSDtJQVlFO0lBQ0E7RWJxbUNEO0FBQ0Y7QU14cENJO0VPcUNIO0lBaUJFO0lBQ0E7RWJzbUNEO0FBQ0Y7O0FhbG1DQTtFQUNDO0FicW1DRDtBTWxxQ0k7RU80REo7SUFJRTtJQUNBO0lBQ0E7RWJzbUNBO0FBQ0Y7QU16cUNJO0VPNERKO0lBVUU7RWJ1bUNBO0FBQ0Y7QU05cUNJO0VPNERKO0lBY0U7RWJ3bUNBO0FBQ0Y7QWF0bUNDO0VBQ0M7QWJ3bUNGOztBYXBtQ0E7RUFDQztFQUNBO0VBQ0E7QWJ1bUNEO0FNNXJDSTtFT2tGSjtJQU1FO0Vid21DQTtBQUNGO0FhdG1DQztFQUNDO0VBQ0EsY1ovRmM7RVlnR2Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYndtQ0Y7O0FhcG1DQTtFQUNDO0VBQ0E7RUFDQTtBYnVtQ0Q7QU1odENJO0VPc0dKO0lBTUU7RWJ3bUNBO0FBQ0Y7QU1ydENJO0VPc0dKO0lBVUU7RWJ5bUNBO0FBQ0Y7QU0xdENJO0VPc0dKO0lBY0U7RWIwbUNBO0FBQ0Y7QWF4bUNDO0VBQ0M7RUFDQTtBYjBtQ0Y7QU1udUNJO0VPdUhIO0lBS0U7RWIybUNEO0FBQ0Y7QU14dUNJO0VPdUhIO0lBU0U7RWI0bUNEO0FBQ0Y7QU03dUNJO0VPdUhIO0lBYUU7RWI2bUNEO0FBQ0Y7QWEzbUNFO0VBQ0M7QWI2bUNIO0FNcnZDSTtFT3VJRjtJQUlFO0ViOG1DRjtBQUNGO0FNMXZDSTtFT3VJRjtJQVFFO0ViK21DRjtBQUNGO0FNL3ZDSTtFT3VJRjtJQVlFO0ViZ25DRjtBQUNGOztBYTNtQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWI4bUNEO0FNaHhDSTtFT3lKSjtJQVlFO0lBQ0E7RWIrbUNBO0FBQ0Y7QU10eENJO0VPeUpKO0lBaUJFO0lBQ0E7RWJnbkNBO0FBQ0Y7QU01eENJO0VPeUpKO0lBc0JFO0lBQ0E7RWJpbkNBO0FBQ0Y7QWEvbUNDO0VBQ0MseUJadExjO0VZdUxkLGNaOUtXO0VZK0tYO0FiaW5DRjtBYS9tQ0U7RUFDQztBYmluQ0g7QWE3bUNDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWIrbUNGO0FNdHpDSTtFTzZMSDtJQWFFO0lBQ0E7SUFDQTtFYmduQ0Q7QUFDRjtBTTd6Q0k7RU82TEg7SUFtQkU7SUFDQTtJQUNBO0ViaW5DRDtBQUNGO0FNcDBDSTtFTzZMSDtJQXlCRTtJQUNBO0lBQ0E7RWJrbkNEO0FBQ0Y7O0FhOW1DQTtFQUNDLHlCWmhPZTtFWWlPZixjWnhOWTtFWXlOWjtFQUNBO0FiaW5DRDtBYS9tQ0M7RUFDQztFQUNBO0VBQ0E7QWJpbkNGO0FNdjFDSTtFT21PSDtJQU1FO0Via25DRDtBQUNGO0FNNTFDSTtFT21PSDtJQVVFO0VibW5DRDtBQUNGO0FNajJDSTtFT21PSDtJQWNFO0Vib25DRDtBQUNGOztBYWhuQ0E7RUFDQztBYm1uQ0Q7QWFqbkNDO0VBQ0M7QWJtbkNGO0Fham5DRTtFQUNDO0FibW5DSDs7QWUzM0NBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWY4M0NGO0FlNTNDRTtFQUNFO0VBQ0E7QWY4M0NKO0FlMzNDRTtFRE1EO0VBQ0E7QWR3M0NEO0FjdDNDQztFQUNDO0FkdzNDRjtBY3QzQ0U7RUFDQyxjYmZhO0VhZ0JiO0FkdzNDSDtBY3IzQ0U7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FkdTNDSDtBTWg1Q0k7RVFpQkY7SUFXRTtJQUNBO0VkdzNDRjtBQUNGO0FNdDVDSTtFUWlCRjtJQWdCRTtJQUNBO0VkeTNDRjtBQUNGO0FNNTVDSTtFUWlCRjtJQXFCRTtJQUNBO0VkMDNDRjtBQUNGOztBZTc1Q0E7RUFDRTtFQUNBO0FmZzZDRjs7QWU3NUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWZnNkNGO0FNOTZDSTtFU1VKO0lBT0k7RWZpNkNGO0FBQ0Y7QWUvNUNFO0VBQ0U7RUFDQSxjZHpCUTtFYzBCUjtFQUNBO0VBQ0E7QWZpNkNKOztBZTc1Q0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmZzZDRjtBZTk1Q0U7RUFDRTtFQUNBO0FmZzZDSjtBZTc1Q0U7RUFDRSxjZHBDYTtFY3FDYjtFQUNBO0VBQ0E7QWYrNUNKOztBZ0J2OUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaEIwOUNGOztBZ0J2OUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLG1CZkhlO0VlSWY7QWhCMDlDRjs7QWdCdjlDQTtFQUNFO0VBQ0E7RUFDQSx5QmZUVztFZVVYO0VBQ0E7RUFDQTtFQUNBO0FoQjA5Q0Y7QU05K0NJO0VVYUo7SUFVSTtJQUNBO0VoQjI5Q0Y7QUFDRjtBTXAvQ0k7RVVhSjtJQWVJO0VoQjQ5Q0Y7QUFDRjtBZ0IxOUNFO0VBQ0U7QWhCNDlDSjs7QWdCeDlDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoQjI5Q0Y7QWdCejlDRTtFRnZDRDtFQUNBO0FkbWdERDtBY2pnREM7RUFDQztBZG1nREY7QWNqZ0RFO0VBQ0MsY2JmYTtFYWdCYjtBZG1nREg7QWNoZ0RFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZGtnREg7QU0zaERJO0VRaUJGO0lBV0U7SUFDQTtFZG1nREY7QUFDRjtBTWppREk7RVFpQkY7SUFnQkU7SUFDQTtFZG9nREY7QUFDRjtBTXZpREk7RVFpQkY7SUFxQkU7SUFDQTtFZHFnREY7QUFDRjtBZ0IxL0NNO0VBQ0U7QWhCNC9DUjtBZ0J2L0NFO0VBQ0U7QWhCeS9DSjtBZ0JwL0NJO0VBQ0U7QWhCcy9DTjs7QWdCai9DQTtFQUNFO0VBQ0E7RUFDQTtBaEJvL0NGO0FnQmwvQ0U7RUFDRTtBaEJvL0NKO0FNL2pESTtFVTBFRjtJQUlJO0VoQnEvQ0o7QUFDRjs7QWdCai9DQTtFQUNFLGNmdEZjO0VldUZkLGlFZlphO0VlYWI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FoQm8vQ0Y7QU0va0RJO0VVbUZKO0lBV0k7RWhCcS9DRjtBQUNGO0FnQm4vQ0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWhCcS9DSjtBZ0JsL0NFO0VBQ0U7QWhCby9DSjs7QWlCMW1EQTtFQUNDO0VBQ0E7RUFDQTtBakI2bUREO0FpQjNtREM7RUFDQztFQUNBO0FqQjZtREY7O0FpQnptREE7RUFDQztBakI0bUREOztBaUJ2bURBO0VBQ0M7RUFDQTtFQUNBO0FqQjBtREQ7O0FpQnZtREE7RUFDQztFQUNBO0VBQ0E7QWpCMG1ERDtBTXpuREk7RVdZSjtJQU1FO0VqQjJtREE7QUFDRjs7QWlCeG1EQTtFQUNDLGNoQmpCZ0I7RWdCa0JoQjtBakIybUREOztBaUJ4bURBO0VBQ0MsY2hCdEJnQjtBRGlvRGpCOztBaUJ4bURBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QWpCMm1ERDtBaUJ6bURDO0VBQ0MsY2hCeENjO0VnQnlDZDtFQUNBO0VBQ0E7RUFDQTtBakIybURGO0FNcnBESTtFV3FDSDtJQVFFO0VqQjRtREQ7QUFDRjtBaUIxbURFO0VBQ0MsY2hCNUNVO0VnQjZDVjtFQUNBO0VBQ0E7QWpCNG1ESDtBaUJ4bURDO0VBQ0M7RUFDQSxjaEJ4RFU7RWdCeURWO0VBQ0E7RUFDQTtBakIwbURGOztBaUJ0bURBO0VBQ0M7QWpCeW1ERDtBaUJ2bURDO0VBQ0M7QWpCeW1ERjs7QWlCcm1EQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakJ3bUREOztBaUJybURBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqQndtREQ7QWlCdG1EQztFQUNDO0FqQndtREY7O0FpQnBtREE7RUFDQztBakJ1bUREOztBaUJwbURBO0VBQ0MsY2hCdEdlO0VnQnVHZjtBakJ1bUREOztBaUJwbURBO0VBQ0M7QWpCdW1ERDtBaUJybURDO0VBQ0M7RUFDQTtFQUNBO0VBQ0EsY2hCeEdXO0VnQnlHWDtFQUNBO0VBQ0E7RUFDQSxtQmhCaEhZO0VnQmlIWjtBakJ1bURGO0FNM3RESTtFVzJHSDtJQVlFO0VqQndtREQ7QUFDRjs7QWlCcG1EQTtFQUNDO0VBQ0E7RUFDQTtBakJ1bUREO0FpQm5tREU7RUFDQztBakJxbURIO0FNenVESTtFV21JRjtJQUlFO0VqQnNtREY7QUFDRjtBaUJsbURDO0VBQ0M7QWpCb21ERjtBaUJqbURDO0VIMUlBO0VBQ0E7RUcySUM7QWpCb21ERjtBYzd1REM7RUFDQztBZCt1REY7QWM3dURFO0VBQ0MsY2JmYTtFYWdCYjtBZCt1REg7QWM1dURFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZDh1REg7QU12d0RJO0VRaUJGO0lBV0U7SUFDQTtFZCt1REY7QUFDRjtBTTd3REk7RVFpQkY7SUFnQkU7SUFDQTtFZGd2REY7QUFDRjtBTW54REk7RVFpQkY7SUFxQkU7SUFDQTtFZGl2REY7QUFDRjtBaUJwb0RDO0VBQ0M7QWpCc29ERjs7QWlCbG9EQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqQnFvREQ7QWlCbm9EQztFQUNDO0VBQ0E7QWpCcW9ERjtBaUJsb0RDO0VBQ0M7QWpCb29ERjtBaUJqb0RDO0VIdEtBO0VBQ0E7QWQweUREO0FjeHlEQztFQUNDO0FkMHlERjtBY3h5REU7RUFDQyxjYmZhO0VhZ0JiO0FkMHlESDtBY3Z5REU7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FkeXlESDtBTWwwREk7RVFpQkY7SUFXRTtJQUNBO0VkMHlERjtBQUNGO0FNeDBESTtFUWlCRjtJQWdCRTtJQUNBO0VkMnlERjtBQUNGO0FNOTBESTtFUWlCRjtJQXFCRTtJQUNBO0VkNHlERjtBQUNGOztBaUJucURBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7QWpCc3FERDtBaUJwcURDO0VBQ0M7QWpCc3FERjtBTTkxREk7RVd1TEg7SUFJRTtFakJ1cUREO0FBQ0Y7QWlCcHFEQztFQUNDLGNoQmxNYztFZ0JtTWQ7RUFDQTtFQUNBO0FqQnNxREY7O0FrQnAzREE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtQmpCSWE7QURtM0RkO0FNbjNESTtFWVhKO0lBVUU7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RWxCdzNEQTtBQUNGO0FNOTNESTtFWVhKO0lBb0JFO0lBQ0E7RWxCeTNEQTtBQUNGO0FNcDRESTtFWVhKO0lBeUJFO0lBQ0E7RWxCMDNEQTtBQUNGOztBa0J2M0RBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEIwM0REO0FNbDVESTtFWW1CSjtJQVFFO0VsQjIzREE7QUFDRjtBTXY1REk7RVltQko7SUFZRTtFbEI0M0RBO0FBQ0Y7QU01NURJO0VZbUJKO0lBZ0JFO0VsQjYzREE7QUFDRjs7QWtCMTNEQTtFQUNDLGNqQnpDVztBRHM2RFo7QWtCMzNEQztFQUNDLGNqQjVDVTtFaUI2Q1Y7RUFDQTtFQUNBO0FsQjYzREY7QU0zNkRJO0VZMENIO0lBT0U7SUFDQTtFbEI4M0REO0FBQ0Y7QU1qN0RJO0VZMENIO0lBWUU7SUFDQTtFbEIrM0REO0FBQ0Y7QU12N0RJO0VZMENIO0lBaUJFO0lBQ0E7RWxCZzRERDtBQUNGO0FrQjczREM7RUFDQztBbEIrM0RGOztBa0IzM0RBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQjgzREQ7QU16OERJO0VZcUVKO0lBU0U7RWxCKzNEQTtBQUNGO0FNOThESTtFWXFFSjtJQWFFO0VsQmc0REE7QUFDRjtBTW45REk7RVlxRUo7SUFpQkU7RWxCaTREQTtBQUNGO0FrQi8zREM7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY2pCakdjO0VpQmtHZCxtQmpCeEZlO0VpQnlGZjtFQUNBO0VBQ0E7QWxCaTRERjtBTXArREk7RVl5Rkg7SUFhRTtFbEJrNEREO0FBQ0Y7QU16K0RJO0VZeUZIO0lBaUJFO0VsQm00REQ7QUFDRjtBTTkrREk7RVl5Rkg7SUFxQkU7RWxCbzRERDtBQUNGOztBa0JoNERBO0VBQ0M7QWxCbTRERDtBa0JqNERDO0VBQ0M7RUFDQSxjakJqSFc7RWlCa0hYLG1CakIzSGM7RWlCNEhkO0FsQm00REY7O0FrQi8zREE7RUFDQztBbEJrNEREO0FrQmg0REM7RUFDQztFQUNBLG1CakJySWM7RWlCc0lkO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxCazRERjs7QWtCOTNEQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEJpNEREO0FNbmhFSTtFWTRJSjtJQVNFO0VsQms0REE7QUFDRjs7QWtCLzNEQTtFQUNDO0VBQ0E7RUFDQTtBbEJrNEREO0FNOWhFSTtFWXlKSjtJQU1FO0VsQm00REE7QUFDRjtBTW5pRUk7RVl5Sko7SUFVRTtFbEJvNERBO0FBQ0Y7QU14aUVJO0VZeUpKO0lBY0U7RWxCcTREQTtBQUNGO0FrQm40REM7RUFDQztBbEJxNERGOztBa0JqNERBO0VBQ0M7RUFDQTtFQUNBO0FsQm80REQ7QU10akVJO0VZK0tKO0lBTUU7SUFDQTtFbEJxNERBO0FBQ0Y7QU01akVJO0VZK0tKO0lBV0U7SUFDQTtFbEJzNERBO0FBQ0Y7QU1sa0VJO0VZK0tKO0lBZ0JFO0lBQ0E7RWxCdTREQTtBQUNGO0FrQnI0REM7RUFDQztFQUNBO0FsQnU0REY7QWtCcDREQztFQUNDO0VBQ0E7RUFDQTtFQUNBO0FsQnM0REY7QU1sbEVJO0VZd01IO0lBT0U7RWxCdTRERDtBQUNGO0FNdmxFSTtFWXdNSDtJQVdFO0VsQnc0REQ7QUFDRjtBTTVsRUk7RVl3TUg7SUFlRTtJQUNBO0VsQnk0REQ7QUFDRjtBa0J2NERFO0VBQ0M7RUFDQTtBbEJ5NERIO0FrQnI0REM7RUFDQztFQUNBO0VBQ0E7RUFDQTtBbEJ1NERGO0FNNW1FSTtFWWlPSDtJQU9FO0lBQ0E7RWxCdzRERDtBQUNGO0FNbG5FSTtFWWlPSDtJQVlFO0lBQ0E7RWxCeTRERDtBQUNGO0FNeG5FSTtFWWlPSDtJQWlCRTtJQUNBO0VsQjA0REQ7QUFDRjtBa0J2NERDO0VBQ0MsY2pCMVBjO0VpQjJQZDtFQUNBO0VBQ0E7RUFDQTtBbEJ5NERGO0FNcm9FSTtFWXVQSDtJQVFFO0VsQjA0REQ7QUFDRjtBTTFvRUk7RVl1UEg7SUFZRTtFbEIyNEREO0FBQ0Y7QU0vb0VJO0VZdVBIO0lBZ0JFO0VsQjQ0REQ7QUFDRjtBa0IxNERFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWxCNDRESDtBTTdwRUk7RVkwUUY7SUFVRTtJQUNBO0lBQ0E7RWxCNjRERjtBQUNGO0FNcHFFSTtFWTBRRjtJQWdCRTtJQUNBO0lBQ0E7RWxCODRERjtBQUNGO0FNM3FFSTtFWTBRRjtJQXNCRTtJQUNBO0lBQ0E7RWxCKzRERjtBQUNGOztBbUI3ckVBO0VBQ0U7RUFDQTtBbkJnc0VGOztBbUI3ckVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQmdzRUY7O0FtQjdyRUE7RUFDRTtBbkJnc0VGOztBbUI3ckVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQmdzRUY7O0FtQjdyRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5CZ3NFRjtBTS90RUk7RWF5Qko7SUFTSTtJQUNBO0VuQmlzRUY7QUFDRjtBbUIvckVFO0VBQ0U7QW5CaXNFSjs7QW1CN3JFQTtFQUNFO0FuQmdzRUY7O0FNNXVFSTtFYStDSjtJQUdJO0lBQ0E7SUFDQTtFbkIrckVGO0FBQ0Y7QU1wdkVJO0VhdURGO0lBR0k7RW5COHJFSjtBQUNGO0FNenZFSTtFYTZEQTtJQUdJO0VuQjZyRU47QUFDRjs7QW9CendFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXBCNHdFRDtBTXR3RUk7RWNYSjtJQVFFO0VwQjZ3RUE7QUFDRjs7QW9CMXdFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBLG1CbkJMYTtBRGt4RWQ7O0FvQjF3RUE7RUFDQztFQUNBO0VBQ0E7QXBCNndFRDs7QXFCbnlFQTtFQUNDO0VBQ0E7QXJCc3lFRDtBcUJweUVDO0VBQ0M7QXJCc3lFRjtBcUJueUVDO0VBQ0M7QXJCcXlFRjs7QXFCanlFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0FyQm95RUQ7O0FxQmp5RUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXJCb3lFRDs7QXFCanlFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FyQm95RUQ7O0FxQmp5RUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXJCb3lFRDtBcUJseUVDO0VBZEQ7SUFlRTtJQUNBO0lBQ0E7RXJCcXlFQTtBQUNGOztBcUJqeUVBO0VBQ0M7RUFDQTtBckJveUVEO0FxQmx5RUM7RUFKRDtJQUtFO0VyQnF5RUE7QUFDRjs7QXFCanlFQztFQUREO0lBRUU7SUFDQTtFckJxeUVBO0FBQ0Y7O0FxQmx5RUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtBckJxeUVEOztBcUJqeUVBO0VBQ0M7SUFDQztJQUNBO0VyQm95RUE7RXFCbHlFRDtJQUNDO0lBQ0E7RXJCb3lFQTtBQUNGO0FxQmp5RUE7RUFDQztJQUNDO0lBQ0E7RXJCbXlFQTtFcUJqeUVEO0lBQ0M7SUFDQTtFckJteUVBO0FBQ0YsQzs7Ozs7QXNCdnBFQTtFQUNFLGNBQWM7QUFDaEI7QUFFQTtFQUNFLDRCQUE0QjtBQUM5QjtBQUVBO0VBQ0UsZ0NBQWdDO0VBQ2hDLDRCQUE0QjtBQUM5QjtBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLDZCQUE2QjtFQUM3Qix3Q0FBd0M7QUFDMUM7Ozs7OztBQ29kQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7QUFDVjtBQUVBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFFQTtFQUNFLFVBQVU7QUFDWjtBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtBQUNyQjtBQUVBO0VBQ0UsOENBQThDO0VBQzlDLHFEQUFxRDtBQUN2RDtBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLGlEQUFpRDtFQUNqRCxzQ0FBc0M7QUFDeEM7QUFFQTtFQUNFLDRCQUE0QjtBQUM5QjtBQUVBO0VBQ0UsZ0NBQWdDO0VBQ2hDLDRCQUE0QjtBQUM5QjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixRQUFRO0VBQ1Isa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxjQUFjO0FBQ2hCOzs7Ozs7O0FDem5CQTtFQUNFLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsOEJBQThCO0FBQ2hDO0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFFQTtFQUNFLFVBQVU7QUFDWjtBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7Ozs7O0FDeUJBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjtBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOzs7Ozs7QUNrR0E7RUFDRSxjQUFjO0VBQ2QseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsY0FBYztFQUNkLDhCQUE4QjtBQUNoQztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxVQUFVO0FBQ1o7QUFFQTtFQUNFLGdDQUFnQztFQUNoQyw0QkFBNEI7QUFDOUI7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7Ozs7OztBQ2RBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjtBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOzs7Ozs7QUNoTkE7RUFDRSxVQUFVO0VBQ1YseUJBQXlCO0FBQzNCO0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLFVBQVU7QUFDWjtBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7Ozs7O0FDcEpBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixlQUFlO0FBQ2pCOzs7Ozs7QUNnR0E7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsU0FBUztFQUNULG1CQUFtQjtBQUNyQjs7Ozs7O0FDNUJBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFFQTtFQUNFLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsOEJBQThCO0FBQ2hDO0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9hcHAuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvZ2xvYmFsL3Jlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9nbG9iYWwvaGVscGVycy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvZ2xvYmFsL2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9nbG9iYWwvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdXRpbHMvYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2dsb2JhbC9lbGVtZW50cy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvZ2xvYmFsL2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2dsb2JhbC9ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9nbG9iYWwvZm9ybS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9hY2NvcmRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL2NvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3V0aWxzL21peGlucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9maW5hbC1vdmVydmlldy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9vdmVybGF5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL292ZXJ2aWV3LWNvbmZpZ3VyYXRvci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL3Rvb2x0aXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvdmlld3Mvc3RlcC0xL0luZGV4aW5nLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvY29tcG9uZW50cy92aWV3cy9zdGVwLTIvT3ZlcnZpZXdDb25maWd1cmF0b3IudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL3ZpZXdzL3N0ZXAtMy9BdmVyYWdlWWVhckluY29tZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvdmlld3Mvc3RlcC0zL1Rlcm1pbmF0ZUluc3VyYW5jZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvdmlld3Mvc3RlcC0zL1BlcnNvbmFsRGF0YS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvdmlld3Mvc3RlcC0zL0ZpbmFsT3ZlcnZpZXcudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL3ZpZXdzL3N0ZXAtNC9Lbm93bGVkZ2VSZXN1bHQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL3ZpZXdzL3N0ZXAtNy9jb21wb25lbnRzL1BheW1lbnRMb2FkaW5nU3RhdGUudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9jb21wb25lbnRzL3ZpZXdzL3N0ZXAtNy9jb21wb25lbnRzL1BheW1lbnRTdGF0dXNTdGF0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2NvbXBvbmVudHMvdmlld3MvQ29udGludWUudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuQHVzZSBcInNhc3M6bWF0aFwiO1xyXG5cclxuOnJvb3Qge1xyXG5cdC0tem9vbTogMTtcclxufVxyXG5cclxuLy8gQmFzZSAmIHV0aWxpdGllc1xyXG5AaW1wb3J0IFwidXRpbHMvZnVuY3Rpb25zLnNjc3NcIjtcclxuQGltcG9ydCBcInZhcmlhYmxlcy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJ1dGlscy9taXhpbnMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwidXRpbHMvYnJlYWtwb2ludHMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwidXRpbHMvdHlwb2dyYXBoeS5zY3NzXCI7XHJcblxyXG4vLyBHbG9iYWwgc2Nzc1xyXG5AaW1wb3J0IFwiZ2xvYmFsL3Jlc2V0LnNjc3NcIjtcclxuQGltcG9ydCBcImdsb2JhbC9oZWxwZXJzLnNjc3NcIjtcclxuQGltcG9ydCBcImdsb2JhbC9pY29ucy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJnbG9iYWwvZm9udHMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwiZ2xvYmFsL3R5cG9ncmFwaHkuc2Nzc1wiO1xyXG5AaW1wb3J0IFwiZ2xvYmFsL2VsZW1lbnRzLnNjc3NcIjtcclxuQGltcG9ydCBcImdsb2JhbC9idXR0b25zLnNjc3NcIjtcclxuQGltcG9ydCBcImdsb2JhbC9ncmlkLnNjc3NcIjtcclxuQGltcG9ydCBcImdsb2JhbC9mb3JtLnNjc3NcIjtcclxuXHJcbi8vIENvbXBvbmVudHNcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYWNjb3JkaW9uLnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYXBwLnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvY29udGVudC5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ZpbmFsLW92ZXJ2aWV3LnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvb3ZlcmxheS5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL292ZXJ2aWV3LWNvbmZpZ3VyYXRvci5zY3NzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NpZGViYXIuc2Nzc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy90b29sdGlwLnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvdG9wYmFyLnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvbW9kYWwuc2Nzc1wiO1xyXG5cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIENvbG9yc1xyXG4kY29sb3JMaWdodEJsdWU6ICNFNUVERjQ7XHJcbiRjb2xvckJsdWU6ICMwMDg5QzY7XHJcbiRjb2xvckRhcmtCbHVlOiAjMDA1MTkxO1xyXG4kdGV4dENvbG9yOiAjMDAzMDU2O1xyXG4kaGVhZGVyQ29sb3I6ICNlNWVkZjQ7XHJcbiRjb2xvck9yYW5nZTogI0U3NjIyRDtcclxuJGNvbG9yR3JheTogI0E3QTdBNztcclxuJGNvbG9yU3VjY2VzOiAjN0FDNjkwO1xyXG4kY29sb3JFcnJvcjogI0VGOEQ2NDtcclxuJGNvbG9yQmxhY2s6ICMwMDAwMDA7XHJcbiRjb2xvck1hdHRCbGFjazogIzFBMTcxQjtcclxuJGNvbG9yV2hpdGU6ICNGRkZGRkY7XHJcbiRjb2xvckxpZ2h0Qmx1ZTogI0Q4RUVGNTtcclxuJGNvbG9yQmVpZ2U6ICNGNEVERTU7XHJcbiRjb2xvckdyZWVuOiAjMDZFNjhGO1xyXG4kY29sb3JMaWdodEdyYXk6ICNmNmY2ZjQ7XHJcbiRjb2xvckRhcmtHcmF5OiAjMzMzMzMzO1xyXG4kY29sb3JMYWJlbEdyYXk6ICM0OTQ5NDk7XHJcbiRjb2xvckR1c3R5R3JheTogIzk3OTc5NztcclxuJGNvbG9yTGlnaHRCbGFjazogIzIwMjAyMDtcclxuJGNvbG9yTWVkaXVtR3JheTogIzhiOGI4YjtcclxuJGNvbG9yUmVkOiAjZWIwMDAwO1xyXG4kY29sb3JEZWZhdWx0OiAkY29sb3JSZWQ7XHJcbiRjb2xvckRlZmF1bHRMaWdodDogbGlnaHRlbigkY29sb3JSZWQsIDEwKTtcclxuJGNvbG9yTGlnaHRQdXJwbGU6ICNFRkVDRjg7XHJcbiRjb2xvckJvcmRlcjogI0VCRUJFQjtcclxuJGNvbG9yUGxhY2Vob2xkZXI6ICNFN0U3RTc7XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gMi4gQ3JlYXRlIGEgU0NTUyBNYXAgb2YgWW91ciBDb2xvcnNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIFRoaXMgbWFwIGFjdHMgYXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBjb2xvcnNcclxuLy8geW91IHdhbnQgdG8gZXhwb3NlIGFzIENTUyB2YXJpYWJsZXMuXHJcbiRjb2xvcnM6IChcclxuXHQvLyBNYWluIENvbG9yc1xyXG5cdFx0XCJsaWdodC1ibHVlXCI6ICRjb2xvckxpZ2h0Qmx1ZSxcclxuXHRcdFwiYmx1ZVwiOiAkY29sb3JCbHVlLFxyXG5cdFx0XCJkYXJrLWJsdWVcIjogJGNvbG9yRGFya0JsdWUsXHJcblx0XHRcInRleHQtY29sb3JcIjogJHRleHRDb2xvcixcclxuXHRcdCdoZWFkZXItY29sb3InOiAkaGVhZGVyQ29sb3IsXHJcblx0XHRcIm9yYW5nZVwiOiAkY29sb3JPcmFuZ2UsXHJcblx0XHRcImdyYXlcIjogJGNvbG9yR3JheSxcclxuXHRcdFwic3VjY2VzXCI6ICRjb2xvclN1Y2NlcyxcclxuXHRcdFwiZXJyb3JcIjogJGNvbG9yRXJyb3IsXHJcblx0Ly8gR3JheXNjYWxlICYgQWNjZW50c1xyXG5cdFx0XCJibGFja1wiOiAkY29sb3JCbGFjayxcclxuXHRcdFwibWF0dC1ibGFja1wiOiAkY29sb3JNYXR0QmxhY2ssXHJcblx0XHRcIndoaXRlXCI6ICRjb2xvcldoaXRlLFxyXG5cdFx0XCJiZWlnZVwiOiAkY29sb3JCZWlnZSxcclxuXHRcdFwiZ3JlZW5cIjogJGNvbG9yR3JlZW4sXHJcblx0XHRcImxpZ2h0LWdyYXlcIjogJGNvbG9yTGlnaHRHcmF5LFxyXG5cdFx0XCJkYXJrLWdyYXlcIjogJGNvbG9yRGFya0dyYXksXHJcblx0XHRcImxhYmVsLWdyYXlcIjogJGNvbG9yTGFiZWxHcmF5LFxyXG5cdFx0XCJkdXN0eS1ncmF5XCI6ICRjb2xvckR1c3R5R3JheSxcclxuXHRcdFwibGlnaHQtYmxhY2tcIjogJGNvbG9yTGlnaHRCbGFjayxcclxuXHRcdFwibWVkaXVtLWdyYXlcIjogJGNvbG9yTWVkaXVtR3JheSxcclxuXHRcdFwicmVkXCI6ICRjb2xvclJlZCxcclxuXHRcdFwiZGVmYXVsdFwiOiAkY29sb3JEZWZhdWx0LFxyXG5cdFx0XCJkZWZhdWx0LWxpZ2h0XCI6ICRjb2xvckRlZmF1bHRMaWdodCxcclxuXHRcdFwibGlnaHQtcHVycGxlXCI6ICRjb2xvckxpZ2h0UHVycGxlLFxyXG5cdFx0XCJib3JkZXJcIjogJGNvbG9yQm9yZGVyLFxyXG5cdFx0XCJwbGFjZWhvbGRlclwiOiAkY29sb3JQbGFjZWhvbGRlclxyXG4pO1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIDMuIEdlbmVyYXRlIENTUyBWYXJpYWJsZXMgZnJvbSB0aGUgTWFwXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBUaGlzIGxvb3AgaXRlcmF0ZXMgdGhyb3VnaCB0aGUgbWFwIGFuZCBjcmVhdGVzIGEgQ1NTIGN1c3RvbVxyXG4vLyBwcm9wZXJ0eSBmb3IgZWFjaCBjb2xvci5cclxuOnJvb3Qge1xyXG5cdEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGNvbG9ycyB7XHJcblx0XHQtLWNvbG9yLSN7JG5hbWV9OiAjeyRjb2xvcn07XHJcblx0fVxyXG59XHJcblxyXG5cclxuLy8gVHlwb2dyYXBoeVxyXG4kZm9udC1wcmltYXJ5OiBcIlN1blwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyBWVyBzaXppbmcgdmFyXHJcbiR2dy1tb2JpbGU6IDM3NTtcclxuJHZ3LXRhYmxldDogNzY4O1xyXG4kdnctZGVza3RvcDogMTkyMDtcclxuXHJcbi8vIE1lZGlhIFF1ZXJpZXNcclxuJGJyZWFrcG9pbnQtdGFibGV0OiA3MjBweDtcclxuJGJyZWFrcG9pbnQtZGVza3RvcDogOTYwcHg7XHJcbiRicmVha3BvaW50LXdpZGVzY3JlZW46IDE5MjFweDtcclxuXHJcbi8vIENvbnRhaW5lciB3aWR0aFxyXG4kY29udGFpbmVyLW1heC13aWR0aDogMTM5NTtcclxuXHJcbi8vIEdyaWRcclxuJGdyaWQtZ2FwLWRldmljZXM6IDE2O1xyXG4kZ3JpZC1nYXAtZGVza3RvcDogNDU7XHJcbiIsImJvZHkge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbnVsLCBvbCwgcCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgYmxvY2txdW90ZSwgcHJlLCBkbCwgZGQsIGZpZ3VyZSwgaHIsIGZpZWxkc2V0LCBsZWdlbmQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4qe1xuICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6MDtcbiAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6MDtcbiAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6MDtcbiAgLXdlYmtpdC1tYXJnaW4tZW5kOjA7XG4gIC13ZWJraXQtcGFkZGluZy1zdGFydDowO1xuICAtd2Via2l0LXBhZGRpbmctYWZ0ZXI6MDtcbiAgLXdlYmtpdC1wYWRkaW5nLWJlZm9yZTowO1xuICAtd2Via2l0LXBhZGRpbmctZW5kOjA7XG4gIC13ZWJraXQtbWFyZ2luLWJlZm9yZTowO1xuICBtYXJnaW4tYWZ0ZXI6MDtcbiAgbWFyZ2luLXN0YXJ0OjA7XG4gIG1hcmdpbi1lbmQ6MDtcbiAgcGFkZGluZy1zdGFydDowO1xuICBwYWRkaW5nLWFmdGVyOjA7XG4gIHBhZGRpbmctYmVmb3JlOjA7XG4gIHBhZGRpbmctZW5kOjA7XG4gIC1tb3otbWFyZ2luLWFmdGVyOjA7XG4gIC1tb3otbWFyZ2luLXN0YXJ0OjA7XG4gIC1tb3otbWFyZ2luLWVuZDowO1xuICAtbW96LXBhZGRpbmctc3RhcnQ6MDtcbiAgLW1vei1wYWRkaW5nLWFmdGVyOjA7XG4gIC1tb3otcGFkZGluZy1iZWZvcmU6MDtcbiAgLW1vei1wYWRkaW5nLWVuZDowO1xuICB0ZXh0LXJlbmRlcmluZzogZ2VvbWV0cmljUHJlY2lzaW9uO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn0iLCIuZnVsbC13aWR0aCB7XHJcblx0d2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oaWRkZW4ge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5jdXJzb3ItcG9pbnRlciB7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uY3Vyc29yLWRlZmF1bHQge1xyXG5cdGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG4iLCJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ3N1bic7XHJcbiAgc3JjOiB1cmwofkAvZm9udHMvc3VuMy13ZWJmb250LmVvdCk7XHJcbiAgc3JjOiB1cmwofkAvZm9udHMvc3VuMy13ZWJmb250LmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICB1cmwofkAvZm9udHMvc3VuMy13ZWJmb250LndvZmYpIGZvcm1hdCgnd29mZicpLFxyXG4gIHVybCh+QC9mb250cy9zdW4zLXdlYmZvbnQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgdXJsKH5AL2ZvbnRzL3N1bjMtd2ViZm9udC5zdmcpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWxcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdzdW4nO1xyXG4gIHNyYzogdXJsKH5AL2ZvbnRzL3N1bjUtd2ViZm9udC5lb3QpO1xyXG4gIHNyYzogdXJsKH5AL2ZvbnRzL3N1bjUtd2ViZm9udC5lb3Q/I2llZml4KSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgdXJsKH5AL2ZvbnRzL3N1bjUtd2ViZm9udC53b2ZmKSBmb3JtYXQoJ3dvZmYnKSxcclxuICB1cmwofkAvZm9udHMvc3VuNS13ZWJmb250LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIHVybCh+QC9mb250cy9zdW41LXdlYmZvbnQuc3ZnKSBmb3JtYXQoJ3N2ZycpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ3N1bic7XHJcbiAgc3JjOiB1cmwofkAvZm9udHMvc3VuNWktd2ViZm9udC5lb3QpO1xyXG4gIHNyYzogdXJsKH5AL2ZvbnRzL3N1bjVpLXdlYmZvbnQuZW90PyNpZWZpeCkgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIHVybCh+QC9mb250cy9zdW41aS13ZWJmb250LndvZmYpIGZvcm1hdCgnd29mZicpLFxyXG4gIHVybCh+QC9mb250cy9zdW41aS13ZWJmb250LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIHVybCh+QC9mb250cy9zdW41aS13ZWJmb250LnN2ZykgZm9ybWF0KCdzdmcnKTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdzdW4nO1xyXG4gIHNyYzogdXJsKH5AL2ZvbnRzL3N1bjctd2ViZm9udC5lb3QpO1xyXG4gIHNyYzogdXJsKH5AL2ZvbnRzL3N1bjctd2ViZm9udC5lb3Q/I2llZml4KSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgdXJsKH5AL2ZvbnRzL3N1bjctd2ViZm9udC53b2ZmKSBmb3JtYXQoJ3dvZmYnKSxcclxuICB1cmwofkAvZm9udHMvc3VuNy13ZWJmb250LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIHVybCh+QC9mb250cy9zdW43LXdlYmZvbnQuc3ZnKSBmb3JtYXQoJ3N2ZycpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcbiIsImJvZHkge1xuXHRmb250LXNpemU6IDE3cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRjb2xvcjogJHRleHRDb2xvcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuXG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcblxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0fVxufVxuXG5wIHtcblx0bWFyZ2luLWJvdHRvbTogcHgtdG8tdnctem9vbSgxNiwgJHZ3LW1vYmlsZSk7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcblx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDE2LCAkdnctdGFibGV0KTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuXHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oMzIsICR2dy1kZXNrdG9wKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xuXHRcdG1hcmdpbi1ib3R0b206IDMycHg7XG5cdH1cbn1cbiIsIiRicmVha3BvaW50czogKFxuICAgICAgICB0YWJsZXQ6ICRicmVha3BvaW50LXRhYmxldCxcbiAgICAgICAgZGVza3RvcDogJGJyZWFrcG9pbnQtZGVza3RvcCxcbiAgICAgICAgd2lkZXNjcmVlbjogJGJyZWFrcG9pbnQtd2lkZXNjcmVlblxuKSAhZGVmYXVsdDtcblxuQG1peGluIGJyZWFrcG9pbnQoXG4gICRicmVha3BvaW50LFxuICAkYnJlYWtwb2ludC1kaXJlY3Rpb246IG1pblxuKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCN7JGJyZWFrcG9pbnQtZGlyZWN0aW9ufS13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cblt2LWNsb2FrXSB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuKjpmb2N1cyB7XG5cdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuKiB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuXHRzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuaHRtbCwgYm9keSB7XG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtaW4taGVpZ2h0OiAxMDAlO1xuXHRtaW4td2lkdGg6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuYm9keSB7XG5cbn1cblxuaW1nIHtcblx0aGVpZ2h0OiBhdXRvO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmZpZ3VyZSB7XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IGluaXRpYWw7XG5cdH1cbn1cblxucCxcbi5wLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxudWwsXG5vbCxcbmZvcm0ge1xuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxub2wge1xuXHRwYWRkaW5nLWxlZnQ6IDEycHg7XG5cdG1hcmdpbi1ib3R0b206IDI0cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi5sb2FkaW5nLWNvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMnJlbTtcbn1cblxuLmxvYWRlciB7XG5cdGJvcmRlcjogNHB4IHNvbGlkICNmM2YzZjM7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyLXRvcDogNHB4IHNvbGlkICMzNDk4ZGI7XG5cdHdpZHRoOiA0MHB4O1xuXHRoZWlnaHQ6IDQwcHg7XG5cdG1hcmdpbjogMjBweCBhdXRvO1xuXHRhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ubG9hZGVyLWJ1dHRvbiB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICNmM2YzZjM7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICMzNDk4ZGI7XG5cdHdpZHRoOiAyMXB4O1xuXHRoZWlnaHQ6IDIxcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cdH1cblx0MTAwJSB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcblx0fVxufVxuIiwiQG1peGluIGJ0biB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC1zaXplOiAxN3B4O1xuXHRsaW5lLWhlaWdodDogMS4yO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvck9yYW5nZTtcblx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdGJvcmRlcjogcHgtdG8tdnctem9vbSgxLCAkdnctbW9iaWxlKSBzb2xpZCAkY29sb3JPcmFuZ2U7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6IDE0cHggMTVweCAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDgsICR2dy1tb2JpbGUpO1xuXG5cdCY6ZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdFx0b3BhY2l0eTogMC41O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcblx0XHRib3JkZXI6IHB4LXRvLXZ3LXpvb20oMSwgJHZ3LXRhYmxldCkgc29saWQgJGNvbG9yT3JhbmdlO1xuXHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oOCwgJHZ3LXRhYmxldCk7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcblx0XHRib3JkZXI6IHB4LXRvLXZ3LXpvb20oMSwgJHZ3LWRlc2t0b3ApIHNvbGlkICRjb2xvck9yYW5nZTtcblx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDgsICR2dy1kZXNrdG9wKTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvck9yYW5nZTtcblx0XHRwYWRkaW5nOiAxNHB4IDE1cHggMTZweDtcblx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cdH1cbn1cblxuLmJ0biB7XG5cdEBpbmNsdWRlIGJ0bjtcbn1cblxuLy8gQnRuIHZhcmlhdGlvbnNcbi5idG4tLWdob3N0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdGNvbG9yOiAkY29sb3JNYXR0QmxhY2s7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6ICRjb2xvck1hdHRCbGFjaztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvck1hdHRCbGFjaztcblx0fVxuXG5cdCYuYnRuLS1ibHVlIHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkY29sb3JEYXJrQmx1ZTtcblx0XHRjb2xvcjogJGNvbG9yRGFya0JsdWU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3JEYXJrQmx1ZTtcblx0fVxufVxuXG4uYnRuLS1iYWNrIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0Y29sb3I6ICRjb2xvck1hdHRCbGFjaztcblx0Ym9yZGVyOiAycHggc29saWQgJGNvbG9yR3JheTtcblx0cGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMgZWFzZS1vdXQ7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvck1hdHRCbGFjaztcblxuXHRcdHN2ZyB7XG5cdFx0XHRmaWxsOiAkY29sb3JNYXR0QmxhY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5hY3Rpb25zLXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXHRnYXA6IDEycHg7XG59XG5cbi5hY3Rpb25zLXJvdyAuYnRuLS1iYWNrIHtcblx0ZmxleDogMCAwIGF1dG87XG59XG5cbi5hY3Rpb25zLXJvdyAuZm9ybWtpdC1vdXRlciB7XG5cdGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uYWN0aW9ucy1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0Z2FwOiAxMnB4O1xufVxuXG4uYWN0aW9ucy1yb3cgLmJ0bi0tYmFjayB7XG5cdGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uYWN0aW9ucy1yb3cgLmZvcm1raXQtb3V0ZXIge1xuXHRmbGV4OiAxIDEgYXV0bztcbn1cblxuLmFjdGlvbnMtcm93IC5mb3Jta2l0LW91dGVyLFxuLmFjdGlvbnMtcm93IC5mb3Jta2l0LWlucHV0LFxuLmFjdGlvbnMtcm93IC5idG4ge1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLmFjdGlvbnMtcm93IC5mb3Jta2l0LXdyYXBwZXIsXG4uYWN0aW9ucy1yb3cgLmZvcm1raXQtaW5uZXIsXG4uYWN0aW9ucy1yb3cgLmZvcm1raXQtaW5wdXQge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uYWN0aW9ucy1yb3cgLmJ0bixcbi5hY3Rpb25zLXJvdyAuZm9ybWtpdC1pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC1zaXplOiAxN3B4O1xuXHRsaW5lLWhlaWdodDogMS4yO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6IDEycHggMTVweDtcbn1cblxuLmFjdGlvbnMtcm93IC5mb3Jta2l0LWlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRib3JkZXItd2lkdGg6IDJweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkY29sb3JPcmFuZ2U7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvck9yYW5nZTtcblx0Y29sb3I6IHdoaXRlO1xufVxuXG5cbi5idG4tLXVwcGVyY2FzZSB7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5idG4tLWxhcmdlIHtcblx0Zm9udC1zaXplOiBweC10by12dy16b29tKDIwLCAkdnctbW9iaWxlKTtcblx0bGluZS1oZWlnaHQ6IHB4LXRvLXZ3LXpvb20oMjQsICR2dy1tb2JpbGUpO1xuXHRwYWRkaW5nOiBweC10by12dy16b29tKDE1LCAkdnctbW9iaWxlKSBweC10by12dy16b29tKDMyLCAkdnctbW9iaWxlKSBweC10by12dy16b29tKDE1LCAkdnctbW9iaWxlKSBweC10by12dy16b29tKDE2LCAkdnctbW9iaWxlKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcblx0XHRmb250LXNpemU6IHB4LXRvLXZ3LXpvb20oMjAsICR2dy10YWJsZXQpO1xuXHRcdGxpbmUtaGVpZ2h0OiBweC10by12dy16b29tKDI0LCAkdnctdGFibGV0KTtcblx0XHRwYWRkaW5nOiBweC10by12dy16b29tKDE1LCAkdnctdGFibGV0KSBweC10by12dy16b29tKDMyLCAkdnctdGFibGV0KSBweC10by12dy16b29tKDE1LCAkdnctdGFibGV0KSBweC10by12dy16b29tKDE2LCAkdnctdGFibGV0KTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcblx0XHRmb250LXNpemU6IHB4LXRvLXZ3LXpvb20oMjAsICR2dy1kZXNrdG9wKTtcblx0XHRsaW5lLWhlaWdodDogcHgtdG8tdnctem9vbSgyNCwgJHZ3LWRlc2t0b3ApO1xuXHRcdHBhZGRpbmc6IHB4LXRvLXZ3LXpvb20oMTUsICR2dy1kZXNrdG9wKSBweC10by12dy16b29tKDMyLCAkdnctZGVza3RvcCkgcHgtdG8tdnctem9vbSgxNSwgJHZ3LWRlc2t0b3ApIHB4LXRvLXZ3LXpvb20oMTYsICR2dy1kZXNrdG9wKTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0cGFkZGluZzogMTVweCAzMnB4IDE1cHggMTZweDtcblx0fVxufVxuXG4vLyBCdG4gY29sb3JzXG4uYnRuLS1yZWQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JSZWQ7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Ym9yZGVyLWNvbG9yOiAkY29sb3JSZWQ7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvclJlZDtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvclJlZDtcblx0fVxuXG5cdCY6YmVmb3JlIHtcblx0XHRjb2xvcjogYmxhY2s7XG5cdH1cbn1cblxuLmJ0bi1leHRlbmRlZCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRjb2xvcjogJGNvbG9yQmxhY2s7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNFOUU5RTk7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0cmFuc2l0aW9uOiBib3JkZXIgMjAwbXMgZWFzZS1vdXQ7XG5cblx0Jjpob3ZlciB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yQmx1ZTtcblx0XHR0cmFuc2l0aW9uOiBib3JkZXIgMjAwbXMgZWFzZS1vdXQ7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bWFyZ2luLXRvcDogLTlweDtcblx0XHRyaWdodDogMTZweDtcblx0XHR3aWR0aDogMTFweDtcblx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCd+QC9pbWcvY2hldnJvbi1kYXJrYmx1ZS5zdmcnKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdH1cbn1cblxuLmJ0bi1leHRlbmRlZF9fdGl0bGUge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXNpemU6IDE3cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmJ0bi1leHRlbmRlZF9fdGV4dCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0bGluZS1oZWlnaHQ6IDEuMjtcblx0bWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uYnRuLWV4dGVuZGVkX19pY29uIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Y29sb3I6ICRjb2xvckRhcmtCbHVlO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cblx0JjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMjBweDtcblx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCd+QC9pbWcvaWNvbi1zdG9wd2F0Y2guc3ZnJyk7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdG1hcmdpbi1yaWdodDogMnB4O1xuXHR9XG59XG5cbi5saW5rIHtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjb2xvcjogJGNvbG9yQmx1ZTtcbn1cbiIsIi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdyaWQtY29sdW1uLWdhcDogcHgtdG8tdnctem9vbSgxNiwgJHZ3LW1vYmlsZSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiBweC10by12dy16b29tKDE2LCAkdnctdGFibGV0KTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICBncmlkLWNvbHVtbi1nYXA6IHB4LXRvLXZ3LXpvb20oNDUsICR2dy1kZXNrdG9wKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcbiAgICBncmlkLWNvbHVtbi1nYXA6IDQ1cHg7XG4gIH1cbn1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCBweC10by12dy16b29tKDI0LCAkdnctbW9iaWxlKTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICBwYWRkaW5nOiAwIHB4LXRvLXZ3LXpvb20oMjQsICR2dy10YWJsZXQpO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgIG1heC13aWR0aDogcHgtdG8tdnctem9vbSgxNDQzLCAkdnctZGVza3RvcCk7XG4gICAgcGFkZGluZzogMCBweC10by12dy16b29tKDI0LCAkdnctZGVza3RvcCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XG4gICAgbWF4LXdpZHRoOiAxMDkzcHg7XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICB9XG59XG4iLCIvLyBGb3JtS2l0IGNsYXNzZXNcbi5mb3Jta2l0LWZvcm0ge1xuXHRwYWRkaW5nLWJvdHRvbTogNjBweDtcblxuXHRbZGF0YS10eXBlPVwic3VibWl0XCJdIHtcblxuXHRcdCsgLmZvcm1raXQtbWVzc2FnZXMge1xuXG5cdFx0XHQuZm9ybWtpdC1tZXNzYWdlIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JFcnJvcjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICcqJztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZm9ybWtpdC1vdXRlciB7XG5cdG1hcmdpbi1ib3R0b206IDE0cHg7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNnB4O1xuXHR9XG5cblx0JltkYXRhLWludmFsaWQ9XCJ0cnVlXCJdIHtcblx0XHQuZm9ybWtpdC1pbnB1dCB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JFcnJvcjtcblx0XHRcdG1hcmdpbi1ib3R0b206IC0ycHg7XG5cdFx0fVxuXG5cdFx0LmZvcm1raXQtaGVscCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCsgLmZvcm1raXQtbWVzc2FnZXMge1xuXG5cdFx0LmZvcm1raXQtbWVzc2FnZSB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cblx0fVxufVxuXG4uZm9ybWtpdC0tY2hlY2tib3gge1xuXG5cdC5mb3Jta2l0LXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQuZm9ybWtpdC1pbm5lciB7XG5cblx0XHRcdC5mb3Jta2l0LWlucHV0IHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0XHQmOmNoZWNrZWQge1xuXG5cdFx0XHRcdFx0KyAuZm9ybWtpdC1kZWNvcmF0b3Ige1xuXG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmZvcm1raXQtZGVjb3JhdG9yIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR3aWR0aDogMXJlbTtcblx0XHRcdFx0aGVpZ2h0OiAxcmVtO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2E3YTdhNztcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ+QC9pbWcvY2hlY2ttYXJrLWRhcmtibHVlLnN2Z1wiKTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mb3Jta2l0LWxhYmVsIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5mb3Jta2l0LWZpZWxkc2V0IHtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4uZm9ybWtpdC1sZWdlbmQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGZvbnQtc2l6ZTogMTdweDtcblx0bGluZS1oZWlnaHQ6IDEuMjtcblx0Y29sb3I6ICMwMDAwMDA7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5mb3Jta2l0LW9wdGlvbnMge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uZm9ybWtpdC1vcHRpb24ge1xuXHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cblx0LmZvcm1raXQtd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRwYWRkaW5nOiAxNnB4O1xuXG5cdFx0LmZvcm1raXQtaW5uZXIge1xuXG5cdFx0XHQuZm9ybWtpdC1pbnB1dCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdFx0JjpjaGVja2VkIHtcblxuXHRcdFx0XHRcdCsgLmZvcm1raXQtZGVjb3JhdG9yIHtcblx0XHRcdFx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICRjb2xvckJsdWU7XG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBib3JkZXIgMjAwbXMgZWFzZS1vdXQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5mb3Jta2l0LWRlY29yYXRvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRcdHRyYW5zaXRpb246IGJvcmRlciAyMDBtcyBlYXNlLW91dDtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yQmx1ZTtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBib3JkZXIgMjAwbXMgZWFzZS1vdXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZm9ybWtpdC1sYWJlbCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuXG4uZm9ybWtpdC13cmFwcGVyIHtcblxufVxuXG4uZm9ybWtpdC1sYWJlbCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29sb3I6ICRjb2xvckJsYWNrO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXNpemU6IDE3cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuXHRcdG1hcmdpbi1ib3R0b206IDRweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuXHRcdG1hcmdpbi1ib3R0b206IDRweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xuXHRcdG1hcmdpbi1ib3R0b206IDRweDtcblx0fVxufVxuXG4uZm9ybWtpdC1pbm5lciB7XG5cblx0c2VsZWN0IHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2IoMCAwIDAgLyAxMCUpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0fVxufVxuXG4uZm9ybWtpdC1pbnB1dCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRmb250LXNpemU6IDE3cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvckdyYXk7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0bWFyZ2luLWJvdHRvbTogOHB4O1xuXHRwYWRkaW5nOiAxMnB4IDE2cHg7XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yQmx1ZTtcblx0fVxuXG5cdCZbdHlwZT1cImRhdGVcIl0ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCY6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblx0fVxuXG5cdCZbdHlwZT1cInN1Ym1pdFwiXSwgJlt0eXBlPVwiYnV0dG9uXCJdIHtcblx0XHRAaW5jbHVkZSBidG47XG5cdH1cbn1cblxuLmZvcm1raXQtaGVscCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdGNvbG9yOiAkY29sb3JHcmF5O1xufVxuXG4uZm9ybWtpdC1tZXNzYWdlcyB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5mb3Jta2l0LW1lc3NhZ2Uge1xuXHRwYWRkaW5nOiAxMHB4IDE2cHggOHB4IDE2cHg7XG5cdGNvbG9yOiAkY29sb3JXaGl0ZTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsaW5lLWhlaWdodDogMS40O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JFcnJvcjtcbn1cblxuLy8gRm9ybUtpdCBjdXN0b20gY2xhc3Nlc1xuLmZvcm1raXQtbGFiZWwtLWV4dHJhLWNvbnRlbnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXG5cdD4gZGl2IHtcblx0XHRmbGV4LWJhc2lzOiBjYWxjKDEwMCUgLSA0MHB4KTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuXG5cdFx0aDMge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGZvbnQtc2l6ZTogMTdweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdGZsZXgtYmFzaXM6IDQwcHg7XG5cdH1cbn1cblxuLmZvcm1raXQtLXNlYXJjaCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDE4cHg7XG5cdFx0aGVpZ2h0OiAxOHB4O1xuXHRcdHRvcDogMTNweDtcblx0XHRyaWdodDogMTZweDtcblx0XHRjb250ZW50OiAnJztcblx0XHRiYWNrZ3JvdW5kOiB1cmwoXCJ+QC9pbWcvaWNvbi1zZWFyY2gtZGFya2JsdWUuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuXHR9XG59XG5cbi5mb3Jta2l0LS10b2dnbGUge1xuXG5cdC5mb3Jta2l0LW9wdGlvbiB7XG5cblx0XHQuZm9ybWtpdC13cmFwcGVyIHtcblx0XHRcdHBhZGRpbmc6IDE2cHggOHB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI0U5RTlFOTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2IoMCAwIDAgLyAxMCUpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuXHRcdFx0XHRwYWRkaW5nOiAxNnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybWtpdC1pbm5lciB7XG5cblx0XHRcdFx0aW5wdXQge1xuXG5cdFx0XHRcdFx0JjpjaGVja2VkLCAmW3ZhbHVlPVwidHJ1ZVwiXSB7XG5cblx0XHRcdFx0XHRcdCsgLmZvcm1raXQtZGVjb3JhdG9yIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJGNvbG9yQmx1ZTtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMzJweDtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yQmx1ZTtcblxuXHRcdFx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG5cdFx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmZvcm1raXQtZGVjb3JhdG9yIHtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogLTE2cHg7XG5cdFx0XHRcdFx0cmlnaHQ6IDE2cHg7XG5cdFx0XHRcdFx0bGVmdDogYXV0bztcblx0XHRcdFx0XHR3aWR0aDogNTJweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDMycHg7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJGNvbG9yR3JheTtcblx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6IDNweDtcblx0XHRcdFx0XHRcdHdpZHRoOiAyNHB4O1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiAyNHB4O1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JXaGl0ZTtcblx0XHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpO1xuXHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5mb3Jta2l0LWxhYmVsIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDY0cHg7XG5cblx0XHRpbWcge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xuXHRcdFx0d2lkdGg6IDMycHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG5cdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGg0IHtcblx0XHRcdGZvbnQtc2l6ZTogMTdweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjM7XG5cblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogJGNvbG9yQmx1ZTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZm9ybWtpdC0tbm8tbWFyZ2luIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmZvcm1raXQtb3V0ZXItLXNpbmdsZS1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGdhcDogMjRweDtcblx0fVxuXG5cdC5mb3Jta2l0LW91dGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uZm9ybWtpdC1vcHRpb25zLS01MC01MCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0Z2FwOiAyNHB4O1xuXG5cdC5mb3Jta2l0LW9wdGlvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQuZm9ybWtpdC13cmFwcGVyIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblx0fVxufVxuXG4uZm9ybWtpdC1vcHRpb24tLWZ1bGxjb2xvciB7XG5cblx0LmZvcm1raXQtd3JhcHBlciB7XG5cblx0XHQmW2RhdGEtY2hlY2tlZD1cInRydWVcIl0ge1xuXG5cdFx0XHQuZm9ybWtpdC1kZWNvcmF0b3Ige1xuXHRcdFx0XHRjb2xvcjogJGNvbG9yV2hpdGU7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvckRhcmtCbHVlO1xuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybWtpdC1sYWJlbCB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0Y29sb3I6ICRjb2xvcldoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5mb3Jta2l0LWxhYmVsIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG59XG5cbi5mb3Jta2l0LS1ldXJvIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAn4oKsJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxNXB4O1xuXHRcdGxlZnQ6IDE2cHg7XG5cdFx0Zm9udC1zaXplOiAxN3B4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdH1cblxuXHRpbnB1dCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAzMHB4O1xuXHR9XG59XG5cbi5mb3Jta2l0LS1waG9uZS1zdWZmaXgge1xuXG5cdC5mb3Jta2l0LWlubmVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnKzMxICgwKTYnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxNXB4O1xuXHRcdFx0bGVmdDogMTZweDtcblx0XHRcdGZvbnQtc2l6ZTogMTdweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHR9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDg1cHg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7XG5cdFx0XHR3aWR0aDogMXB4O1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjQTdBN0E3O1xuXHRcdH1cblxuXHRcdGlucHV0IHtcblx0XHRcdHBhZGRpbmctbGVmdDogOTJweFxuXHRcdH1cblx0fVxuXG5cblx0JltkYXRhLWludmFsaWQ9XCJ0cnVlXCJdIHtcblxuXHRcdC5mb3Jta2l0LWlubmVyIHtcblxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGhlaWdodDogMTAxJTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yRXJyb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5mb3Jta2l0LS1hdXRvLWNvbXBsZXRlLWlucHV0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cblx0aW5wdXQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Ly9kYXRhbGlzdCB7XG5cdC8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8vICBtYXgtaGVpZ2h0OiAyMGVtO1xuXHQvLyAgYm9yZGVyOiAwIG5vbmU7XG5cdC8vICBtYXJnaW4tdG9wOiAtOHB4O1xuXHQvLyAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXHQvLyAgb3ZlcmZsb3cteTogYXV0bztcblx0Ly9cblx0Ly8gIG9wdGlvbiB7XG5cdC8vICAgIHBhZGRpbmc6IDEycHggMTZweDtcblx0Ly8gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yTGlnaHRCbHVlO1xuXHQvLyAgICBjdXJzb3I6IHBvaW50ZXI7XG5cdC8vXG5cdC8vICAgICY6aG92ZXIsICY6Zm9jdXMge1xuXHQvLyAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckRhcmtCbHVlO1xuXHQvLyAgICAgIGNvbG9yOiAjZmZmO1xuXHQvLyAgICB9XG5cdC8vICB9XG5cdC8vfVxuXG5cblx0LmNvbWJvLWRyb3Bkb3duIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRtYXgtaGVpZ2h0OiAyNDBweDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiA0cHggMDtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI0U5RTlFOTtcblx0XHRib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0fVxuXG5cdC5jb21iby1vcHRpb24ge1xuXHRcdHBhZGRpbmc6IDhweCAxMnB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXG5cdC5jb21iby1vcHRpb24uaXMtYWN0aXZlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGNkZCO1xuXHR9XG59XG5cbi5lcnJvci1tZXNzYWdlIHtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRmb250LXNpemU6IDFyZW07XG59XG4iLCIuYWNjb3JkaW9uIHtcclxuICBtYXJnaW4tYm90dG9tOiAzNnB4O1xyXG59XHJcblxyXG4uYWNjb3JkaW9uX19pdGVtcyB7XHJcblxyXG4gIGRldGFpbHMge1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuXHJcbiAgICBzdW1tYXJ5IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDNEM0QzO1xyXG5cclxuICAgICAgJjphZnRlcixcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICB3aWR0aDogMTZweDtcclxuICAgICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1MTkxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoOTBkZWcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOjptYXJrZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGgzIHtcclxuICAgICAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgIHBhZGRpbmc6IDEycHggMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRldGFpbHNbb3Blbl0ge1xyXG5cclxuICAgIHN1bW1hcnkge1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRldGFpbHMgPiBzdW1tYXJ5IHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBkZXRhaWxzID4gc3VtbWFyeTo6bWFya2VyLCAvKiBMYXRlc3QgQ2hyb21lLCBFZGdlLCBGaXJlZm94ICovXHJcbiAgZGV0YWlscyA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIgLyogU2FmYXJpICovIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsIi5hcHAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn0iLCIudXNwcyB7XHJcblx0QGluY2x1ZGUgY2hlY2ttYXJrTGlzdDtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwdmg7XHJcblx0cGFkZGluZy10b3A6IDEyMHB4O1xyXG5cdHBhZGRpbmctYm90dG9tOiBweC10by12dy16b29tKDQ2LCAkdnctbW9iaWxlKTtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAzMjBweCk7XHJcblx0XHRwYWRkaW5nLXRvcDogNzRweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiA0NnB4O1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDMyMHB4O1xyXG5cdFx0bWluLXdpZHRoOiAwO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHR3aWR0aDogY2FsYygxMDAlIC0gMzYwcHgpO1xyXG5cdFx0cGFkZGluZy10b3A6IHB4LXRvLXZ3LXpvb20oNjAsICR2dy1kZXNrdG9wKTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiBweC10by12dy16b29tKDQ2LCAkdnctZGVza3RvcCk7XHJcblx0XHRtYXJnaW4tbGVmdDogMzYwcHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAzNjBweCk7XHJcblx0XHRwYWRkaW5nLXRvcDogMTQwcHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogNDZweDtcclxuXHR9XHJcblxyXG5cdGgyIHtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMS4yNTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRmb250LXNpemU6IDMycHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoMyB7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuMjU7XHJcblx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDE2LCAkdnctbW9iaWxlKTtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogcHgtdG8tdnctem9vbSgxMiwgJHZ3LWRlc2t0b3ApO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudF9fY29sdW1ucyB7XHJcblx0Z3JpZC1jb2x1bW46IDEgLyAxMztcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdGdyaWQtY29sdW1uOiAxIC8gMTM7XHJcblx0XHRtYXgtd2lkdGg6IDUwMHB4O1xyXG5cdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdGdyaWQtY29sdW1uOiAyIC8gMTI7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdGdyaWQtY29sdW1uOiA0IC8gMTA7XHJcblx0fVxyXG5cclxuXHQuYnRuIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfX2JhY2sge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0Z3JpZC1jb2x1bW46IDEgLyAxMztcclxuXHRtYXJnaW4tYm90dG9tOiAzMnB4O1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRjb2xvcjogJGNvbG9yRGFya0JsdWU7XHJcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDI0cHg7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudF9fb2NjdXBhdGlvbi1yZXN1bHRzIHtcclxuXHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDMyLCAkdnctbW9iaWxlKTtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oMzIsICR2dy10YWJsZXQpO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDMyLCAkdnctZGVza3RvcCk7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDMycHg7XHJcblx0fVxyXG5cclxuXHRsaSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDgsICR2dy1tb2JpbGUpO1xyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oOCwgJHZ3LXRhYmxldCk7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oOCwgJHZ3LWRlc2t0b3ApO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0JjpsYXN0LW9mLXR5cGUge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiBweC10by12dy16b29tKDMyLCAkdnctbW9iaWxlKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcHgtdG8tdnctem9vbSgzMiwgJHZ3LXRhYmxldCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHB4LXRvLXZ3LXpvb20oMzIsICR2dy1kZXNrdG9wKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMzJweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfX29jY3VwYXRpb24tcmVzdWx0IHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRwYWRkaW5nOiAxNnB4O1xyXG5cdGZvbnQtc2l6ZTogMTdweDtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICNFOUU5RTk7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdGZvbnQtc2l6ZTogMTdweDtcclxuXHRcdHBhZGRpbmc6IDE2cHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdGZvbnQtc2l6ZTogMTdweDtcclxuXHRcdHBhZGRpbmc6IDE2cHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdGZvbnQtc2l6ZTogMTdweDtcclxuXHRcdHBhZGRpbmc6IDE2cHg7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvckRhcmtCbHVlO1xyXG5cdFx0Y29sb3I6ICRjb2xvcldoaXRlO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ35AL2ltZy9jaGV2cm9uLXdoaXRlLnN2ZycpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogNTAlO1xyXG5cdFx0bWFyZ2luLXRvcDogLThweDtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0cmlnaHQ6IDE2cHg7XHJcblx0XHR3aWR0aDogMTFweDtcclxuXHRcdGhlaWdodDogMThweDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnfkAvaW1nL2NoZXZyb24tZGFya2JsdWUuc3ZnJyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0cmlnaHQ6IDE2cHg7XHJcblx0XHRcdHdpZHRoOiAxMXB4O1xyXG5cdFx0XHRoZWlnaHQ6IDE4cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdHJpZ2h0OiAxNnB4O1xyXG5cdFx0XHR3aWR0aDogMTFweDtcclxuXHRcdFx0aGVpZ2h0OiAxOHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRyaWdodDogMTZweDtcclxuXHRcdFx0d2lkdGg6IDExcHg7XHJcblx0XHRcdGhlaWdodDogMThweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50X19vY2N1cGF0aW9uLXJlc3VsdC0tYWN0aXZlIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JEYXJrQmx1ZTtcclxuXHRjb2xvcjogJGNvbG9yV2hpdGU7XHJcblx0dXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ35AL2ltZy9jaGV2cm9uLXdoaXRlLnN2ZycpO1xyXG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdG1hcmdpbi10b3A6IC0yNHB4O1xyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IC0yNHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAtMjJweDtcclxuXHRcdH1cclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogLTI2cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudF9fb2NjdXBhdGlvbi1yZXN1bHQtLXJlbW92ZSB7XHJcblx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHNldHRpbmcpIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiAkc2V0dGluZztcblx0LW1vei1hcHBlYXJhbmNlOiAkc2V0dGluZztcblx0YXBwZWFyYW5jZTogJHNldHRpbmc7XG59XG5cbkBtaXhpbiBjb3Zlck1lZGlhIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHRtaW4td2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDEwMCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXHRvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuQG1peGluIGNoZWNrbWFya0xpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG5cdGxpIHtcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cblx0XHRiIHtcblx0XHRcdGNvbG9yOiAkY29sb3JEYXJrQmx1ZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdGhlaWdodDogMTRweDtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIn5AL2ltZy9jaGVja21hcmstZGFya2JsdWUuc3ZnXCIpO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuXHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0aGVpZ2h0OiAxNHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcblx0XHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRcdGhlaWdodDogMTRweDtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XG5cdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE0cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIuZmluYWwtb3ZlcnZpZXcge1xyXG4gIHBhZGRpbmc6IDQwcHggMTZweCAxNnB4IDE2cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U5RTlFOTtcclxuICBib3gtc2hhZG93OiAwIDlweCA0MHB4IHJnYmEoMjExLCAyMTEsIDIxMSwgMC41KTtcclxuICBtYXJnaW4tYm90dG9tOiA1NnB4O1xyXG5cclxuICBociB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIGJsYWNrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIEBpbmNsdWRlIGNoZWNrbWFya0xpc3Q7XHJcbiAgfVxyXG59XHJcblxyXG4uZmluYWwtb3ZlcnZpZXdfX2hlYWRpbmcge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4uZmluYWwtb3ZlcnZpZXdfX2xpbmtzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6ICRjb2xvckJsdWU7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZmluYWwtb3ZlcnZpZXdfX2luc3VyYW5jZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBwYWRkaW5nLXRvcDogMTZweDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cclxuICBoNCB7XHJcbiAgICBmb250LXNpemU6IDE3cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIH1cclxuXHJcbiAgc3BhbiB7XHJcbiAgICBjb2xvcjogJGNvbG9yTWF0dEJsYWNrO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxMjUlXHJcbiAgfVxyXG59IiwiLm92ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIHotaW5kZXg6IDEwMDtcclxufVxyXG5cclxuLm92ZXJsYXktLWJhY2tncm91bmQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yTWF0dEJsYWNrO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxuLm92ZXJsYXlfX2NvbnRlbnQge1xyXG4gIHdpZHRoOiA5MCU7XHJcbiAgcGFkZGluZzogMjRweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JXaGl0ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xyXG4gIGJveC1zaGFkb3c6IDAgOXB4IDQwcHggIzIyMjIyMjtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgei1pbmRleDogMTEwO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG4gICAgd2lkdGg6IDYwMHB4O1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG4gICAgd2lkdGg6IDYwMHB4O1xyXG4gIH1cclxuXHJcbiAgPiBpbWcge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxuICB9XHJcbn1cclxuXHJcbi5vdmVybGF5X19jb250ZW50LWJsb2NrIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xyXG4gIGJveC1zaGFkb3c6IDAgOXB4IDQwcHggcmdiYSgyMTEsIDIxMSwgMjExLCAwLjUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gIHotaW5kZXg6IDEwO1xyXG5cclxuICB1bCB7XHJcbiAgICBAaW5jbHVkZSBjaGVja21hcmtMaXN0O1xyXG4gIH1cclxuXHJcbiAgdWwuY3Jvc3NlcyB7XHJcbiAgICBsaSB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ+QC9pbWcvaWNvbi1jbG9zZS1kYXJrYmx1ZS5zdmdcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgdHIge1xyXG5cclxuICAgIHRkOmxhc3Qtb2YtdHlwZSB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm92ZXJsYXlfX2N0YSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG5cclxuICAuYnRuIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm92ZXJsYXlfX2Nsb3NlIHtcclxuICBjb2xvcjogJGNvbG9yRGFya0JsdWU7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ+QC9pbWcvaWNvbi1jbG9zZS1kYXJrYmx1ZS5zdmdcIik7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuIiwiLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvciB7XHJcblx0cGFkZGluZzogMTZweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xyXG5cdGJveC1zaGFkb3c6IDAgOXB4IDQwcHggcmdiYSgyMTEsIDIxMSwgMjExLCAwLjUpO1xyXG5cclxuXHQmLmxvYWRpbmcge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRvcGFjaXR5OiAwLjY1O1xyXG5cdH1cclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fdGl0bGUge1xyXG5cdG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcclxuXHJcblxyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0bWFyZ2luLWJvdHRvbTogMjRweDtcclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XHJcblx0fVxyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGUge1xyXG5cdGNvbG9yOiAkY29sb3JNYXR0QmxhY2s7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlIHtcclxuXHRjb2xvcjogJGNvbG9yTWF0dEJsYWNrO1xyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19tb250bHktcHJpY2Uge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0Y29sb3I6ICRjb2xvckRhcmtCbHVlO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGZvbnQtc2l6ZTogNDBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogNjRweDtcclxuXHRcdH1cclxuXHJcblx0XHRzdWIge1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yQmxhY2s7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGkge1xyXG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdFx0Y29sb3I6ICRjb2xvckdyYXk7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcclxuXHR9XHJcbn1cclxuXHJcbi5vdmVydmlldy1jb25maWd1cmF0b3JfX3BheW1lbnRzIHtcclxuXHRtYXJnaW4tYm90dG9tOiA0NnB4O1xyXG5cclxuXHRoNCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XHJcblx0fVxyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19wYXltZW50cy1pdGVtcyB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdHBhZGRpbmc6IDRweCAxNnB4IDE2cHggMTZweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjRTlFOUU5O1xyXG5cdGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19wYXltZW50cy1pdGVtIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDNEM0QzO1xyXG5cdHBhZGRpbmctdG9wOiAxMnB4O1xyXG5cdHBhZGRpbmctYm90dG9tOiAxMnB4O1xyXG5cclxuXHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS10aXRsZSwgLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS12YWx1ZSwgLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS1kaXNjb3VudCB7XHJcblx0ZmxleC1iYXNpczogMzMuMzMlO1xyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19wYXltZW50cy1pdGVtLXZhbHVlIHtcclxuXHRjb2xvcjogJGNvbG9yRGFya0JsdWU7XHJcblx0Zm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS1kaXNjb3VudCB7XHJcblx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogNHB4IDZweDtcclxuXHRcdGNvbG9yOiAkY29sb3JXaGl0ZTtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvclN1Y2NlcztcclxuXHRcdGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0cGFkZGluZzogNHB4IDEycHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ub3ZlcnZpZXctY29uZmlndXJhdG9yX19zdW1tYXJ5IHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcblx0aDIge1xyXG5cclxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGgyLCBoMyB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHR1bCB7XHJcblx0XHRAaW5jbHVkZSBjaGVja21hcmtMaXN0O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHR9XHJcblxyXG5cdC5idG4ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTZweDtcclxuXHR9XHJcbn1cclxuXHJcbi5vdmVydmlldy1jb25maWd1cmF0b3JfX3Byb2NlZWQge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRwYWRkaW5nOiAxNnB4O1xyXG5cdGJveC1zaGFkb3c6IDAgOXB4IDQwcHggcmdiKDIxMSAyMTEgMjExIC8gNTAlKTtcclxuXHRtYXJnaW4tbGVmdDogLTE2cHg7XHJcblx0bWFyZ2luLXJpZ2h0OiAtMTZweDtcclxuXHRtYXJnaW4tYm90dG9tOiAtMTZweDtcclxuXHJcblx0aHIge1xyXG5cdFx0Ym9yZGVyLXRvcDogMXB4IGRhc2hlZCBibGFjaztcclxuXHRcdG1hcmdpbi1ib3R0b206IDE2cHg7XHJcblx0fVxyXG5cclxuXHQuYnRuIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0fVxyXG5cclxuXHR1bCB7XHJcblx0XHRAaW5jbHVkZSBjaGVja21hcmtMaXN0O1xyXG5cdH1cclxufVxyXG5cclxuLm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcHJvY2VlZC1oZWFkZXIge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcclxuXHJcblx0aDIge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0Y29sb3I6ICRjb2xvckRhcmtCbHVlO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGZvbnQtc2l6ZTogMzJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxMjUlO1xyXG5cdH1cclxufVxyXG4iLCIuc2lkZWJhciB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHR3aWR0aDogcHgtdG8tdnctem9vbSgzNjAsICR2dy1tb2JpbGUpO1xyXG5cdGhlaWdodDogMTAwdmg7XHJcblx0cGFkZGluZzogcHgtdG8tdnctem9vbSgyNCwgJHZ3LW1vYmlsZSk7XHJcblx0YmFja2dyb3VuZDogJGhlYWRlckNvbG9yO1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGhlaWdodDogMTAwdmg7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0d2lkdGg6IDMyMHB4O1xyXG5cdFx0cGFkZGluZzogMjRweDtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG5cdFx0d2lkdGg6IDM2MHB4O1xyXG5cdFx0cGFkZGluZzogcHgtdG8tdnctem9vbSgyNCwgJHZ3LWRlc2t0b3ApO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHR3aWR0aDogMzYwcHg7XHJcblx0XHRwYWRkaW5nOiAyNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfX2xvZ28ge1xyXG5cdHdpZHRoOiAxMjhweDtcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdG1hcmdpbjogMCBhdXRvO1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0d2lkdGg6IDEyOHB4O1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHR3aWR0aDogcHgtdG8tdnctem9vbSgxMjgsICR2dy1kZXNrdG9wKTtcclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0d2lkdGg6IDEyOHB4O1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfX2xpc3Qge1xyXG5cdGNvbG9yOiAkdGV4dENvbG9yO1xyXG5cclxuXHRoMiB7XHJcblx0XHRjb2xvcjogJHRleHRDb2xvcjtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjRweDtcclxuXHRcdH1cclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1bCB7XHJcblx0XHRsaXN0LXN0eWxlOiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfX2xpc3QtaXRlbSB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0Zm9udC1zaXplOiAxN3B4O1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblx0bWFyZ2luLWJvdHRvbTogMjRweDtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHdpZGVzY3JlZW4pIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XHJcblx0fVxyXG5cclxuXHRzcGFuIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHR3aWR0aDogMjRweDtcclxuXHRcdGhlaWdodDogMjRweDtcclxuXHRcdGNvbG9yOiAkY29sb3JEYXJrQmx1ZTtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvckxpZ2h0Qmx1ZTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvckRhcmtCbHVlO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiBweC10by12dy16b29tKDEyLCAkdnctbW9iaWxlKTtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEycHg7IC8qIHNtYWxsIGNsZWFudXAgZm9yIGNvbnNpc3RlbmN5ICovXHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogcHgtdG8tdnctem9vbSgxMiwgJHZ3LWRlc2t0b3ApO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9fbGlzdC1pdGVtLS1jdXJyZW50IHtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cclxuXHRzcGFuIHtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRjb2xvcjogJGNvbG9yV2hpdGU7XHJcblx0XHRiYWNrZ3JvdW5kOiAkY29sb3JEYXJrQmx1ZTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcldoaXRlO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfX2xpc3QtaXRlbS0tY29tcGxldGUge1xyXG5cdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0Y29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0YmFja2dyb3VuZDogJGNvbG9yRGFya0JsdWU7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3JXaGl0ZTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogNjIlO1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJ+QC9pbWcvY2hlY2ttYXJrLXdoaXRlLnN2Z1wiKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX19jb250YWN0IHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0YmFja2dyb3VuZDogI0ZGRkZGRjtcclxuXHRib3gtc2hhZG93OiAwIDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuXHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX19jb250YWN0LWZpZ3VyZSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1iYXNpczogcHgtdG8tdnctem9vbSgxMTQsICR2dy1tb2JpbGUpO1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0ZmxleC1iYXNpczogMTE0cHg7IC8qIGFsaWduIHdpdGggZml4ZWQgdGFibGV0IHNpemluZyAqL1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRmbGV4LWJhc2lzOiBweC10by12dy16b29tKDExNCwgJHZ3LWRlc2t0b3ApO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRmbGV4LWJhc2lzOiAxMTRweDtcclxuXHR9XHJcblxyXG5cdGltZyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX19jb250YWN0LXRleHQge1xyXG5cdGZsZXgtYmFzaXM6IGNhbGMoMTAwJSAtIDExNHB4KTsgLyogYWxpZ24gd2l0aCBjb250YWN0LWZpZ3VyZSAqL1xyXG5cdGFsaWduLXNlbGY6IGNlbnRlcjtcclxuXHRwYWRkaW5nOiAxMHB4IDA7XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRmbGV4LWJhc2lzOiBjYWxjKDEwMCUgLSAxMTRweCk7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdGZsZXgtYmFzaXM6IGNhbGMoMTAwJSAtIHB4LXRvLXZ3LXpvb20oMTE0LCAkdnctZGVza3RvcCkpO1xyXG5cdFx0cGFkZGluZzogMTBweCAwO1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRmbGV4LWJhc2lzOiBjYWxjKDEwMCUgLSAxMTRweCk7XHJcblx0XHRwYWRkaW5nOiAxNHB4IDEycHggMTRweCAwO1xyXG5cdH1cclxuXHJcblx0aDIge1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xyXG5cdH1cclxuXHJcblx0aDMge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGZvbnQtc2l6ZTogMTdweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAycHg7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxN3B4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG5cdFx0XHRmb250LXNpemU6IDE3cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTdweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdGEge1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRcdGNvbG9yOiAjMUExNzFCO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cCB7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogcHgtdG8tdnctem9vbSg0LCAkdnctbW9iaWxlKTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogcHgtdG8tdnctem9vbSg0LCAkdnctZGVza3RvcCk7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0PiBhIHtcclxuXHRcdGNvbG9yOiAkY29sb3JEYXJrQmx1ZTtcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMS4yO1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQod2lkZXNjcmVlbikge1xyXG5cdFx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0d2lkdGg6IDdweDtcclxuXHRcdFx0aGVpZ2h0OiAxMnB4O1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTJweDsgLyogYWxpZ24gd2l0aCBmaXhlZCB0YWJsZXQgKi9cclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwifkAvaW1nL2NoZXZyb24tZGFya2JsdWUuc3ZnXCIpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdFx0XHR3aWR0aDogN3B4O1xyXG5cdFx0XHRcdGhlaWdodDogMTJweDtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMTJweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHRcdFx0d2lkdGg6IDdweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDEycHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHB4LXRvLXZ3LXpvb20oMTIsICR2dy1kZXNrdG9wKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh3aWRlc2NyZWVuKSB7XHJcblx0XHRcdFx0d2lkdGg6IDdweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDEycHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLnRvb2x0aXAge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi50b29sdGlwdGV4dCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMjJweDtcclxuICBsZWZ0OiA1MCU7XHJcbiAgbWFyZ2luLWxlZnQ6IC0xNTBweDtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0OC4zOWRlZywgIzAwNTE5MSAtMS43NSUsICMwMDg5QzYgOTkuOTklLCAjMDA4N0M0IDEwMCUpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgcGFkZGluZzogOHB4IDhweDtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4udG9vbHRpcDpob3ZlciAudG9vbHRpcHRleHQge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi50b29sdGlwIC50b29sdGlwdGV4dDo6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTEwcHg7XHJcbiAgbGVmdDogNTAlO1xyXG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gIGJvcmRlci13aWR0aDogNXB4O1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MTkxIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xyXG59XHJcblxyXG4udG9vbHRpcC0taWNvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMnB4O1xyXG4gIGhlaWdodDogMTJweDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ35AL2ltZy9pY29uLXRvb2x0aXAuc3ZnJyk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LCBtYXgpIHtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4udG9vbHRpcC0tcmVsYXRpdmUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnRvb2x0aXAtLXJpZ2h0IHtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQsIG1heCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtNXB4O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcHRleHQge1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LCBtYXgpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xODBweDtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LCBtYXgpIHtcclxuICAgICAgICBsZWZ0OiA5MCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnRvcGJhciB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHotaW5kZXg6IDEwO1xyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbi50b3BiYXJfX2JnIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiA0MnB4O1xyXG5cdGJhY2tncm91bmQ6ICRoZWFkZXJDb2xvcjtcclxufVxyXG5cclxuLnRvcGJhcl9fbG9nbyB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHdpZHRoOiA3NHB4O1xyXG5cdG1hcmdpbi10b3A6IDEycHg7XHJcbn1cclxuIiwiLm1vZGFsIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxMDtcblxuXHQmLmVudGVyaW5nIHtcblx0XHRhbmltYXRpb246IG1vZGFsLWVudGVyIDMwMG1zIGVhc2Utb3V0O1xuXHR9XG5cblx0Ji5sZWF2aW5nIHtcblx0XHRhbmltYXRpb246IG1vZGFsLWV4aXQgMjAwbXMgZWFzZS1pbjtcblx0fVxufVxuXG4ubW9kYWwtYmFja2Ryb3Age1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGluc2V0OiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwNywgMTE0LCAxMjgsIDAuNzUpO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zO1xufVxuXG4ubW9kYWwtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRpbnNldDogMDtcblx0ei1pbmRleDogMTA7XG5cdHdpZHRoOiAxMDB2dztcblx0aGVpZ2h0OiAxMDB2aDtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tb2RhbC13cmFwcGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0bWluLWhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nOiAxcmVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3JkZXItcmFkaXVzOiAwLjVyZW07XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3gtc2hhZG93OiAwIDIwcHggMjVweCAtNXB4IHJnYigwIDAgMCAvIDAuMSk7XG5cdHRyYW5zaXRpb246IGFsbCAzMDBtcztcblx0bWFyZ2luOiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNHJlbSk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cblx0QG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXRhYmxldCkge1xuXHRcdG1hcmdpbjogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDUwMHB4O1xuXHR9XG59XG5cblxuLm1vZGFsLWJvZHkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0cGFkZGluZzogMXJlbSAxcmVtIDFyZW07XG5cblx0QG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cdFx0cGFkZGluZzogMS41cmVtIDEuNXJlbSAxcmVtO1xuXHR9XG59XG5cbi5tb2RhbC1mbGV4LWNvbnRhaW5lciB7XG5cdEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdH1cbn1cblxuLm1vZGFsLXRpdGxlIHtcblx0Zm9udC1zaXplOiAxcmVtO1xuXHRsaW5lLWhlaWdodDogMS41cmVtO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRjb2xvcjogcmdiKDE3IDI0IDM5KTtcbn1cblxuLy8gQW5pbWF0aW9uIGtleWZyYW1lc1xuQGtleWZyYW1lcyBtb2RhbC1lbnRlciB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFyZW0pIHNjYWxlKDAuOTUpO1xuXHR9XG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsLWV4aXQge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcblx0fVxuXHR0byB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXJlbSkgc2NhbGUoMC45NSk7XG5cdH1cbn1cbiIsIjx0ZW1wbGF0ZT5cclxuICA8c2VjdGlvbiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fYmFja1wiPlxyXG4gICAgICAgIDxhIGhyZWY9XCIjXCIgQGNsaWNrLnByZXZlbnQ9XCJwcmV2aW91c1N0ZXBcIj5cclxuICAgICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjQxIDE2LjA5TDEwLjgzIDExLjVMMTUuNDEgNi45MUwxNCA1LjVMOCAxMS41TDE0IDE3LjVMMTUuNDEgMTYuMDlaXCIgZmlsbD1cIiMwMDUxOTFcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIFZvcmlnZVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19jb2x1bW5zXCI+XHJcbiAgICAgICAgPCEtLSBUaGlzIGxvYWRlciB3aWxsIGRpc3BsYXkgd2hlbiBieXBhc3NpbmcgdGhlIG1vZGFsIC0tPlxyXG4gICAgICAgIDxkaXYgdi1pZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiPjwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IHYtZWxzZT5cclxuICAgICAgICAgIDxoMj5XaWwgamUgZGF0IGplIG1hYW5kYmVkcmFnIGVsayBqYWFyIHN0aWpndCBkb29yIGluZGV4YXRpZT88L2gyPlxyXG4gICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgIEplIG1hYW5kbGFzdGVuIHdvcmRlbiBlbGsgamFhciBpZXRzIGhvZ2VyIGRvb3IgaW5mbGF0aWUuIEFscyBqZSBraWVzdCB2b29yIGluZGV4YXRpZSwgc3Rpamd0IGplIHZlcnpla2VyZCBiZWRyYWdcclxuICAgICAgICAgICAgZW4gamUgdWl0a2VyaW5nIG1ldCAyJSBwZXIgamFhciBtZWUuIE9vayBqZSBwcmVtaWUgc3Rpamd0IGRhbiBtZXQgMiUuXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8Rm9ybUtpdCA6YWN0aW9ucz1cImZhbHNlXCIgOmluY29tcGxldGUtbWVzc2FnZT1mYWxzZSB0eXBlPVwiZm9ybVwiIEBzdWJtaXQ9XCJvcGVuTW9kYWxcIj5cclxuICAgICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmluZGV4YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgOm9wdGlvbnM9XCJbXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6IGZhbHNlLCBsYWJlbDogJ05lZSwgZGF0IGhvZWZ0IG5pZXQnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6IHRydWUsIGxhYmVsOiAnSmEsIGdyYWFnJyB9LFxyXG4gICAgICAgICAgICAgICAgICBdXCJcclxuICAgICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnV2lsIGplIGRhdCB3ZSBlbGsgamFhciBpbmRleGVyZW4/JyxcclxuICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIkluZGV4ZXJlblwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaW5kZXhhdGlvblwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cIlZvcmlnZSBzdGFwXCIgY2xhc3M9XCJidG4gYnRuLS1iYWNrXCIgQGNsaWNrLnByZXZlbnQ9XCJwcmV2aW91c1N0ZXBcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHNyYz1cIkAvaW1nL2xlZnQtYXJyb3cuc3ZnXCIgYWx0PVwiVm9yaWdlIHN0YXBcIj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD1cIkJla2lqayBwcmVtaWVcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvRm9ybUtpdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxkaXYgOmNsYXNzPVwieydoaWRkZW4nOiAhZGlzcGxheUZvcm19XCIgYXJpYS1sYWJlbGxlZGJ5PVwibW9kYWwtZm9ybVwiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgY2xhc3M9XCJtb2RhbFwiIHJvbGU9XCJkaWFsb2dcIj5cclxuICAgIDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcFwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lciBjdXJzb3ItcG9pbnRlclwiIEBjbGljaz1cImNsb3NlTW9kYWwoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50IGN1cnNvci1kZWZhdWx0XCIgQGNsaWNrPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZsZXgtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJ7J2hpZGRlbic6IGxvYWRpbmcgfHwgZXJyb3J9XCI+XHJcbiAgICAgICAgICAgICAgICA8aDE+V2lsIGplIGVlbiBvZmZlcnRlPzwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cD5XaWwgamUgam91dyBwcmVtaWUgYmVyZWtlbmluZyBiZXdhcmVuIGVuIG9udHZhbmdlbiBwZXIgZW1haWw/IERhbiBrdW4gamUgZGF0IGhpZXJvbmRlciBvcGdldmVuLjwvcD5cclxuICAgICAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICAgICAgOmFjdGlvbnM9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgIEBzdWJtaXQ9XCJuZXh0U3RlcFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnZhbGlkYXRpb24tbWVzc2FnZXM9XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnRS1tYWlsYWRyZXMgaXMgdmVycGxpY2h0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6ICdWdWwgZWVuIGdlbGRpZyBlLW1haWxhZHJlcyBpbidcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJKb3V3IGUtbWFpbGFkcmVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm5hYW1AYmVkcmlqZi5ubFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cInJlcXVpcmVkfGVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJwcml2YWN5QWNjZXB0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnZhbGlkYXRpb24tbWVzc2FnZXM9XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdGVkOiAnSmUgbW9ldCBha2tvb3JkIGdhYW4gbWV0IGhldCBwcml2YWN5YmVsZWlkIG9tIGRvb3IgdGUgZ2FhbidcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaW5uZXItY2xhc3M9XCJmb3Jta2l0LWNoZWNrYm94LW92ZXJyaWRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG91dGVyLWNsYXNzPVwiZm9ybWtpdC0tY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByaXZhY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb249XCJhY2NlcHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgI2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3Jta2l0LWxhYmVsXCI+SWsgaGViIGhldCA8YSBjbGFzcz1cImZvcm1raXQtbGlua1wiIGhyZWY9XCJodHRwczovL3d3dy50YWYubmwvYWxnZW1lZW4vcHJpdmFjeS1zdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIj5wcml2YWN5IGJlbGVpZDwvYT4gZ2VsZXplbiwgYmVncmVwZW4gZW4gZ2EgYWtrb29yZC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPC9Gb3JtS2l0PlxyXG4gICAgICAgICAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJTdHV1ciBtaWogZWVuIG9mZmVydGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkRvb3Igem9uZGVyIG9mZmVydGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLWNsYXNzPVwiZm9ybWtpdC13cmFwcGVyLXNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJza2lwU3RlcFwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm1LaXQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiIWxvYWRpbmcgJiYgZXJyb3JcIiBjbGFzcz1cImZvcm1raXQtbWVzc2FnZSBlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBlcnJvciB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHttYXBTdG9yZXN9IGZyb20gJ3BpbmlhJztcclxuaW1wb3J0IHt1c2VBcHBsaWNhdGlvblN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2FwcGxpY2F0aW9uU3RvcmUnO1xyXG5pbXBvcnQge3VzZURhdGFTdG9yZX0gZnJvbSAnQC9qcy9zdG9yZS9kYXRhU3RvcmUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdJbmRleGluZ1ZpZXcnLFxyXG4gIGRhdGEoKVxyXG4gIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZvcm06IHtcclxuICAgICAgICBpbmRleGF0aW9uOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgZGlzcGxheUZvcm06IGZhbHNlLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgZXJyb3I6IG51bGwsXHJcbiAgICAgIGVtYWlsOiAnJyxcclxuICAgICAgcHJpdmFjeUFjY2VwdGVkOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RvcmVzKHVzZUFwcGxpY2F0aW9uU3RvcmUpLFxyXG4gICAgLi4ubWFwU3RvcmVzKHVzZURhdGFTdG9yZSksXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgcHJpdmFjeUFjY2VwdGVkKG5ld1ZhbHVlKVxyXG4gICAge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJpdmFjeVBvbGljeUFjY2VwdGVkJywgbmV3VmFsdWUpO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgYXN5bmMgb3Blbk1vZGFsKClcclxuICAgIHtcclxuICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmluZGV4YXRpb24gPSB0aGlzLmZvcm0uaW5kZXhhdGlvbiA/ICdDTEFJTV9BTkRfUE9MSUNZJyA6ICdOT19JTkRFWEFUSU9OJztcclxuICAgICAgdGhpcy5lcnJvciA9IG51bGw7XHJcblxyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgICAgd2luZG93LmRhdGFMYXllci5wdXNoKHsnZXZlbnQnOiAnc3RlcDdfcHJvcG9zYWxfZW1haWwnfSk7XHJcblxyXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hhc1N1Ym1pdHRlZE9mZmVyJykgPT09ICd0cnVlJykge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUZvcm0gPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5lcnJvcikge1xyXG4gICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goe25hbWU6ICdzdGVwLTIvb3ZlcnZpZXctY29uZmlndXJhdG9yJ30pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlGb3JtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7cXVlcnk6IHtzaG93TW9kYWw6IHRydWV9fSk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgY2xvc2VNb2RhbCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtxdWVyeTogbnVsbH0pO1xyXG4gICAgICB0aGlzLmRpc3BsYXlGb3JtID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgc2F2ZURhdGEoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5hcHBsaWNhdGlvblN0b3JlLmdldEZvclJlcXVlc3QoKTtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kYXRhU3RvcmUuc2F2ZU9yVXBkYXRlQXBwbGljYXRpb24oZGF0YSk7XHJcblxyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3IgPSAnRXIgaXMgaWV0cyBtaXNnZWdhYW4sIHByb2JlZXIgaGV0IGxhdGVyIG9wbmlldXcuJztcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGFTdG9yZS5zZXRUb2tlbihyZXN1bHQuZGF0YS5pZCk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBza2lwU3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goeydldmVudCc6ICdzdGVwN19za2lwX3Byb3Bvc2FsJ30pO1xyXG5cclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2hhc1N1Ym1pdHRlZE9mZmVyJyk7XHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmVtYWlsID0gJyc7XHJcblxyXG4gICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMi9vdmVydmlldy1jb25maWd1cmF0b3InfSk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgbmV4dFN0ZXAoKVxyXG4gICAge1xyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgICAgd2luZG93LmRhdGFMYXllci5wdXNoKHtcclxuICAgICAgICAnZXZlbnQnOiAnc3RlcDZfaW5kZXgnLFxyXG4gICAgICAgICdpbmRleCc6IHRoaXMuZm9ybS5pbmRleGF0aW9uLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmRhdGFTdG9yZS5zZW5kVG9TcG90bGVyKHRoaXMuZW1haWwpO1xyXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5zdGF0dXMgPT09ICdlcnJvcicpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yID0gcmVzcG9uc2U/LmRhdGE/Lm1lc3NhZ2UgfHwgJ0VyIGlzIGlldHMgbWlzZ2VnYWFuLic7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyBkYXRhIHRvIFNwb3RsZXI6JywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuZXJyb3IgPSAnRXIgaXMgaWV0cyBtaXNnZWdhYW4uJztcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5lbWFpbCA9IHRoaXMuZW1haWw7XHJcblxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGFzU3VibWl0dGVkT2ZmZXInLCAndHJ1ZScpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJpdmFjeVBvbGljeUFjY2VwdGVkJywgJ3RydWUnKTtcclxuXHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC0yL292ZXJ2aWV3LWNvbmZpZ3VyYXRvcid9KTtcclxuICAgIH0sXHJcbiAgICBwcmV2aW91c1N0ZXAoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMS9wc3ljaG9sb2dpY2FsLWNvbXBsYWludHMnfSk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbW91bnRlZCgpXHJcbiAge1xyXG4gICAgdGhpcy5mb3JtLmluZGV4YXRpb24gPSB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5kZXhhdGlvbiA9PT0gJ0NMQUlNX0FORF9QT0xJQ1knO1xyXG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmVtYWlsKSB7XHJcbiAgICAgIHRoaXMuZW1haWwgPSB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5lbWFpbDtcclxuICAgIH1cclxuICAgIHRoaXMucHJpdmFjeUFjY2VwdGVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ByaXZhY3lQb2xpY3lBY2NlcHRlZCcpID09PSAndHJ1ZSc7XHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG4uZXJyb3ItbWVzc2FnZSB7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbjpkZWVwKC5tb2RhbC1ib2R5IC5mb3Jta2l0LWZvcm0pIHtcclxuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46ZGVlcCguZm9ybWtpdC1jaGVja2JveC1vdmVycmlkZSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjpkZWVwKC5mb3Jta2l0LXdyYXBwZXItc2Vjb25kYXJ5IC5mb3Jta2l0LWlucHV0KSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLWJsdWUpO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWRhcmstYmx1ZSk7XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWQgY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19iYWNrXCI+XHJcbiAgICAgICAgPGEgaHJlZj1cIiNcIiBAY2xpY2sucHJldmVudD1cInByZXZpb3VzU3RlcFwiPlxyXG4gICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuNDEgMTYuMDlMMTAuODMgMTEuNUwxNS40MSA2LjkxTDE0IDUuNUw4IDExLjVMMTQgMTcuNUwxNS40MSAxNi4wOVpcIiBmaWxsPVwiIzAwNTE5MVwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgVm9yaWdlXHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2NvbHVtbnNcIj5cclxuICAgICAgICA8aDE+RGl0IGlzIGplIHByZW1pZTwvaDE+XHJcbiAgICAgICAgPHAgdi1pZj1cImVycm9yXCIgY2xhc3M9XCJmb3Jta2l0LW1lc3NhZ2UgZXJyb3ItbWVzc2FnZVwiIHYtaHRtbD1cInRoaXMuZXJyb3JNZXNzYWdlXCI+PC9wPlxyXG5cclxuICAgICAgICA8IS0tIFNBVkUgRVJST1IgTUVTU0FHRSAtLT5cclxuICAgICAgICA8ZGl2IHYtaWY9XCJzYXZlRXJyb3JcIiBjbGFzcz1cImZvcm1raXQtbWVzc2FnZSBlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICB7eyBzYXZlRXJyb3JNZXNzYWdlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwIHYtaWY9XCIhZXJyb3JcIj5cclxuICAgICAgICAgIERhbmsgamUgdm9vciBoZXQgZG9vcmdldmVuIHZhbiBqZSB3ZW5zZW4uIFdpaiBoZWJiZW4gb3AgYmFzaXMgdmFuIGRlemUgd2Vuc2VuIGplIEFPViBzYW1lbmdlc3RlbGQuXHJcbiAgICAgICAgICBIaWVyb25kZXIgemllIGplIGplIHByZW1pZS4gSmUga3VudCBqZSB3ZW5zZW4gbm9nIGFhbnBhc3Nlbi4gSmUgemlldCBkYW4gZGlyZWN0IHdhdCBqZSBuaWV1d2UgcHJlbWllIHdvcmR0LlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2IHYtaWY9XCIhZXJyb3JcIiA6Y2xhc3M9XCJ7J2xvYWRpbmcnIDogbG9hZGluZ31cIiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvclwiPlxyXG4gICAgICAgICAgPGgzIGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX190aXRsZVwiPkpvdXcgQU9WPC9oMz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+SmUgYmVyb2VwPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvblN0b3JlLmpvYi5vY2N1cGF0aW9uLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS10aXRsZVwiPkplIGxlZWZ0aWpkPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBmb3JtYXRUb0FnZShhcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuZGF0ZU9mQmlydGgpIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5WZXJ6ZWtlcmQgbWFhbmRiZWRyYWc8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIOKCrHt7IGFwcGxpY2F0aW9uU3RvcmUuc3VtQXNzdXJlZCB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+VWl0a2VyaW5nc2R1dXI8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBZRUFSU18yOiAnMiBqYWFyJyxcclxuICAgICAgICAgICAgICAgICAgICBZRUFSU181OiAnNSBqYWFyJyxcclxuICAgICAgICAgICAgICAgICAgICBJTlNVUkFOQ0VfRU5EX0RBVEU6ICd0b3QgZWluZGRhdHVtJyxcclxuICAgICAgICAgICAgICAgICAgfVthcHBsaWNhdGlvblN0b3JlLmNsYWltRHVyYXRpb25EaXNhYmlsaXR5XVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS10aXRsZVwiPkVpZ2VuIHJpc2ljb3BlcmlvZGU8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBEQVlTXzMwOiAnMzAgZGFnZW4nLFxyXG4gICAgICAgICAgICAgICAgICAgIERBWVNfOTA6ICc5MCBkYWdlbicsXHJcbiAgICAgICAgICAgICAgICAgICAgREFZU18xODA6ICcxODAgZGFnZW4nLFxyXG4gICAgICAgICAgICAgICAgICAgIERBWVNfMzY1OiAnMSBqYWFyJyxcclxuICAgICAgICAgICAgICAgICAgICBEQVlTXzczMDogJzIgamFhcicsXHJcbiAgICAgICAgICAgICAgICAgIH1bYXBwbGljYXRpb25TdG9yZS53YWl0aW5nUGVyaW9kXVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS10aXRsZVwiPlBzeWNoaXNjaGUga2xhY2h0ZW48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uU3RvcmUubWVudGFsSWxsbmVzc0luY2x1ZGVkID8gJ01lZXZlcnpla2VyZCcgOiAnTmlldCBtZWV2ZXJ6ZWtlcmQnIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5JbmRleGVyaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvblN0b3JlLmluZGV4YXRpb24gPT09ICdDTEFJTV9BTkRfUE9MSUNZJyA/ICdUb2VnZXBhc3QnIDogJ05pZXQgdG9lZ2VwYXN0JyB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+VWl0a2VyaW5nc2dyZW5zOjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS12YWx1ZVwiPjI1JTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+QmVvb3JkZWxpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uU3RvcmUuam9iLm93bkxhYm91ciA9PT0gJ1lFUycgPyAnRWlnZW4gYmVyb2VwJyA6ICdQYXNzZW5kIGJlcm9lcCcgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX21vbnRseS1wcmljZVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICB7eyBmb3JtYXRDdXJyZW5jeShwcmVtaXVtPy5wcmVtaXVtUHJvZ3Jlc3Npb24/LlswXT8uYW1vdW50LCBmYWxzZSkgfX08c3ViPi9tbmQ8L3N1Yj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aT5cclxuICAgICAgICAgICAgICBEaXQgaXMgZGUgaW5kaWNhdGlldmUgcHJlbWllIGluIGplIGVlcnN0ZSBqYWFyLCBpbmNsdXNpZWYgMjAlIGtvcnRpbmdcclxuICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19wYXltZW50c1wiPlxyXG4gICAgICAgICAgICA8aDQ+SmUgbWFhbmRlbGlqa3NlIHByZW1pZSBpcyBwZXIgamFhcjwvaDQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX3BheW1lbnRzLWl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cIihwcmVtaXVtWWVhciwgaW5kZXgpIGluIHByZW1pdW0/LnByZW1pdW1Qcm9ncmVzc2lvbj8uc2xpY2UoMCxzaG93QWxsID8gcHJlbWl1bT8ucHJlbWl1bVByb2dyZXNzaW9uPy5sZW5ndGggOiAzKVwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS10aXRsZVwiPkphYXIge3sgaW5kZXggKyAxIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19wYXltZW50cy1pdGVtLXZhbHVlXCI+4oKse3sgZm9ybWF0Q3VycmVuY3kocHJlbWl1bVllYXIuYW1vdW50KSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcGF5bWVudHMtaXRlbS1kaXNjb3VudFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cImluZGV4ID09PSAwXCI+MjAgJSBrb3J0aW5nPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdi1pZj1cIiFzaG93QWxsXCIgY2xhc3M9XCJidG4gYnRuLS1naG9zdCBidG4tLWJsdWVcIiBAY2xpY2s9XCJzaG93QWxsID0gdHJ1ZVwiPlRvb24gYWxsZXM8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHYtaWY9XCJzaG93QWxsXCIgY2xhc3M9XCJidG4gYnRuLS1naG9zdCBidG4tLWJsdWVcIiBAY2xpY2s9XCJzaG93QWxsID0gZmFsc2VcIj5WZXJiZXJnPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5jbGFpbUR1cmF0aW9uRGlzYWJpbGl0eVwiXHJcbiAgICAgICAgICAgICAgOm9wdGlvbnM9XCJbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnWUVBUlNfMicsIGxhYmVsOiAnMiBqYWFyJyB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ1lFQVJTXzUnLCBsYWJlbDogJzUgamFhcicgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdJTlNVUkFOQ0VfRU5EX0RBVEUnLCBsYWJlbDogYFVpdGtlcmluZyB0b3QgamUgJHthcHBsaWNhdGlvblN0b3JlPy5qb2I/Lm1heEVuZEFnZUZpdHRpbmdMYWJvdXJ9c3RlYCB9LFxyXG4gICAgICAgICAgXVwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJKZSBnZWtvemVuIHVpdGtlcmluZ3NkdXVyXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhaW1EdXJhdGlvbkRpc2FiaWxpdHlcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic2VsZWN0XCJcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJjYWxjdWxhdGVQcmVtaXVtQW5kQ2xlYXJRdW90ZVN0YXR1c1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS53YWl0aW5nUGVyaW9kXCJcclxuICAgICAgICAgICAgICA6b3B0aW9ucz1cIltcclxuICAgICAgICAgIHsgdmFsdWU6ICdEQVlTXzMwJywgbGFiZWw6ICczMCBkYWdlbicgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdEQVlTXzkwJywgbGFiZWw6ICc5MCBkYWdlbicgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdEQVlTXzE4MCcsIGxhYmVsOiAnMTgwIGRhZ2VuJyB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ0RBWVNfMzY1JywgbGFiZWw6ICcxIGphYXInIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnREFZU183MzAnLCBsYWJlbDogJzIgamFhcicgfSxcclxuICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiSmUgZ2Vrb3plbiBlaWdlbiByaXNpY29wZXJpb2RlXCJcclxuICAgICAgICAgICAgICBuYW1lPVwid2FpdGluZ1BlcmlvZFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cImNhbGN1bGF0ZVByZW1pdW1BbmRDbGVhclF1b3RlU3RhdHVzXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWtpdC1vdXRlciBmb3Jta2l0LS10b2dnbGUgZm9ybWtpdC0tbm8tbWFyZ2luXCIgZGF0YS10eXBlPVwiY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgPGZpZWxkc2V0IGlkPVwiaW5wdXRfMVwiIGNsYXNzPVwiZm9ybWtpdC1maWVsZHNldFwiPlxyXG4gICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJmb3Jta2l0LWxlZ2VuZFwiPlBlcnNvbmFsaXNlZXIgamUgZGVra2luZzwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImZvcm1raXQtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZm9ybWtpdC1vcHRpb25cIj48bGFiZWwgY2xhc3M9XCJmb3Jta2l0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1raXQtaW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwc3ljaG9sb2dpY2FsQ29tcGxhaW50cy1vcHRpb24teWVzXCIgdi1tb2RlbD1cIm1lbnRhbElsbG5lc3NDaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybWtpdC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJtZW50YWxJbGxuZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT1cImNhbGN1bGF0ZVByZW1pdW1BbmRDbGVhclF1b3RlU3RhdHVzXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmb3Jta2l0LWRlY29yYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybWtpdC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgc3JjPVwiQC9pbWcvaWNvbi1wc3ljaG9sb2dpY2FsLnN2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDQ+UHN5Y2hpc2NoZSBrbGFjaHRlbjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cD5KZSBrdW50IG1lbnRhbGUgYWFuZG9lbmluZ2VuIGFscyBlZW4gYnVybi1vdXQgdmVyemVrZXJlbi48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWtpdC1vdXRlciBmb3Jta2l0LS10b2dnbGVcIiBkYXRhLXR5cGU9XCJjaGVja2JveFwiPlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQgaWQ9XCJpbnB1dF8yXCIgY2xhc3M9XCJmb3Jta2l0LWZpZWxkc2V0XCI+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZm9ybWtpdC1vcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJmb3Jta2l0LW9wdGlvblwiPjxsYWJlbCBjbGFzcz1cImZvcm1raXQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWtpdC1pbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImluZGV4YXRpb24tb3B0aW9uLXllc1wiIHYtbW9kZWw9XCJpbmRleGF0aW9uQ2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1raXQtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5kZXhhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJjYWxjdWxhdGVQcmVtaXVtQW5kQ2xlYXJRdW90ZVN0YXR1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZm9ybWtpdC1kZWNvcmF0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm1raXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIlwiIHNyYz1cIkAvaW1nL2ljb24taW5kZXhpbmcuc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoND5JbmRleGF0aWU8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEtpZXMgamUgdm9vciBpbmRleGF0aWUsIGRhbiBzdGlqZ3QgamUgdmVyemVrZXJkZSBiZWRyYWcgZW4gdWl0a2VyaW5nIG1ldCAyJSBwZXIgamFhciBtZWUuIE9vayBqZSBwcmVtaWUgc3Rpamd0IGRhbiBtZXQgMiUuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19zdW1tYXJ5XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLS1naG9zdCBidG4tLWJsdWVcIiBAY2xpY2s9XCJvcGVuID0gdHJ1ZVwiPk1lZXIgb3ZlciBkZSBUQUYgR29lZEdlemVrZXJkIEFPVjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fcHJvY2VlZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19wcm9jZWVkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgIDxoMj5EaXQga29zdCBqb3V3IEFPVjwvaDI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+4oKse3sgZm9ybWF0Q3VycmVuY3kocHJlbWl1bT8ucHJlbWl1bVByb2dyZXNzaW9uPy5bMF0/LmFtb3VudCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcblxyXG4gICAgICAgICAgICA8IS0tICdTRU5EIFFVT1RFJyBCVVRUT05TIC0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiIWFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5lbWFpbFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tLWdob3N0XCJcclxuICAgICAgICAgICAgICAgIEBjbGljay5wcmV2ZW50PVwib3Blbk1vZGFsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi10ZXh0LWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMCA0QzIwLjUwNDYgMy45OTk4NCAyMC45OTA2IDQuMTkwNDEgMjEuMzYwNSA0LjUzMzVDMjEuNzMwNSA0Ljg3NjU5IDIxLjk1NzIgNS4zNDY4NCAyMS45OTUgNS44NUwyMiA2VjE4QzIyLjAwMDIgMTguNTA0NiAyMS44MDk2IDE4Ljk5MDYgMjEuNDY2NSAxOS4zNjA1QzIxLjEyMzQgMTkuNzMwNSAyMC42NTMyIDE5Ljk1NzIgMjAuMTUgMTkuOTk1TDIwIDIwSDRDMy40OTU0MiAyMC4wMDAyIDMuMDA5NDMgMTkuODA5NiAyLjYzOTQ1IDE5LjQ2NjVDMi4yNjk0NyAxOS4xMjM0IDIuMDQyODQgMTguNjUzMiAyLjAwNSAxOC4xNUwyIDE4VjZDMS45OTk4NCA1LjQ5NTQyIDIuMTkwNDEgNS4wMDk0MyAyLjUzMzUgNC42Mzk0NUMyLjg3NjU5IDQuMjY5NDcgMy4zNDY4NCA0LjA0Mjg0IDMuODUgNC4wMDVMNCA0SDIwWk0yMCA3LjQxNEwxMy4wNiAxNC4zNTRDMTIuNzc4NyAxNC42MzQ5IDEyLjM5NzUgMTQuNzkyNyAxMiAxNC43OTI3QzExLjYwMjUgMTQuNzkyNyAxMS4yMjEzIDE0LjYzNDkgMTAuOTQgMTQuMzU0TDQgNy40MTRWMThIMjBWNy40MTRaTTE4LjU4NiA2SDUuNDE0TDEyIDEyLjU4NkwxOC41ODYgNlpcIiBmaWxsPVwiIzAwNTE5MVwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgU3R1dXIgZGV6ZSBvZmZlcnRlXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwieyAnYnRuLS1zdWNjZXNzJzogcXVvdGVTZW50U3RhdHVzID09PSAnc3VjY2VzcycsICdidG4tLWxvYWRpbmcnOiBxdW90ZVNlbnRTdGF0dXMgPT09ICdzZW5kaW5nJyB9XCJcclxuICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cInF1b3RlU2VudFN0YXR1cyAhPT0gJ2lkbGUnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi0tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrLnByZXZlbnQ9XCJzZW5kUXVvdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cInF1b3RlU2VudFN0YXR1cyA9PT0gJ2lkbGUnXCIgY2xhc3M9XCJpY29uLXRleHQtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgd2lkdGg9XCIyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMCA0QzIwLjUwNDYgMy45OTk4NCAyMC45OTA2IDQuMTkwNDEgMjEuMzYwNSA0LjUzMzVDMjEuNzMwNSA0Ljg3NjU5IDIxLjk1NzIgNS4zNDY4NCAyMS45OTUgNS44NUwyMiA2VjE4QzIyLjAwMDIgMTguNTA0NiAyMS44MDk2IDE4Ljk5MDYgMjEuNDY2NSAxOS4zNjA1QzIxLjEyMzQgMTkuNzMwNSAyMC42NTMyIDE5Ljk1NzIgMjAuMTUgMTkuOTk1TDIwIDIwSDRDMy40OTU0MiAyMC4wMDAyIDMuMDA5NDMgMTkuODA5NiAyLjYzOTQ1IDE5LjQ2NjVDMi4yNjk0NyAxOS4xMjM0IDIuMDQyODQgMTguNjUzMiAyLjAwNSAxOC4xNUwyIDE4VjZDMS45OTk4NCA1LjQ5NTQyIDIuMTkwNDEgNS4wMDk0MyAyLjUzMzUgNC42Mzk0NUMyLjg3NjU5IDQuMjY5NDcgMy4zNDY4NCA0LjA0Mjg0IDMuODUgNC4wMDVMNCA0SDIwWk0yMCA3LjQxNEwxMy4wNiAxNC4zNTRDMTIuNzc4NyAxNC42MzQ5IDEyLjM5NzUgMTQuNzkyNyAxMiAxNC43OTI3QzExLjYwMjUgMTQuNzkyNyAxMS4yMjEzIDE0LjYzNDkgMTAuOTQgMTQuMzU0TDQgNy40MTRWMThIMjBWNy40MTRaTTE4LjU4NiA2SDUuNDE0TDEyIDEyLjU4NkwxOC41ODYgNlpcIiBmaWxsPVwiIzAwNTE5MVwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgU3R1dXIgZGV6ZSBvZmZlcnRlXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJxdW90ZVNlbnRTdGF0dXMgPT09ICdzdWNjZXNzJ1wiPuKckyBKZSBvbnR2YW5ndCBkZXplIG9mZmVydGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwicXVvdGVTZW50U3RhdHVzID09PSAnc2VuZGluZydcIiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiB2LWlmPVwicXVvdGVTZW50RXJyb3JcIiBjbGFzcz1cImZvcm1raXQtbWVzc2FnZSBlcnJvci1tZXNzYWdlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiPlxyXG4gICAgICAgICAgICAgIHt7IHF1b3RlU2VudEVycm9yIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXJvd1wiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjBweDtcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGFyaWEtbGFiZWw9XCJWb3JpZ2Ugc3RhcFwiIGNsYXNzPVwiYnRuIGJ0bi0tYmFja1wiIEBjbGljay5wcmV2ZW50PVwicHJldmlvdXNTdGVwXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiBzcmM9XCJAL2ltZy9sZWZ0LWFycm93LnN2Z1wiIGFsdD1cIlZvcmlnZSBzdGFwXCI+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gJ1BST0NFRUQnIEJVVFRPTiAtLT5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgJ2J0bi0tbG9hZGluZyc6IGlzTG9hZGluZyB9XCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2sucHJldmVudD1cIm5leHRTdGVwXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwiIWlzTG9hZGluZ1wiPkRvb3JnYWFuIG1ldCBhYW52cmFnZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXItYnV0dG9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgPGxpPjxiPjIwJSBrb3J0aW5nPC9iPiBvcCBqZSBwcmVtaWUgaW4gaGV0IGVlcnN0ZSBqYWFyPC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGI+MzAgZGFnZW4gYmVkZW5rdGlqZDwvYj4sIGplIHppdCBub2cgbmVyZ2VucyBhYW4gdmFzdDwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxiPlZlcnpla2VyZCB2YW4gaGV0IGRvb3JiZXRhbGVuPC9iPiB2YW4gamUgbWFhbmRsYXN0ZW48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8IS0tIE1PREFMIEZPUiBFTUFJTCBJTlBVVCAtLT5cclxuICA8ZGl2IDpjbGFzcz1cInsnaGlkZGVuJzogIWRpc3BsYXlGb3JtfVwiIGFyaWEtbGFiZWxsZWRieT1cIm1vZGFsLWZvcm1cIiBhcmlhLW1vZGFsPVwidHJ1ZVwiIGNsYXNzPVwibW9kYWxcIiByb2xlPVwiZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibW9kYWwtYmFja2Ryb3BcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXIgY3Vyc29yLXBvaW50ZXJcIiBAY2xpY2s9XCJjbG9zZU1vZGFsKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudCBjdXJzb3ItZGVmYXVsdFwiIEBjbGljaz1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mbGV4LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwieydoaWRkZW4nOiBtb2RhbExvYWRpbmcgfHwgbW9kYWxFcnJvcn1cIj5cclxuICAgICAgICAgICAgICAgIDxoMT5XaWwgamUgZWVuIG9mZmVydGU/PC9oMT5cclxuICAgICAgICAgICAgICAgIDxwPldpbCBqZSBqb3V3IHByZW1pZSBiZXJla2VuaW5nIGJld2FyZW4gZW4gb250dmFuZ2VuIHBlciBlbWFpbD8gRGFuIGt1biBqZSBkYXQgaGllcm9uZGVyIG9wZ2V2ZW4uPC9wPlxyXG4gICAgICAgICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICAgICAgICA6YWN0aW9ucz1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgQHN1Ym1pdD1cIm1vZGFsTmV4dFN0ZXBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ0UtbWFpbGFkcmVzIGlzIHZlcnBsaWNodCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiAnVnVsIGVlbiBnZWxkaWcgZS1tYWlsYWRyZXMgaW4nXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiSm91dyBlLW1haWxhZHJlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJuYWFtQGJlZHJpamYubmxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZHxlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwicHJpdmFjeUFjY2VwdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZDogJ0plIG1vZXQgYWtrb29yZCBnYWFuIG1ldCBoZXQgcHJpdmFjeWJlbGVpZCBvbSBkb29yIHRlIGdhYW4nXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGlubmVyLWNsYXNzPVwiZm9ybWtpdC1jaGVja2JveC1vdmVycmlkZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHJpdmFjeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBvdXRlci1jbGFzcz1cImZvcm1raXQtLWNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwiYWNjZXB0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlICNsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybWtpdC1sYWJlbFwiPklrIGhlYiBoZXQgPGEgY2xhc3M9XCJmb3Jta2l0LWxpbmtcIiBocmVmPVwiaHR0cHM6Ly93d3cudGFmLm5sL2FsZ2VtZWVuL3ByaXZhY3ktc3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCI+cHJpdmFjeSBiZWxlaWQ8L2E+IGdlbGV6ZW4sIGJlZ3JlcGVuIGVuIGdhIGFra29vcmQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybUtpdD5cclxuICAgICAgICAgICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiU3R1dXIgbWlqIGVlbiBvZmZlcnRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9Gb3JtS2l0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cIm1vZGFsTG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiIW1vZGFsTG9hZGluZyAmJiBtb2RhbEVycm9yXCIgY2xhc3M9XCJmb3Jta2l0LW1lc3NhZ2UgZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbW9kYWxFcnJvciB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8VGVsZXBvcnQgdG89XCJib2R5XCI+XHJcbiAgICA8ZGl2IHYtaWY9XCJvcGVuXCIgY2xhc3M9XCJvdmVybGF5LS1iYWNrZ3JvdW5kXCIgQGNsaWNrPVwib3BlbiA9IGZhbHNlXCI+PC9kaXY+XHJcbiAgICA8ZGl2IHYtaWY9XCJvcGVuXCIgY2xhc3M9XCJvdmVybGF5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5X19jb250ZW50XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm92ZXJsYXlfX2Nsb3NlXCIgQGNsaWNrPVwib3BlbiA9IGZhbHNlXCI+U2x1aXRlbjwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8aDI+RGUgdmVyemVrZXJpbmcgaW4gaGV0IGtvcnQ8L2gyPlxyXG4gICAgICAgIDxwPlxyXG4gICAgICAgICAgSGllcmJpaiBlZW4gc2FtZW52YXR0aW5nIHZhbiBkZSBkZWtraW5nZW4gd2FhciBqZSB1aXQga3VudCBraWV6ZW4uXHJcbiAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uX19pdGVtc1wiPlxyXG4gICAgICAgICAgICA8ZGV0YWlscyBvcGVuPlxyXG4gICAgICAgICAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGgzPlZlcnpla2VyZCBiZWRyYWc8L2gzPlxyXG4gICAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIEplIGt1bnQgZWVuIHZlcnpla2VyZCBiZWRyYWcga2llemVuIHR1c3NlbiBkZSDigqwgMTAwIGVuIOKCrCA1LjAwMC4gRGl0IGJlZHJhZyBiYXNlZXIgamUgb3AgamUgYWFudG9vbmJhcmVcclxuICAgICAgICAgICAgICAgICAgbWFhbmRlbGlqa3NlIHZhc3RlIGxhc3RlbiAocHJpdsOpIGVuIHpha2VsaWprKSArIOKCrCA3NTAuXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgV2lsIGplIG1lZXIgZGFuIOKCrCAyLjUwMCB2ZXJ6ZWtlcmVuPyBEYW4gbWFnIGRpdCBiZWRyYWcgbmlldCBob2dlciB6aWpuIGRhbiA4NSUgdmFuIGplIGdlbWlkZGVsZGUgYnJ1dG9cclxuICAgICAgICAgICAgICAgICAgbWFhbmRpbmtvbWVuXHJcbiAgICAgICAgICAgICAgICAgIG92ZXIgZGUgbGFhdHN0ZSBkcmllIGthbGVuZGVyamFyZW4uXHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGV0YWlscz5cclxuICAgICAgICAgICAgPGRldGFpbHM+XHJcbiAgICAgICAgICAgICAgPHN1bW1hcnk+XHJcbiAgICAgICAgICAgICAgICA8aDM+VWl0a2VyaW5nc2R1dXI8L2gzPlxyXG4gICAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIEplIGt1bnQgemVsZiBqZSB1aXRrZXJpbmdzZHV1ciBiZXBhbGVuOiAyLCA1IGphYXIgb2YgdG90IGVpbmRlIGxvb3B0aWpkLiBKZSB1aXRrZXJpbmcgc3RvcHQgYWxzIGplXHJcbiAgICAgICAgICAgICAgICAgIG5pZXRcclxuICAgICAgICAgICAgICAgICAgbWVlclxyXG4gICAgICAgICAgICAgICAgICB2b2xkb2VuZGUgYXJiZWlkc29uZ2VzY2hpa3QgYmVudCBvZiBvcCBkZSBkb29yIGpvdSBnZWtvemVuIGVpbmRkYXR1bS5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kZXRhaWxzPlxyXG4gICAgICAgICAgICA8ZGV0YWlscz5cclxuICAgICAgICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICAgICAgIDxoMz5BYW50YWwgZGFnZW4gZWlnZW4gcmlzaWNvPC9oMz5cclxuICAgICAgICAgICAgICA8L3N1bW1hcnk+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICBKZSBrdW50IHplbGYga2llemVuIG5hIHdlbGtlIHBlcmlvZGUgamUgZWVuIHVpdGtlcmluZyB3aWx0IG9udHZhbmdlbiBhbHMgamUgYXJiZWlkc29uZ2VzY2hpa3QgcmFha3QuXHJcbiAgICAgICAgICAgICAgICAgIEluIGRlemVcclxuICAgICAgICAgICAgICAgICAgcGVyaW9kZSBvbnR2YW5nIGplIG5vZyBnZWVuIHVpdGtlcmluZy4gRGUgbWluaW1hbGUgZWlnZW4gcmlzaWNvcGVyaW9kZSBpcyAzMCBkYWdlbi4gSmUga3VudCB6ZWxmc1xyXG4gICAgICAgICAgICAgICAgICBraWV6ZW4gdm9vclxyXG4gICAgICAgICAgICAgICAgICBlZW4gbGFuZ2UgZWlnZW4gcmlzaWNvcGVyaW9kZSB2YW4gMiBqYWFyLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgICAgIDxkZXRhaWxzPlxyXG4gICAgICAgICAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGgzPlBzeWNoaXNjaGUga2xhY2h0ZW48L2gzPlxyXG4gICAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIEplIGhlYnQgZGUgbW9nZWxpamtoZWlkIG9tIGplIHRlIHZlcnpla2VyZW4gdm9vciBhcmJlaWRzb25nZXNjaGlrdGhlaWQgYmlqIG1lbnRhbGUga2xhY2h0ZW4gYWxzXHJcbiAgICAgICAgICAgICAgICAgIGRlcHJlc3NpZSBlblxyXG4gICAgICAgICAgICAgICAgICBidXJuLW91dC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kZXRhaWxzPlxyXG4gICAgICAgICAgICA8ZGV0YWlscz5cclxuICAgICAgICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICAgICAgIDxoMz5JbmRleGVyaW5nPC9oMz5cclxuICAgICAgICAgICAgICA8L3N1bW1hcnk+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICBKZSBtYWFuZGxhc3RlbiB3b3JkZW4gZWxrIGphYXIgaWV0cyBob2dlciBkb29yIGluZmxhdGllLiBBbHMgamUga2llc3Qgdm9vciBpbmRleGF0aWUsIHN0aWpndCBqZVxyXG4gICAgICAgICAgICAgICAgICB2ZXJ6ZWtlcmRlXHJcbiAgICAgICAgICAgICAgICAgIGJlZHJhZyBlbiBqZSB1aXRrZXJpbmcgbWV0IDIlIHBlciBqYWFyIG1lZS4gT29rIGplIHByZW1pZSBzdGlqZ3QgZGFuIG1ldCAyJS5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kZXRhaWxzPlxyXG4gICAgICAgICAgICA8ZGV0YWlscz5cclxuICAgICAgICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICAgICAgIDxoMz5VaXRrZXJpbmdzZ3JlbnM8L2gzPlxyXG4gICAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIEplIG9udHZhbmd0IGFsIGVlbiB1aXRrZXJpbmcgYWxzIGplIGdlZGVlbHRlbGlqayAobWluaW1hYWwgMjUlKSBhcmJlaWRzb25nZXNjaGlrdCBiZW50LiBCZW4gamUgODAlIG9mXHJcbiAgICAgICAgICAgICAgICAgIG1lZXJcclxuICAgICAgICAgICAgICAgICAgYXJiZWlkc29uZ2VzY2hpa3Q/IERhbiBvbnR2YW5nIGplIGhldCB2b2xsZWRpZ2UgdmVyemVrZXJkIGJlZHJhZyBhbHMgdWl0a2VyaW5nLiBCaWogZWVuIGxhZ2VyXHJcbiAgICAgICAgICAgICAgICAgIGFyYmVpZHNvbmdlc2NoaWt0aGVpZHNwZXJjZW50YWdlIGtyaWpnIGplIGVlbiB1aXRrZXJpbmcgbmFhciByYXRvLiBCaWp2b29yYmVlbGQ6IGt1biBqZSBub2cgdm9vciA1MCVcclxuICAgICAgICAgICAgICAgICAgd2Vya2VuLFxyXG4gICAgICAgICAgICAgICAgICBkYW4gb250dmFuZyBqZSBlZW4gdWl0a2VyaW5nIHZhbiA1MCUgdmFuIGhldCB2ZXJ6ZWtlcmQgYmVkcmFnLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgICAgIDxkZXRhaWxzPlxyXG4gICAgICAgICAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgPGgzPkJlb29yZGVsaW5nIHZhbiBhcmJlaWRzb25nZXNjaGlrdGhlaWQ8L2gzPlxyXG4gICAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgIFZvb3IgaGV0IGJlcGFsZW4gdmFuIGRlIG1hdGUgdmFuIGFyYmVpZHNvbmdlc2NoaWt0aGVpZCBraWprZW4gd2Ugb2YgamUgamUgZWlnZW4gd2Vya3phYW1oZWRlbiAoYmVyb2VwKVxyXG4gICAgICAgICAgICAgICAgICBub2cga3VudCB1aXR2b2VyZW4uIERhdCBub2VtZW4gd2lqIGJlcm9lcHNhcmJlaWQgZW4gaXMgaGV0IG1lZXN0IHJ1aW1lIGNyaXRlcml1bS4gTWV0IHVpdHpvbmRlcmluZyB2YW5cclxuICAgICAgICAgICAgICAgICAgc29tbWlnZSBmeXNpZWsgendhcmUgb2YgY3JlYXRpZXZlIGJlcm9lcGVuLiBEYW4gYmVvb3JkZWxlbiB3ZSBuYSBoZXQgZWVyc3RlIGphYXIgb2YgamUgaW4gY29tYmluYXRpZVxyXG4gICAgICAgICAgICAgICAgICBtZXQgamUgYmVwZXJraW5nZW4sIG9wbGVpZGluZ3NuaXZlYXUgZW4gdnJvZWdlcmUgd2Vya3phYW1oZWRlbiBub2cgYW5kZXJlIGZ1bmN0aWVzIGt1bnQgdWl0dm9lcmVuLiBKZVxyXG4gICAgICAgICAgICAgICAgICB1aXRrZXJpbmcgd29yZHQgaGllcm9wIGFhbmdlcGFzdC5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kZXRhaWxzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlfX2NvbnRlbnQtYmxvY2tcIj5cclxuICAgICAgICAgIDxoMj5XYWFyb20gZGUgVEFGIEdvZWRHZXpla2VyZCBBT1Y8L2gyPlxyXG4gICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+T25iZXBlcmt0IHRvZWdhbmcgdG90IFJveWFsIERvY3RvcnMgdm9vciBodWxwIGJpaiBtZWRpc2NoZSB2cmFhZ3N0dWtrZW4gZW4gZWVuIHNlY29uZCBvcGluaW9uLjwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5VaXRrZXJpbmcgdmFuIG92ZXJsaWpkZW4gdmFuIHBhcnRuZXIgZW4ga2luZCwgendhbmdlcnNjaGFwIGVuIGFkb3B0aWU8L2xpPlxyXG4gICAgICAgICAgICA8bGk+UHJlbWlldnJpanN0ZWxsaW5nIGJpaiBhcmJlaWRzb25nZXNjaGlrdGhlaWQuPC9saT5cclxuICAgICAgICAgICAgPGxpPjIwJSBrb3J0aW5nIG9wIGplIHByZW1pZSBpbiBoZXQgZWVyc3RlIGphYXIuPC9saT5cclxuICAgICAgICAgICAgPGxpPjMwIGRhZ2VuIGJlZGVua3RpamQsIGplIHppdCBkdXMgbm9nIG5lcmdlbnMgYWFuIHZhc3QuPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGltZyBhbHQ9XCJcIiBzcmM9XCJ+QC9pbWcvaW1nLXBhcmFjaHV0ZS5wbmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheV9fY3RhXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImJ0blwiIGhyZWY9XCJodHRwczovL3Zlcnpla2VyaW5nc2thYXJ0ZW4ubmwvdGFmL3RhZi1nb2VkZ2V6ZWtlcmQtYW92XCIgdGFyZ2V0PVwiX2JsYW5rXCI+QmVraWprXHJcbiAgICAgICAgICAgIHZlcnpla2VyaW5nc2thYXJ0PC9hPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LnRhZi5ubC9zaXRlcy9kZWZhdWx0L2ZpbGVzL2ZpbGVzL09BT1YvR29lZEdlemVrZXJkL1RBRi1QVlctMjAwNi1HRy1RTC0yMDIwMDUxOS5wZGZcIlxyXG4gICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCI+QmVraWprIHZvb3J3YWFyZGVuPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvVGVsZXBvcnQ+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQge21hcFN0b3Jlc30gZnJvbSAncGluaWEnO1xyXG5pbXBvcnQge3VzZUFwcGxpY2F0aW9uU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUvYXBwbGljYXRpb25TdG9yZSc7XHJcbmltcG9ydCB7dXNlRGF0YVN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2RhdGFTdG9yZSc7XHJcbmltcG9ydCBJbnN1cmFuY2VTZXJ2aWNlIGZyb20gJ0AvanMvc2VydmljZS9JbnN1cmFuY2VTZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnT3ZlcnZpZXdDb25maWd1cmF0aW9uVmlldycsXHJcbiAgZGF0YSgpXHJcbiAge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcHJlbWl1bTogW10sXHJcbiAgICAgIHNob3dBbGw6IGZhbHNlLFxyXG4gICAgICBvcGVuOiBmYWxzZSxcclxuICAgICAgZXJyb3I6IGZhbHNlLFxyXG4gICAgICBlcnJvck1lc3NhZ2U6ICdFciBpcyBpZXRzIGZvdXQgZ2VnYWFuIG1ldCBoZXQgYmVyZWtlbmVuIHZhbiBkZSBwcmVtaWUsIHByb2JlZXIgaGV0IGxhdGVyIG5vZ21hYWxzLicsXHJcbiAgICAgIGluZGV4YXRpb246IGZhbHNlLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yTWVzc2FnZTogJycsXHJcbiAgICAgIHF1b3RlU2VudFN0YXR1czogJ2lkbGUnLCAvLyAnaWRsZScsICdzZW5kaW5nJywgJ3N1Y2Nlc3MnXHJcbiAgICAgIHF1b3RlU2VudEVycm9yOiAnJyxcclxuICAgICAgLy8gTW9kYWwgc3BlY2lmaWMgZGF0YVxyXG4gICAgICBkaXNwbGF5Rm9ybTogZmFsc2UsXHJcbiAgICAgIG1vZGFsTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIG1vZGFsRXJyb3I6IG51bGwsXHJcbiAgICAgIGVtYWlsOiAnJyxcclxuICAgICAgcHJpdmFjeUFjY2VwdGVkOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RvcmVzKHVzZUFwcGxpY2F0aW9uU3RvcmUpLFxyXG4gICAgLi4ubWFwU3RvcmVzKHVzZURhdGFTdG9yZSksXHJcblxyXG4gICAgbWVudGFsSWxsbmVzc0NoZWNrYm94OiB7XHJcbiAgICAgIGdldCgpXHJcbiAgICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvblN0b3JlLm1lbnRhbElsbG5lc3NJbmNsdWRlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0KHZhbHVlKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLm1lbnRhbElsbG5lc3NJbmNsdWRlZCA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGluZGV4YXRpb25DaGVja2JveDoge1xyXG4gICAgICBnZXQoKVxyXG4gICAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbmRleGF0aW9uID09PSAnQ0xBSU1fQU5EX1BPTElDWSc7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldCh2YWx1ZSlcclxuICAgICAge1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbmRleGF0aW9uID0gdmFsdWUgPyAnQ0xBSU1fQU5EX1BPTElDWScgOiAnTk9fSU5ERVhBVElPTic7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgJ2FwcGxpY2F0aW9uU3RvcmUuY2xhaW1EdXJhdGlvbkRpc2FiaWxpdHknOiB7XHJcbiAgICAgIGhhbmRsZXIoKVxyXG4gICAgICB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2hhc1N1Ym1pdHRlZE9mZmVyJyk7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQcmVtaXVtKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgcHJpdmFjeUFjY2VwdGVkKG5ld1ZhbHVlKVxyXG4gICAge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJpdmFjeVBvbGljeUFjY2VwdGVkJywgbmV3VmFsdWUpO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgb3Blbk1vZGFsKClcclxuICAgIHtcclxuICAgICAgdGhpcy5kaXNwbGF5Rm9ybSA9IHRydWU7XHJcbiAgICAgIHRoaXMubW9kYWxFcnJvciA9IG51bGw7XHJcbiAgICB9LFxyXG4gICAgY2xvc2VNb2RhbCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuZGlzcGxheUZvcm0gPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBtb2RhbE5leHRTdGVwKClcclxuICAgIHtcclxuICAgICAgdGhpcy5tb2RhbExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1vZGFsRXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLnF1b3RlU2VudEVycm9yID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5lbWFpbCA9IHRoaXMuZW1haWw7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VuZFF1b3RlKCk7XHJcblxyXG4gICAgICB0aGlzLm1vZGFsTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMucXVvdGVTZW50U3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGFzU3VibWl0dGVkT2ZmZXInLCAndHJ1ZScpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwcml2YWN5UG9saWN5QWNjZXB0ZWQnLCAndHJ1ZScpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kYWxFcnJvciA9IHRoaXMucXVvdGVTZW50RXJyb3I7XHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuZW1haWwgPSAnJztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGFzeW5jIGNhbGN1bGF0ZVByZW1pdW1BbmRDbGVhclF1b3RlU3RhdHVzKClcclxuICAgIHtcclxuICAgICAgdGhpcy5xdW90ZVNlbnRTdGF0dXMgPSAnaWRsZSc7XHJcbiAgICAgIHRoaXMucXVvdGVTZW50RXJyb3IgPSAnJztcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2hhc1N1Ym1pdHRlZE9mZmVyJyk7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlUHJlbWl1bSgpO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGNhbGN1bGF0ZVByZW1pdW0oKVxyXG4gICAge1xyXG4gICAgICB0aGlzLnF1b3RlU2VudFN0YXR1cyA9ICdpZGxlJztcclxuICAgICAgdGhpcy5xdW90ZVNlbnRFcnJvciA9ICcnO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IHByZW1pdW1DYWxjdWxhdGlvbiA9IGF3YWl0IEluc3VyYW5jZVNlcnZpY2UuZ2V0UHJlbWl1bUNhbGN1bGF0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG4gICAgICAgICAgdGhpcy5wcmVtaXVtID0gcHJlbWl1bUNhbGN1bGF0aW9uPy5yZXN1bHRzPy5bMF07XHJcblxyXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmVuZERhdGUgPSBwcmVtaXVtQ2FsY3VsYXRpb24/LmVuZERhdGU7XHJcblxyXG4gICAgICAgICAgaWYgKCFwcmVtaXVtQ2FsY3VsYXRpb24uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHByZW1pdW1DYWxjdWxhdGlvbi5lcnJvcnNbMF0ubWVzc2FnZS5ubDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucHJlbWl1bSkge1xyXG4gICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUucHJlbWl1bVRlcm1zID0gdGhpcy5wcmVtaXVtLnByZW1pdW1Qcm9ncmVzc2lvbjtcclxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUucHJlbWl1bSA9IHRoaXMucHJlbWl1bS5kaXNhYmlsaXR5LmFtb3VudDtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGFzeW5jIHNlbmRRdW90ZSgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMucXVvdGVTZW50U3RhdHVzID0gJ3NlbmRpbmcnO1xyXG4gICAgICB0aGlzLnF1b3RlU2VudEVycm9yID0gJyc7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmVtYWlsKSB7XHJcbiAgICAgICAgdGhpcy5xdW90ZVNlbnRFcnJvciA9ICdHZWVuIGUtbWFpbGFkcmVzIGJla2VuZC4gVnVsIHV3IGUtbWFpbGFkcmVzIGluIG9tIGRlIG9mZmVydGUgdGUgdmVyc3R1cmVuLic7XHJcbiAgICAgICAgdGhpcy5xdW90ZVNlbnRTdGF0dXMgPSAnaWRsZSc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNhdmVPclVwZGF0ZUFwcGxpY2F0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNlbmRUb1Nwb3RsZXIodGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuZW1haWwpO1xyXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5zdGF0dXMgPT09ICdlcnJvcicpKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2U/LmRhdGE/Lm1lc3NhZ2UgfHwgJ0RlIG9mZmVydGUga29uIG5pZXQgd29yZGVuIHZlcnN0dXVyZC4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucXVvdGVTZW50U3RhdHVzID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdoYXNTdWJtaXR0ZWRPZmZlcicsICd0cnVlJyk7XHJcblxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgcXVvdGU6JywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucXVvdGVTZW50RXJyb3IgPSBlcnJvci5tZXNzYWdlIHx8ICdFciBpcyBlZW4gb25iZWtlbmRlIGZvdXQgb3BnZXRyZWRlbi4gUHJvYmVlciBoZXQgb3BuaWV1dy4nO1xyXG4gICAgICAgIHRoaXMucXVvdGVTZW50U3RhdHVzID0gJ2lkbGUnO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgY2xlYXJTYXZlRXJyb3IoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLnNhdmVFcnJvciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmVFcnJvck1lc3NhZ2UgPSAnJztcclxuICAgIH0sXHJcbiAgICBmb3JtYXRDdXJyZW5jeSh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgnbmwtTkwnLCB7XHJcbiAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXHJcbiAgICAgICAgY3VycmVuY3k6ICdFVVInLFxyXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gZm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSk7XHJcblxyXG4gICAgICByZXR1cm4gc3RyaW5nVmFsdWUucmVwbGFjZSgn4oKsJywgJycpLnRyaW0oKTtcclxuICAgIH0sXHJcbiAgICBwcmV2aW91c1N0ZXAoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMS9pbmRleGluZyd9KTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBuZXh0U3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuY2xlYXJTYXZlRXJyb3IoKTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNhdmVPclVwZGF0ZUFwcGxpY2F0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hcHBsaWNhdGlvblN0b3JlLnN1bUFzc3VyZWQgPiAyNTAwKSB7XHJcbiAgICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgICAgICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICdldmVudCc6ICdzdGVwN19wcm9wb3NhbCcsXHJcbiAgICAgICAgICAgICdtb250aGx5X2ZlZSc6IHRoaXMucHJlbWl1bT8ucHJlbWl1bVByb2dyZXNzaW9uPy5bMF0/LmFtb3VudCxcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC0zL2F2ZXJhZ2UteWVhci1pbmNvbWUnfSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goe1xyXG4gICAgICAgICAgJ2V2ZW50JzogJ3N0ZXA3X3Byb3Bvc2FsJyxcclxuICAgICAgICAgICdtb250aGx5X2ZlZSc6IHRoaXMucHJlbWl1bT8ucHJlbWl1bVByb2dyZXNzaW9uPy5bMF0/LmFtb3VudCxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hdmVyYWdlWWVhckluY29tZSA9IHRoaXMuYXBwbGljYXRpb25TdG9yZS5zdW1Bc3N1cmVkICogMTI7XHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmF2ZXJhZ2VZZWFySW5jb21lID0gdGhpcy5hdmVyYWdlWWVhckluY29tZTtcclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMy9ydW5uaW5nLWluc3VyYW5jZSd9KTtcclxuXHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGFwcGxpY2F0aW9uIGRhdGE6JywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUVycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNhdmVFcnJvck1lc3NhZ2UgPSBlcnJvci5yZXNwb25zZT8uZGF0YT8ubWVzc2FnZSB8fCAnRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiBiaWogaGV0IG9wc2xhYW4gdmFuIGplIGdlZ2V2ZW5zLiBDb250cm9sZWVyIGplIGludGVybmV0dmVyYmluZGluZyBlbiBwcm9iZWVyIGhldCBvcG5pZXV3Lic7XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGZvcm1hdFRvQWdlKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBmcm9tID0gdmFsdWUuc3BsaXQoJy0nKTtcclxuICAgICAgY29uc3QgYmlydGhkYXRlVGltZVN0YW1wID0gbmV3IERhdGUoZnJvbVsyXSwgZnJvbVsxXSAtIDEsIGZyb21bMF0pO1xyXG4gICAgICBjb25zdCBjdXIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb25zdCBkaWZmID0gY3VyIC0gYmlydGhkYXRlVGltZVN0YW1wO1xyXG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmIC8gMzE1NTc2MDAwMDApO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1vdW50ZWQoKVxyXG4gIHtcclxuICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5kZWR1Y3RQcmVtaXVtRnJvbVRheGVzID0gdHJ1ZTtcclxuICAgIHRoaXMuY2FsY3VsYXRlUHJlbWl1bSgpO1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoYXNTdWJtaXR0ZWRPZmZlcicpID09PSAndHJ1ZScgJiYgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuZW1haWwpIHtcclxuICAgICAgdGhpcy5xdW90ZVNlbnRTdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICB9XHJcbiAgICAvLyBGb3IgbW9kYWxcclxuICAgIHRoaXMucHJpdmFjeUFjY2VwdGVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ByaXZhY3lQb2xpY3lBY2NlcHRlZCcpID09PSAndHJ1ZSc7XHJcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuZW1haWwpIHtcclxuICAgICAgdGhpcy5lbWFpbCA9IHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmVtYWlsO1xyXG4gICAgfVxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmljb24tdGV4dC1idXR0b24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBnYXA6IDhweDtcclxufVxyXG5cclxuLmVycm9yLW1lc3NhZ2Uge1xyXG4gIGNvbG9yOiAjZDMyZjJmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmViZWU7XHJcbiAgcGFkZGluZzogMTJweCAxNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBtYXJnaW46IDE2cHggMDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNkMzJmMmY7XHJcbn1cclxuXHJcbi5idG4tLWxvYWRpbmcge1xyXG4gIG9wYWNpdHk6IDAuNztcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG4ubG9hZGluZy1jb250YWluZXIge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbmJ1dHRvbjpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC43ICFpbXBvcnRhbnQ7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLmJ0bi5idG4tLXN1Y2Nlc3Mge1xyXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXMsICM3QUM2OTApICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXMsICM3QUM2OTApICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5idG4uYnRuLS1naG9zdCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItZGFyay1ibHVlLCAjMDA1MTkxKTtcclxuICBjb2xvcjogdmFyKC0tY29sb3ItZGFyay1ibHVlLCAjMDA1MTkxKTtcclxufVxyXG5cclxuOmRlZXAoLm1vZGFsLWJvZHkgLmZvcm1raXQtZm9ybSkge1xyXG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjpkZWVwKC5mb3Jta2l0LWNoZWNrYm94LW92ZXJyaWRlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiA0cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmljb24tdGV4dC1idXR0b24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiA4cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uaWNvbi10ZXh0LWJ1dHRvbiBzdmcge1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBjb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2JhY2tcIj5cclxuICAgICAgICA8YSBocmVmPVwiI1wiIEBjbGljay5wcmV2ZW50PVwicHJldmlvdXNTdGVwXCI+XHJcbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNS40MSAxNi4wOUwxMC44MyAxMS41TDE1LjQxIDYuOTFMMTQgNS41TDggMTEuNUwxNCAxNy41TDE1LjQxIDE2LjA5WlwiIGZpbGw9XCIjMDA1MTkxXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICBWb3JpZ2VcclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fY29sdW1uc1wiPlxyXG4gICAgICAgIDxoMj5XYXQgaXMgamUgZ2VtaWRkZWxkZSBicnV0byBpbmtvbWVuPC9oMj5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgIEhldCBpcyBiZWxhbmdyaWprIGRhdCBqZSB2ZXJ6ZWtlcmQgYmVkcmFnIGluIGxpam4gaXMgbWV0IGplIGlua29tZW4uIEdlZWYgYWFuIHdhdCBqZSBnZW1pZGRlbGRlIGphYXJpbmtvbWVuXHJcbiAgICAgICAgICB2YW4gZGUgYWZnZWxvcGVuIDMgamFhciBpcy5cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDwhLS0gU0FWRSBFUlJPUiBNRVNTQUdFIC0tPlxyXG4gICAgICAgIDxkaXYgdi1pZj1cInNhdmVFcnJvclwiIGNsYXNzPVwiZm9ybWtpdC1tZXNzYWdlIGVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgIHt7IHNhdmVFcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPEZvcm1LaXQgdHlwZT1cImZvcm1cIiBAc3VibWl0PVwibmV4dFN0ZXBcIiA6YWN0aW9ucz1cImZhbHNlXCIgOmluY29tcGxldGUtbWVzc2FnZT1mYWxzZT5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImF2ZXJhZ2VZZWFySW5jb21lXCJcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiYXZlcmFnZVllYXJJbmNvbWVJbnB1dFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cImxpbWl0VG9OdW1iZXJcIlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiTWlqbiBnZW1pZGRlbGRlIGphYXJpbmtvbWVuIGlzXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjBcIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uPVwiYHJlcXVpcmVkfG51bWVyaWN8aW5jb21lVmVyaWZpY2F0aW9uOiR7YXBwbGljYXRpb25TdG9yZS5zdW1Bc3N1cmVkfWBcIlxyXG4gICAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgICBwYXRlcm49XCIvZCpcIlxyXG4gICAgICAgICAgICAgIDpjbGFzc2VzPVwie1xyXG4gICAgICAgICAgICAgICAgaW5uZXI6ICdmb3Jta2l0LS1ldXJvJ1xyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdHZWVmIGFhbiB3YXQgamUgZ2VtaWRkZWxkZSBqYWFyaW5rb21lbiBpcy4nLFxyXG4gICAgICAgICAgICAgICAgaW5jb21lVmVyaWZpY2F0aW9uOiAnSGV0IGphYXJpbmtvbWVuIGlzIHRlIGxhYWcgdm9vciBoZXQgdmVyemVrZXJkIGJlZHJhZy4nLFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1yb3dcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwiVm9yaWdlIHN0YXBcIiBjbGFzcz1cImJ0biBidG4tLWJhY2tcIiBAY2xpY2sucHJldmVudD1cInByZXZpb3VzU3RlcFwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHNyYz1cIkAvaW1nL2xlZnQtYXJyb3cuc3ZnXCIgYWx0PVwiVm9yaWdlIHN0YXBcIj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8IS0tIExPQURJTkcvU1VCTUlUIEJVVFRPTiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwieyAnYnRuLS1sb2FkaW5nJzogaXNMb2FkaW5nIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFpc0xvYWRpbmdcIj5Wb2xnZW5kZTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvRm9ybUtpdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQge21hcFN0b3Jlc30gZnJvbSAncGluaWEnO1xyXG5pbXBvcnQge3VzZUFwcGxpY2F0aW9uU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUvYXBwbGljYXRpb25TdG9yZSc7XHJcbmltcG9ydCB7dXNlRGF0YVN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2RhdGFTdG9yZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ0F2ZXJhZ2VZZWFySW5jb21lJyxcclxuICBkYXRhKClcclxuICB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhdmVyYWdlWWVhckluY29tZTogMCxcclxuICAgICAgYXZlcmFnZVllYXJJbmNvbWVJbnB1dDogJycsXHJcbiAgICAgIG1vbnRobHlFeHBlbnNlc0lucHV0OiAnJyxcclxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yTWVzc2FnZTogJycsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VBcHBsaWNhdGlvblN0b3JlKSxcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VEYXRhU3RvcmUpLFxyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGF2ZXJhZ2VZZWFySW5jb21lSW5wdXQodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XHJcbiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hdmVyYWdlWWVhckluY29tZUlucHV0ID0gdmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYXZlcmFnZVllYXJJbmNvbWUgPSB2YWx1ZTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBhc3luYyBuZXh0U3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuY2xlYXJTYXZlRXJyb3IoKTtcclxuXHJcbiAgICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goe1xyXG4gICAgICAgICdldmVudCc6ICdzdGVwOF9pbmNvbWUnLFxyXG4gICAgICAgICdhdmVyYWdlX3llYXJfaW5jb21lJzogdGhpcy5hdmVyYWdlWWVhckluY29tZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuYXZlcmFnZVllYXJJbmNvbWUgPSB0aGlzLmF2ZXJhZ2VZZWFySW5jb21lO1xyXG5cclxuICAgICAgLy8gU2F2ZSBkYXRhIGJlZm9yZSBwcm9jZWVkaW5nXHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTdG9yZS5zYXZlT3JVcGRhdGVBcHBsaWNhdGlvbih0aGlzLmFwcGxpY2F0aW9uU3RvcmUuZ2V0Rm9yUmVxdWVzdCgpKTtcclxuXHJcbiAgICAgICAgLy8gU3VjY2VzcyAtIHByb2NlZWQgdG8gbmV4dCBzdGVwXHJcbiAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goe25hbWU6ICdzdGVwLTMvcnVubmluZy1pbnN1cmFuY2UnfSk7XHJcblxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNhdmluZyBhcHBsaWNhdGlvbiBkYXRhOicsIGVycm9yKTtcclxuICAgICAgICB0aGlzLnNhdmVFcnJvciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zYXZlRXJyb3JNZXNzYWdlID0gZXJyb3IucmVzcG9uc2U/LmRhdGE/Lm1lc3NhZ2UgfHwgJ0VyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gYmlqIGhldCBvcHNsYWFuIHZhbiBqZSBpbmtvbWVuLiBDb250cm9sZWVyIGplIGludGVybmV0dmVyYmluZGluZyBlbiBwcm9iZWVyIGhldCBvcG5pZXV3Lic7XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBjbGVhclNhdmVFcnJvcigpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuc2F2ZUVycm9yID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2F2ZUVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgfSxcclxuXHJcbiAgICBwcmV2aW91c1N0ZXAoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMi9vdmVydmlldy1jb25maWd1cmF0b3InfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGxpbWl0VG9OdW1iZXIoZSlcclxuICAgIHtcclxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGUudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1vdW50ZWQoKVxyXG4gIHtcclxuICAgIHRoaXMuYXZlcmFnZVllYXJJbmNvbWVJbnB1dCA9IHRoaXMuYXBwbGljYXRpb25TdG9yZS5hdmVyYWdlWWVhckluY29tZTtcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5lcnJvci1tZXNzYWdlIHtcclxuICBjb2xvcjogI2QzMmYyZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmVlO1xyXG4gIHBhZGRpbmc6IDEycHggMTZweDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgbWFyZ2luOiAxNnB4IDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZDMyZjJmO1xyXG59XHJcblxyXG4uZm9ybS1hY3Rpb25zIHtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYnRuLS1sb2FkaW5nIHtcclxuICBvcGFjaXR5OiAwLjc7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLmxvYWRpbmctY29udGFpbmVyIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5idXR0b246ZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDAuNztcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuICA8c2VjdGlvbiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fYmFja1wiPlxyXG4gICAgICAgIDxhIGhyZWY9XCIjXCIgQGNsaWNrLnByZXZlbnQ9XCJwcmV2aW91c1N0ZXBcIj5cclxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjQxIDE2LjA5TDEwLjgzIDExLjVMMTUuNDEgNi45MUwxNCA1LjVMOCAxMS41TDE0IDE3LjVMMTUuNDEgMTYuMDlaXCIgZmlsbD1cIiMwMDUxOTFcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIFZvcmlnZVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19jb2x1bW5zXCI+XHJcbiAgICAgICAgPGgyPkJpaiB3ZWxrZSB2ZXJ6ZWtlcmFhciBsb29wdCBqZSBodWlkaWdlIEFPVj88L2gyPlxyXG4gICAgICAgIDxwPlxyXG4gICAgICAgICAgVnVsIGhpZXJvbmRlciBkZSBnZWdldmVucyB2YW4gamUgbG9wZW5kZSBBT1YuIEplIGJlbnQgemVsZiB2ZXJhbnR3b29yZGVsaWprIHZvb3IgaGV0IG9wemVnZ2VuIHZhbiBqZSBBT1YuIERpdCBrdW4gamUgZG9lbiB3YW5uZWVyIGRlIFRBRiBHb2VkR2V6ZWtlcmQgQU9WXHJcbiAgICAgICAgICBpbmdhYXQuXHJcbiAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICA8IS0tIFNBVkUgRVJST1IgTUVTU0FHRSAtLT5cclxuICAgICAgICA8ZGl2IHYtaWY9XCJzYXZlRXJyb3JcIiBjbGFzcz1cImZvcm1raXQtbWVzc2FnZSBlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICB7eyBzYXZlRXJyb3JNZXNzYWdlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxGb3JtS2l0IHR5cGU9XCJmb3JtXCIgQHN1Ym1pdD1cIm5leHRTdGVwXCIgOmFjdGlvbnM9XCJmYWxzZVwiIDppbmNvbXBsZXRlLW1lc3NhZ2U9ZmFsc2U+XHJcbiAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBuYW1lPVwiZXhpc3RpbmdJbnN1cmFuY2VCcm9rZXJcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmV4aXN0aW5nSW5zdXJhbmNlQnJva2VyXCJcclxuICAgICAgICAgICAgICBsYWJlbD1cIk5hYW0gdmVyemVrZXJhYXJcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgb3B0aW9ucy1jbGFzcz1cImZvcm1raXQtb3B0aW9ucy0tNTAtNTBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cInRlcm1pbmF0ZUluc3VyYW5jZVwiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uZXhpc3RpbmdJbnN1cmFuY2VUZXJtaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJJayB6ZWcgbWlqbiBsb3BlbmRlIEFPViBvcFwiXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICA6b3B0aW9ucz1cIltcclxuICAgICAgICAgICAgICB7IHZhbHVlOiAneWVzJywgbGFiZWw6ICdKYScgfSxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiAnbm8nLCBsYWJlbDogJ05lZScgfSxcclxuICAgICAgICAgICAgICBdXCJcclxuICAgICAgICAgICAgICA6dmFsaWRhdGlvbi1tZXNzYWdlcz1cIntcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnR2VlZiBhYW4gb2YgamUgam91dyBsb3BlbmRlIEFPViBvcHplZ3Qgb2YgbmlldC4nLFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgdi1pZj1cImZvcm0uZXhpc3RpbmdJbnN1cmFuY2VUZXJtaW5hdGlvbiA9PT0gJ3llcydcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2FuY2VsbGF0aW9uRGF0ZVwiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uZXhpc3RpbmdJbnN1cmFuY2VDYW5jZWxsYXRpb25EYXRlXCJcclxuICAgICAgICAgICAgICBsYWJlbD1cIlZlcnpla2VyaW5nIG9wZ2V6ZWdkIHBlclwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgIEBibHVyLnByZXZlbnQ9XCJhdXRvRm9ybWF0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cInJlcXVpcmVkfGRhdGVfZm9ybWF0OllZWVktTU0tRERcIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdEZSBvcHplZ2RhdHVtIGlzIHZlcnBsaWNodC4nLFxyXG4gICAgICAgICAgICAgICAgZGF0ZV9mb3JtYXQ6ICdHZWJydWlrIGhldCBmb3JtYWF0IGRkLW1tLWpqamogb20gZGUgZGF0dW0gaW4gdGUgdnVsbGVuLicsXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBuYW1lPVwic3VtQXNzdXJlZFwiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uZXhpc3RpbmdJbnN1cmFuY2VTdW1Bc3N1cmVkXCJcclxuICAgICAgICAgICAgICBsYWJlbD1cIkh1aWRpZyB2ZXJ6ZWtlcmQgYmVkcmFnXCJcclxuICAgICAgICAgICAgICBAY2hhbmdlPVwibGltaXRUb051bWJlclwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwXCJcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWR8bnVtZXJpY3xtaW46MTAwfG1heDo1MDAwXCJcclxuICAgICAgICAgICAgICBwYXRlcm49XCIvZCpcIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgbWluOiAnVnVsIG1pbmltYWFsIGVlbiBiZWRyYWcgdmFuIOKCrCAxMDAgaW4uJyxcclxuICAgICAgICAgICAgICAgIG1heDogJ0hldCBiZWRyYWcgZGF0IGplIHdpbHQgdmVyemVrZXJlbiBtYWcgbWF4aW1hYWwg4oKsIDUuMDAwIHBlciBtYWFuZCB6aWpuLicsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ0RpdCB2ZWxkIGlzIHZlcnBsaWNodC4gVnVsIG1pbmltYWFsIGVlbiBiZWRyYWcgdmFuIOKCrCAxMDAgaW4uJyxcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICA6Y2xhc3Nlcz1cIntcclxuICAgICAgICAgICAgICAgIGlubmVyOiAnZm9ybWtpdC0tZXVybydcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgIC8+XHJcblxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXJvd1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMjBweDtcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwiVm9yaWdlIHN0YXBcIiBjbGFzcz1cImJ0biBidG4tLWJhY2tcIiBAY2xpY2sucHJldmVudD1cInByZXZpb3VzU3RlcFwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHNyYz1cIkAvaW1nL2xlZnQtYXJyb3cuc3ZnXCIgYWx0PVwiVm9yaWdlIHN0YXBcIj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8IS0tIExPQURJTkcvU1VCTUlUIEJVVFRPTiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwieyAnYnRuLS1sb2FkaW5nJzogaXNMb2FkaW5nIH1cIlxyXG4gICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFpc0xvYWRpbmdcIj5Wb2xnZW5kZTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L0Zvcm1LaXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHttYXBTdG9yZXN9IGZyb20gJ3BpbmlhJztcclxuaW1wb3J0IHt1c2VBcHBsaWNhdGlvblN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2FwcGxpY2F0aW9uU3RvcmUnO1xyXG5pbXBvcnQge3VzZURhdGFTdG9yZX0gZnJvbSAnQC9qcy9zdG9yZS9kYXRhU3RvcmUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdUZXJtaW5hdGVJbnN1cmFuY2VWaWV3JyxcclxuICBkYXRhKClcclxuICB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiB7XHJcbiAgICAgICAgZXhpc3RpbmdJbnN1cmFuY2VCcm9rZXI6ICcnLFxyXG4gICAgICAgIGV4aXN0aW5nSW5zdXJhbmNlVGVybWluYXRpb246ICcnLFxyXG4gICAgICAgIGV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZTogJycsXHJcbiAgICAgICAgZXhpc3RpbmdJbnN1cmFuY2VTdW1Bc3N1cmVkOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yTWVzc2FnZTogJycsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VBcHBsaWNhdGlvblN0b3JlKSxcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VEYXRhU3RvcmUpLFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgYXN5bmMgbmV4dFN0ZXAoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmNsZWFyU2F2ZUVycm9yKCk7XHJcblxyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgICAgd2luZG93LmRhdGFMYXllci5wdXNoKHtcclxuICAgICAgICAnZXZlbnQnOiAnc3RlcDExX2NhbmNlbF9vdGhlcl9pbnN1cmFuY2UnLFxyXG4gICAgICAgICdvdGhlcl9pbnN1cmFuY2VfbmFtZSc6IHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZUJyb2tlcixcclxuICAgICAgICAnY2FuY2VsX290aGVyX2luc3VyYW5jZSc6IHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZVRlcm1pbmF0aW9uLFxyXG4gICAgICAgICdjYW5jZWxsYXRpb25fZGF0ZSc6IHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZUNhbmNlbGxhdGlvbkRhdGUsXHJcbiAgICAgICAgJ3N1bV9hc3N1cmVkJzogdGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlU3VtQXNzdXJlZCxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBVcGRhdGUgc3RvcmVcclxuICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLm90aGVySW5zdXJhbmNlLmV4aXN0aW5nSW5zdXJhbmNlQnJva2VyID0gdGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlQnJva2VyO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUub3RoZXJJbnN1cmFuY2UuZXhpc3RpbmdJbnN1cmFuY2VUZXJtaW5hdGlvbiA9IHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZVRlcm1pbmF0aW9uO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUub3RoZXJJbnN1cmFuY2UuZXhpc3RpbmdJbnN1cmFuY2VDYW5jZWxsYXRpb25EYXRlID0gdGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZTtcclxuICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLm90aGVySW5zdXJhbmNlLmV4aXN0aW5nSW5zdXJhbmNlU3VtQXNzdXJlZCA9IHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZVN1bUFzc3VyZWQ7XHJcblxyXG4gICAgICAvLyBTYXZlIGRhdGEgYmVmb3JlIHByb2NlZWRpbmdcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNhdmVPclVwZGF0ZUFwcGxpY2F0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG5cclxuICAgICAgICAvLyBTdWNjZXNzIC0gcHJvY2VlZCB0byBuZXh0IHN0ZXBcclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMy9wZXJzb25hbC1kYXRhJ30pO1xyXG5cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgYXBwbGljYXRpb24gZGF0YTonLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy5zYXZlRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2F2ZUVycm9yTWVzc2FnZSA9IGVycm9yLnJlc3BvbnNlPy5kYXRhPy5tZXNzYWdlIHx8ICdFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIGJpaiBoZXQgb3BzbGFhbiB2YW4gamUgdmVyemVrZXJpbmdnZWdldmVucy4gQ29udHJvbGVlciBqZSBpbnRlcm5ldHZlcmJpbmRpbmcgZW4gcHJvYmVlciBoZXQgb3BuaWV1dy4nO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY2xlYXJTYXZlRXJyb3IoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLnNhdmVFcnJvciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNhdmVFcnJvck1lc3NhZ2UgPSAnJztcclxuICAgIH0sXHJcblxyXG4gICAgcHJldmlvdXNTdGVwKClcclxuICAgIHtcclxuICAgICAgdGhpcy4kcm91dGVyLnB1c2goe25hbWU6ICdzdGVwLTMvcnVubmluZy1pbnN1cmFuY2UnfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGxpbWl0VG9OdW1iZXIoZSlcclxuICAgIHtcclxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGUudGFyZ2V0LnZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBhdXRvRm9ybWF0RGF0ZSgpXHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IGV4cGxvZGVkID0gdGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZS5zcGxpdCgnLScpO1xyXG4gICAgICBpZiAoZXhwbG9kZWQubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZS5sZW5ndGggPT09IDgpIHtcclxuICAgICAgICB0aGlzLmZvcm0uZXhpc3RpbmdJbnN1cmFuY2VDYW5jZWxsYXRpb25EYXRlID0gYCR7dGhpcy5mb3JtLmV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZS5zbGljZSgwLCAyKX0tJHt0aGlzLmZvcm0uZXhpc3RpbmdJbnN1cmFuY2VDYW5jZWxsYXRpb25EYXRlLnNsaWNlKDIsIDQpfS0ke3RoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZUNhbmNlbGxhdGlvbkRhdGUuc2xpY2UoNCwgOCl9YDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1vdW50ZWQoKVxyXG4gIHtcclxuICAgIHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZUJyb2tlciA9IHRoaXMuYXBwbGljYXRpb25TdG9yZS5vdGhlckluc3VyYW5jZS5leGlzdGluZ0luc3VyYW5jZUJyb2tlcjtcclxuICAgIHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZVRlcm1pbmF0aW9uID0gdGhpcy5hcHBsaWNhdGlvblN0b3JlLm90aGVySW5zdXJhbmNlLmV4aXN0aW5nSW5zdXJhbmNlVGVybWluYXRpb247XHJcbiAgICB0aGlzLmZvcm0uZXhpc3RpbmdJbnN1cmFuY2VDYW5jZWxsYXRpb25EYXRlID0gdGhpcy5hcHBsaWNhdGlvblN0b3JlLm90aGVySW5zdXJhbmNlLmV4aXN0aW5nSW5zdXJhbmNlQ2FuY2VsbGF0aW9uRGF0ZTtcclxuICAgIHRoaXMuZm9ybS5leGlzdGluZ0luc3VyYW5jZVN1bUFzc3VyZWQgPSB0aGlzLmFwcGxpY2F0aW9uU3RvcmUub3RoZXJJbnN1cmFuY2UuZXhpc3RpbmdJbnN1cmFuY2VTdW1Bc3N1cmVkO1xyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG4uZXJyb3ItbWVzc2FnZSB7XHJcbiAgY29sb3I6ICNkMzJmMmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlZTtcclxuICBwYWRkaW5nOiAxMnB4IDE2cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIG1hcmdpbjogMTZweCAwO1xyXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2QzMmYyZjtcclxufVxyXG5cclxuLmZvcm0tYWN0aW9ucyB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLmJ0bi0tbG9hZGluZyB7XHJcbiAgb3BhY2l0eTogMC43O1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbi5sb2FkaW5nLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuYnV0dG9uOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjc7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBjb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2JhY2tcIj5cclxuICAgICAgICA8YSBocmVmPVwiI1wiIEBjbGljay5wcmV2ZW50PVwicHJldmlvdXNTdGVwXCI+XHJcbiAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNS40MSAxNi4wOUwxMC44MyAxMS41TDE1LjQxIDYuOTFMMTQgNS41TDggMTEuNUwxNCAxNy41TDE1LjQxIDE2LjA5WlwiIGZpbGw9XCIjMDA1MTkxXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICBWb3JpZ2VcclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fY29sdW1uc1wiPlxyXG4gICAgICAgIDxoMj5XZSBoZWJiZW4gbm9nIGVlbiBwYWFyIGdlZ2V2ZW5zIHZhbiBqZSBub2RpZzwvaDI+XHJcblxyXG4gICAgICAgIDwhLS0gU0FWRSBFUlJPUiBNRVNTQUdFIC0tPlxyXG4gICAgICAgIDxkaXYgdi1pZj1cInNhdmVFcnJvclwiIGNsYXNzPVwiZm9ybWtpdC1tZXNzYWdlIGVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgIHt7IHNhdmVFcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPEZvcm1LaXQgOmFjdGlvbnM9XCJmYWxzZVwiIHR5cGU9XCJmb3JtXCIgQHN1Ym1pdD1cIm5leHRTdGVwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWtpdC1vdXRlci0tc2luZ2xlLXJvd1wiPlxyXG4gICAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5pbml0aWFsc1wiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlZvb3JsZXR0ZXJzXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpbml0aWFsc1wiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWRcIi8+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLm1pZGRsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJUdXNzZW52b2Vnc2VsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJtaWRkbGVOYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJhcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuc3VybmFtZVwiXHJcbiAgICAgICAgICAgICAgaGVscD1cIlpvcmcgZGF0IGplIGFjaHRlcm5hYW0gb3ZlcmVlbiBrb210IG1ldCBqZSBiYW5rcmVrZW5pbmcuXCJcclxuICAgICAgICAgICAgICBsYWJlbD1cIkFjaHRlcm5hYW1cIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJzdXJuYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZFwiLz5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5nZW5kZXJcIlxyXG4gICAgICAgICAgICAgIDpvcHRpb25zPVwiW1xyXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdNQUxFJywgbGFiZWw6ICdNYW4nIH0sXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ0ZFTUFMRScsIGxhYmVsOiAnVnJvdXcnIH0sXHJcbiAgICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiR2VzbGFjaHRcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJnZW5kZXJcIlxyXG4gICAgICAgICAgICAgIG9wdGlvbnMtY2xhc3M9XCJmb3Jta2l0LW9wdGlvbnMtLTUwLTUwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZFwiLz5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5uYXRpb25hbGl0eVwiXHJcbiAgICAgICAgICAgICAgOm9wdGlvbnM9XCJkZXN0cnVjdHVyZUNvdW50cmllcyhjb3VudHJ5QXJyYXkpXCJcclxuICAgICAgICAgICAgICBsYWJlbD1cIk5hdGlvbmFsaXRlaXRcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJuYXRpb25hbGl0eVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cInJlcXVpcmVkXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1raXQtb3V0ZXItLXNpbmdsZS1yb3dcIj5cclxuICAgICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJhcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuemlwQ29kZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsaWRhdGlvbi1tZXNzYWdlcz1cIntcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzOiAnUG9zdGNvZGUgbW9ldCA0IG51bW1lcnMgYmV2YXR0ZW4gZ2V2b2xnZCBkb29yIDIgbGV0dGVycy4nLFxyXG4gICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlBvc3Rjb2RlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ6aXBDb2RlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZHxtYXRjaGVzOi9eWzEtOV1bMC05XXszfSA/W0EtWmEtel17Mn0kL1wiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwiY2hhbmdlQWRkcmVzc1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIkh1aXNudW1tZXJcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWR8bnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJjaGFuZ2VBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIEBrZXlkb3duPVwibnVtYmVySW5wdXRcIi8+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLm51bWJlckFkZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiVG9ldm9lZ2luZ1wiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibnVtYmVyQWRkaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIi8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3Jta2l0LW91dGVyLS1zaW5nbGUtcm93XCI+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLnN0cmVldFwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlN0cmFhdG5hYW1cIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInN0cmVldFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWRcIi8+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmNpdHlcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJXb29ucGxhYXRzXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJjaXR5XCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cInBob25lTnVtYmVyXCJcclxuICAgICAgICAgICAgICA6Y2xhc3Nlcz1cIntcclxuICAgICAgICAgICAgICAgIG91dGVyOiAnZm9ybWtpdC0tcGhvbmUtc3VmZml4J1xyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwieyBtYXRjaGVzOiAnVGVsZWZvb25udW1tZXIgbW9ldCBpbiBoZXQgZm9ybWFhdCArMzEgKDApNiAxMjM0NTY3OCB6aWpuLicsIH1cIlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVGVsZWZvb25udW1tZXJcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJmaWVsZF8xXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZHxtYXRjaGVzOi9eWzAtOV17OH0kL1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPEZvcm1LaXQgdHlwZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxGb3JtS2l0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmVtYWlsXCJcclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiRS1tYWlsYWRyZXNcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWR8ZW1haWxcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgICAgOnZhbGlkYXRpb24tbWVzc2FnZXM9XCJ7XHJcbiAgICAgICAgICAgICAgICBjb25maXJtOiAnSGV0IGUtbWFpbGFkcmVzIGtvbXQgbmlldCBvdmVyZWVuLiBUeXAgaGV0IG5vZ21hYWxzIGluLicsXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJub25lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiR3JhYWcgdHlwZW4gZW4gbmlldCBrb3Bpw6tyZW4gZW4gcGxha2tlbi5cIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJUeXAgaGllciBub2dtYWFscyBqZSBlLW1haWxhZHJlcyBpblwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxfY29uZmlybVwiXHJcbiAgICAgICAgICAgICAgICBvbnBhc3RlPVwicmV0dXJuIGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uPVwicmVxdWlyZWR8Y29uZmlybTplbWFpbFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L0Zvcm1LaXQ+XHJcblxyXG4gICAgICAgICAgPEZvcm1LaXRcclxuICAgICAgICAgICAgICB2LWlmPVwic2hvd1ByaXZhY3lDaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cInByaXZhY3lBY2NlcHRlZFwiXHJcbiAgICAgICAgICAgICAgOnZhbGlkYXRpb24tbWVzc2FnZXM9XCJ7IGFjY2VwdGVkOiAnSmUgbW9ldCBha2tvb3JkIGdhYW4gbWV0IGhldCBwcml2YWN5YmVsZWlkIG9tIGRvb3IgdGUgZ2FhbicgfVwiXHJcbiAgICAgICAgICAgICAgbmFtZT1cInByaXZhY3lfcGVyc29uYWxcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbj1cImFjY2VwdGVkXCJcclxuICAgICAgICAgICAgICBpbm5lci1jbGFzcz1cImZvcm1raXQtY2hlY2tib3gtb3ZlcnJpZGVcIlxyXG4gICAgICAgICAgICAgIG91dGVyLWNsYXNzPVwiZm9ybWtpdC0tY2hlY2tib3hcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8dGVtcGxhdGUgI2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybWtpdC1sYWJlbFwiPklrIGhlYiBoZXQgPGEgY2xhc3M9XCJmb3Jta2l0LWxpbmtcIiBocmVmPVwiaHR0cHM6Ly93d3cudGFmLm5sL2FsZ2VtZWVuL3ByaXZhY3ktc3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCI+cHJpdmFjeSBiZWxlaWQ8L2E+IGdlbGV6ZW4sIGJlZ3JlcGVuIGVuIGdhIGFra29vcmQuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgPC9Gb3JtS2l0PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXJvd1wiIHN0eWxlPVwibWFyZ2luLXRvcDogMjBweDtcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwiVm9yaWdlIHN0YXBcIiBjbGFzcz1cImJ0biBidG4tLWJhY2tcIiBAY2xpY2sucHJldmVudD1cInByZXZpb3VzU3RlcFwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHNyYz1cIkAvaW1nL2xlZnQtYXJyb3cuc3ZnXCIgYWx0PVwiVm9yaWdlIHN0YXBcIj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8IS0tIExPQURJTkcvU1VCTUlUIEJVVFRPTiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwieyAnYnRuLS1sb2FkaW5nJzogaXNMb2FkaW5nIH1cIlxyXG4gICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFpc0xvYWRpbmdcIj5Wb2xnZW5kZTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L0Zvcm1LaXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IGpzb24gZnJvbSAnQC9qc29uL25hdGlvbmFsaXRlaXRlbi5qc29uJztcclxuaW1wb3J0IHttYXBTdG9yZXN9IGZyb20gJ3BpbmlhJztcclxuaW1wb3J0IHt1c2VBcHBsaWNhdGlvblN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2FwcGxpY2F0aW9uU3RvcmUnO1xyXG5pbXBvcnQge3VzZURhdGFTdG9yZX0gZnJvbSAnQC9qcy9zdG9yZS9kYXRhU3RvcmUnO1xyXG5pbXBvcnQgSW5zdXJhbmNlU2VydmljZSBmcm9tICdAL2pzL3NlcnZpY2UvSW5zdXJhbmNlU2VydmljZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ1BlcnNvbmFsRGF0YVZpZXcnLFxyXG4gIGRhdGEoKVxyXG4gIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvdW50cmllczoganNvbixcclxuICAgICAgYWRkcmVzczogbnVsbCxcclxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yTWVzc2FnZTogJycsXHJcbiAgICAgIHNob3dQcml2YWN5Q2hlY2tib3g6IGZhbHNlLFxyXG4gICAgICBwcml2YWN5QWNjZXB0ZWQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdG9yZXModXNlQXBwbGljYXRpb25TdG9yZSksXHJcbiAgICAuLi5tYXBTdG9yZXModXNlRGF0YVN0b3JlKSxcclxuICAgIGNvdW50cnlBcnJheSgpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvdW50cmllcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgcGhvbmVOdW1iZXI6IHtcclxuICAgICAgZ2V0KClcclxuICAgICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5waG9uZU51bWJlcj8ucmVwbGFjZSgnMDAzMTYnLCAnJykgPz8gJyc7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldCh2YWx1ZSlcclxuICAgICAge1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLnBob25lTnVtYmVyID0gYDAwMzE2JHt2YWx1ZX1gO1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIGFzeW5jIG5leHRTdGVwKClcclxuICAgIHtcclxuICAgICAgdGhpcy5jbGVhclNhdmVFcnJvcigpO1xyXG5cclxuICAgICAgLy8gSWYgdGhlIHByaXZhY3kgY2hlY2tib3ggd2FzIHNob3duIGFuZCBhY2NlcHRlZCwgdXBkYXRlIHRoZSBzdG9yZSBhbmQgbG9jYWxTdG9yYWdlXHJcbiAgICAgIGlmICh0aGlzLnNob3dQcml2YWN5Q2hlY2tib3ggJiYgdGhpcy5wcml2YWN5QWNjZXB0ZWQpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJpdmFjeVBvbGljeUFjY2VwdGVkJywgJ3RydWUnKTtcclxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuYWNjZXB0ZWRUZXJtcyA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goe1xyXG4gICAgICAgICdldmVudCc6ICdzdGVwMTJfcGVyc29uYWxfZGV0YWlscydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBTYXZlIGRhdGEgYmVmb3JlIHByb2NlZWRpbmdcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNhdmVPclVwZGF0ZUFwcGxpY2F0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG5cclxuICAgICAgICAvLyBTdWNjZXNzIC0gcHJvY2VlZCB0byBuZXh0IHN0ZXBcclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMy9maW5hbC1vdmVydmlldyd9KTtcclxuXHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGFwcGxpY2F0aW9uIGRhdGE6JywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUVycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNhdmVFcnJvck1lc3NhZ2UgPSBlcnJvci5yZXNwb25zZT8uZGF0YT8ubWVzc2FnZSB8fCAnRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiBiaWogaGV0IG9wc2xhYW4gdmFuIGplIGdlZ2V2ZW5zLiBDb250cm9sZWVyIGplIGludGVybmV0dmVyYmluZGluZyBlbiBwcm9iZWVyIGhldCBvcG5pZXV3Lic7XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBjbGVhclNhdmVFcnJvcigpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuc2F2ZUVycm9yID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2F2ZUVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgfSxcclxuXHJcbiAgICBjaGFuZ2VBZGRyZXNzKClcclxuICAgIHtcclxuICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLnppcENvZGUgJiYgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIubnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5sb29rdXBBZGRyZXNzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgbnVtYmVySW5wdXQoZXZlbnQpXHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoO1xyXG5cclxuICAgICAgaWYgKFs4LCA5LCAyNywgMTNdLmluY2x1ZGVzKGtleUNvZGUpIHx8XHJcbiAgICAgICAgICAoa2V5Q29kZSA9PT0gNjUgJiYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkpIHx8XHJcbiAgICAgICAgICAoa2V5Q29kZSA9PT0gNjcgJiYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkpIHx8XHJcbiAgICAgICAgICAoa2V5Q29kZSA9PT0gODYgJiYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkpIHx8XHJcbiAgICAgICAgICAoa2V5Q29kZSA9PT0gODggJiYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkpIHx8XHJcbiAgICAgICAgICAoa2V5Q29kZSA+PSAzNSAmJiBrZXlDb2RlIDw9IDM5KSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKChrZXlDb2RlIDwgNDggfHwga2V5Q29kZSA+IDU3KSAmJiAoa2V5Q29kZSA8IDk2IHx8IGtleUNvZGUgPiAxMDUpKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBsb29rdXBBZGRyZXNzKClcclxuICAgIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLmFkZHJlc3MgPSBhd2FpdCBJbnN1cmFuY2VTZXJ2aWNlLmxvb2t1cEFkZHJlc3ModGhpcy5hcHBsaWNhdGlvblN0b3JlLmdldExvb2t1cEFkZHJlc3NSZXF1ZXN0KTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWRkcmVzcz8uc3RyZWV0ICYmIHRoaXMuYWRkcmVzcz8uY2l0eSkge1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLnN0cmVldCA9IHRoaXMuYWRkcmVzcy5zdHJlZXQ7XHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLmluc3VyZXIuY2l0eSA9IHRoaXMuYWRkcmVzcy5jaXR5O1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmNvdW50cnkgPSAnTkwnO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIHByZXZpb3VzU3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC0zL3J1bm5pbmctaW5zdXJhbmNlJ30pO1xyXG4gICAgfSxcclxuXHJcbiAgICBkZXN0cnVjdHVyZUNvdW50cmllcygpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvdW50cnlBcnJheS5tYXAoKGNvdW50cnkpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdmFsdWU6IGNvdW50cnkuY291bnRyeUNvZGUsXHJcbiAgICAgICAgICBsYWJlbDogY291bnRyeS5kaXNwbGF5TmFtZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtb3VudGVkKClcclxuICB7XHJcbiAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuaW5zdXJlci5uYXRpb25hbGl0eSA9ICdOTCc7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHVzZXIgc2tpcHBlZCB0aGUgZW1haWwvb2ZmZXIgc3RlcCBpbiB0aGUgcHJldmlvdXMgdmlld1xyXG4gICAgdGhpcy5zaG93UHJpdmFjeUNoZWNrYm94ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hhc1N1Ym1pdHRlZE9mZmVyJykgIT09ICd0cnVlJztcclxuXHJcbiAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgbmVlZGVkLCBzZXQgaXRzIGluaXRpYWwgc3RhdGUgZnJvbSBsb2NhbFN0b3JhZ2VcclxuICAgIGlmICh0aGlzLnNob3dQcml2YWN5Q2hlY2tib3gpIHtcclxuICAgICAgdGhpcy5wcml2YWN5QWNjZXB0ZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJpdmFjeVBvbGljeUFjY2VwdGVkJykgPT09ICd0cnVlJztcclxuICAgIH1cclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5lcnJvci1tZXNzYWdlIHtcclxuICBjb2xvcjogI2QzMmYyZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmVlO1xyXG4gIHBhZGRpbmc6IDEycHggMTZweDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgbWFyZ2luOiAxNnB4IDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZDMyZjJmO1xyXG59XHJcblxyXG4uZm9ybS1hY3Rpb25zIHtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG59XHJcblxyXG4uYnRuLS1sb2FkaW5nIHtcclxuICBvcGFjaXR5OiAwLjc7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLmxvYWRpbmctY29udGFpbmVyIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG46ZGVlcCguZm9ybWtpdC1jaGVja2JveC1vdmVycmlkZSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmJ1dHRvbjpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC43O1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWQgY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19iYWNrXCI+XHJcbiAgICAgICAgPGEgaHJlZj1cIiNcIiBAY2xpY2sucHJldmVudD1cInByZXZpb3VzU3RlcFwiPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuNDEgMTYuMDlMMTAuODMgMTEuNUwxNS40MSA2LjkxTDE0IDUuNUw4IDExLjVMMTQgMTcuNUwxNS40MSAxNi4wOVpcIiBmaWxsPVwiIzAwNTE5MVwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgVm9yaWdlXHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2NvbHVtbnNcIj5cclxuICAgICAgICA8aDI+VnJhYWcgamUgdmVyemVrZXJpbmcgYWFuPC9oMj5cclxuICAgICAgICA8cCB2LWlmPVwiZXJyb3JcIiBjbGFzcz1cImZvcm1raXQtbWVzc2FnZSBlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICBFciBpcyBpZXRzIGZvdXQgZ2VnYWFuIG1ldCBoZXQgYmVyZWtlbmVuIHZhbiBkZSBwcmVtaWUsIHByb2JlZXIgaGV0IGxhdGVyIG5vZ21hYWxzLlxyXG4gICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgPGRpdiB2LWlmPVwic2F2ZUVycm9yXCIgY2xhc3M9XCJmb3Jta2l0LW1lc3NhZ2UgZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAgICAgICAge3sgc2F2ZUVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgIFZyYWFnIGplIEFPViB6b25kZXIgem9yZ2VuIGFhbi4gSmUgaGVidCBhbHRpamQgMzAgZGFnZW4gYmVkZW5rdGlqZC5cclxuICAgICAgICAgIERhYXJuYSBpcyBkZSB2ZXJ6ZWtlcmluZyBuYSBlZW4gamFhciBtYWFuZGVsaWprcyBvcHplZ2JhYXIuXHJcbiAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmluYWwtb3ZlcnZpZXdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaW5hbC1vdmVydmlld19faGVhZGluZ1wiPlxyXG4gICAgICAgICAgICA8aDM+Sm91dyBBT1Y8L2gzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmluYWwtb3ZlcnZpZXdfX2xpbmtzXCI+XHJcbiAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHYtaWY9XCJkb2N1bWVudFB2dyAhPT0gZmFsc2VcIiA6aHJlZj1cImRvY3VtZW50UHZ3XCI+UG9saXN2b29yd2FhcmRlbjwvYT5cclxuICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgdi1pZj1cImRvY3VtZW50UHZ3ID09PSBmYWxzZVwiIGhyZWY9XCIjXCI+UG9saXN2b29yd2FhcmRlbjwvYT5cclxuICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgdi1pZj1cImRvY3VtZW50Q2JlbyAhPT0gZmFsc2VcIiA6aHJlZj1cImRvY3VtZW50Q2Jlb1wiPkNvbnN1bWVudGVuYnJvY2h1cmU8L2E+XHJcbiAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHYtaWY9XCJkb2N1bWVudENiZW8gPT09IGZhbHNlXCIgaHJlZj1cIiNcIj5Db25zdW1lbnRlbmJyb2NodXJlPC9hPlxyXG4gICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiB2LWlmPVwiZG9jdW1lbnREdmQgIT09IGZhbHNlXCIgOmhyZWY9XCJkb2N1bWVudER2ZFwiPlZlcmdlbGlqa2luZ3NrYWFydDwvYT5cclxuICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgdi1pZj1cImRvY3VtZW50RHZkID09PSBmYWxzZVwiIGhyZWY9XCIjXCI+VmVyZ2VsaWpraW5nc2thYXJ0PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmluYWwtb3ZlcnZpZXdfX2luc3VyYW5jZVwiPlxyXG4gICAgICAgICAgICA8aDQ+UHJlbWllPC9oND5cclxuICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAge3sgZm9ybWF0Q3VycmVuY3koYXBwbGljYXRpb25TdG9yZS5wcmVtaXVtVGVybXM/LlswXT8uYW1vdW50KSB9fTxzdWI+L21uZDwvc3ViPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICBWb29yIGhldCBhYW52cmFnZW4gdmFuIGRlIHZlcnpla2VyaW5nIHZpYSBUQUYgT25saW5lIGJldGFhbHQgdSBlZW5tYWxpZyDigqwgMCwwMSB2aWEgaURlYWwuIERhYXJuYWFzdCB3b3JkdCBlciDigqwgMzAgcG9saXNrb3N0ZW4gZG9vciBUQUYgQi5WLiBnZcOvbmNhc3NlZXJkIGJpaiBkZSBlZXJzdGUgcHJlbWllLlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPGgzPkRlemUgQU9WIHZyYWFnIGplIGFhbjwvaDM+XHJcbiAgICAgICAgICA8cD5BbHMgamUgYWFudnJhYWcgZ2VhY2NlcHRlZXJkIHdvcmR0LCBzdGFydCBkZSBkZWtraW5nIG9wIHt7IHN0YXJ0RGF0ZSB9fS4gQ29udHJvbGVlciBqZSBrZXV6ZXMgbm9nIGV2ZW4uXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImJ0biBidG4tLWJsdWUgYnRuLS1naG9zdFwiIEBjbGljaz1cIm9wZW4gPSB0cnVlXCI+QmVraWprIGRla2tpbmcgZW4ga2V1emVzPC9hPlxyXG4gICAgICAgICAgPHA+PC9wPlxyXG4gICAgICAgICAgPGhyPlxyXG4gICAgICAgICAgPGg0PlZvb3JkZWxlbiB2YW4gam91dyBUQUYgR29lZEdlemVrZXJkIEFPVjwvaDQ+XHJcbiAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT5WZXJ6ZWtlcmQgdmFuIGhldCBkb29yYmV0YWxlbiB2YW4gamUgbWFhbmRsYXN0ZW48L2xpPlxyXG4gICAgICAgICAgICA8bGk+UGVyc29vbmxpamtlIGJlZ2VsZWlkaW5nIGJpaiBhcmJlaWRzb25nZXNjaGlrdGhlaWQ8L2xpPlxyXG4gICAgICAgICAgICA8bGk+MjAlIGtvcnRpbmcgb3AgamUgcHJlbWllIGluIGhldCBlZXJzdGUgamFhcjwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5HZWJydWlrIG1ha2VuIHZhbiBkZSBkaWVuc3R2ZXJsZW5pbmcgdmFuIFJveWFsIERvY3RvcnM8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aDMgdi1pZj1cIiFlcnJvclwiPklrIHZlcmtsYWFyIGRhdCBpazo8L2gzPlxyXG4gICAgICAgIDxvbCB2LWlmPVwiIWVycm9yXCIgdHlwZT1cIjFcIj5cclxuICAgICAgICAgIDxsaT5BbGxlIHZyYWdlbiBuYWFyIHdhYXJoZWlkIGVuIHZvbGxlZGlnIGhlYiBiZWFudHdvb3JkLjwvbGk+XHJcbiAgICAgICAgICA8bGk+RXJtZWUgYWtrb29yZCBnYSBkYXQgVEFGIG1pam4gcGVyc29vbnNnZWdldmVucyB2ZXJ3ZXJrdCB2b29yIGRlIGJlb29yZGVsaW5nIHZhbiBkZSBhYW52cmFhZy48L2xpPlxyXG4gICAgICAgICAgPGxpPktlbm5pcyBnZW5vbWVuIGhlYiB2YW4gaGV0IDxhIGhyZWY9XCJodHRwczovL3d3dy50YWYubmwvYWxnZW1lZW4vcHJpdmFjeS1zdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIj5wcml2YWN5IHN0YXRlbWVudDwvYT4gdmFuIFRBRi48L2xpPlxyXG4gICAgICAgICAgPGxpPkFra29vcmQgYmVuIGRhdCBoZXQgcG9saXNibGFkIHBlciBlLW1haWwgbmFhciBtaWogdmVyc3R1dXJkIHdvcmR0LjwvbGk+XHJcbiAgICAgICAgICA8bGk+RXJtZWUgYmVrZW5kIGJlbiBkYXQgaGV0IG5pZXQgaXMgdG9lZ2VzdGFhbiBvbSBtZWVyZGVyZSBwb2xpc3NlbiB2b29yIGhldCByaXNpY28gdmFuIGFyYmVpZHNvbmdlc2NoaWt0aGVpZCBhZiB0ZSBzbHVpdGVuLiBBbHMgZXIgbWVlcmRlcmUgcG9saXNzZW4gemlqbiBhZmdlc2xvdGVuLCBrYW4gZWVuIGV2ZW50dWVsZSBjbGFpbSBzbGVjaHRzIG9wIMOpw6luIHBvbGlzIHdvcmRlbiBpbmdlZGllbmQuIERlIG92ZXJpZ2UgcG9saXNzZW4gd29yZGVuIGRhbiBiZcOraW5kaWdkIHpvbmRlciByZWNodCBvcCB0ZXJ1Z2dhdmUgdmFuIGRlIHByZW1pZS48L2xpPlxyXG4gICAgICAgICAgPGxpPkRlIDxhIHRhcmdldD1cIl9ibGFua1wiIHYtaWY9XCJkb2N1bWVudFB2dyAhPT0gZmFsc2VcIiA6aHJlZj1cImRvY3VtZW50UHZ3XCI+cG9saXN2b29yd2FhcmRlbjwvYT48c3BhbiB2LWlmPVwiZG9jdW1lbnRQdncgPT09IGZhbHNlXCI+cG9saXN2b29yd2FhcmRlbjwvc3Bhbj4gaGViIGdlbGV6ZW4gZW4gZGV6ZSBiZWdyaWpwIGVuIGFjY2VwdGVlci48L2xpPlxyXG4gICAgICAgICAgPGxpPlRvZXN0ZW1taW5nIGdlZWYgYWFuIFRBRiBCLlYuIGdldmVzdGlnZCBvcCBkZSBWZXN0ZGlqayA2NiBpbiBFaW5kaG92ZW4sIGluY2Fzc2FudElEIE5MODBaWloyODA4MTg2OTAwMDAsIG9tIGRvb3Jsb3BlbmQgZWVuIGJlZHJhZyBhZiB0ZSBzY2hyaWp2ZW4gdmFuIG9uZGVyc3RhYW5kIHJla2VuaW5nbnVtbWVyIHZpYSBpbmNhc3NvLW9wZHJhY2h0ZW4uIEFscyBpayBoZXQgbmlldCBlZW5zIGJlbiBtZXQgZGUgYWZzY2hyaWp2aW5nLCBrYW4gaWsgZGV6ZSBiaW5uZW4gOCB3ZWtlbiBuYSBhZnNjaHJpanZpbmcgdGVydWdib2VrZW4gZG9vciBjb250YWN0IG9wIHRlIG5lbWVuIG1ldCBtaWpuIGJhbmsuPC9saT5cclxuICAgICAgICA8L29sPlxyXG5cclxuICAgICAgICA8Rm9ybUtpdCB2LWlmPVwiIWVycm9yXCIgdHlwZT1cImZvcm1cIiBAc3VibWl0PVwibmV4dFN0ZXBcIiA6YWN0aW9ucz1cImZhbHNlXCIgOmluY29tcGxldGUtbWVzc2FnZT1cImZhbHNlXCI+XHJcbiAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgb3V0ZXItY2xhc3M9XCJmb3Jta2l0LS1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJJayBnYSBha2tvb3JkXCJcclxuICAgICAgICAgICAgICBoZWxwPVwiSWsgaGViIGRlIHNsb3R2ZXJrbGFyaW5nIGdlbGV6ZW4gZW4gZ2EgaGllcm1lZSBha2tvb3JkXCJcclxuICAgICAgICAgICAgICBuYW1lPVwidGVybXNcIlxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJhcHBsaWNhdGlvblN0b3JlLmFjY2VwdGVkVGVybXNcIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJhY2NlcHRlZFwiXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbi12aXNpYmlsaXR5PVwiZGlydHlcIlxyXG4gICAgICAgICAgICAgIDp2YWxpZGF0aW9uLW1lc3NhZ2VzPVwie1xyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWQ6ICdIZXQgYWNjZXB0ZXJlbiB2YW4gZGUgc2xvdHZlcmtsYXJpbmcgaXMgdmVycGxpY2h0JyxcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8Rm9ybUtpdFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBuYW1lPVwiaWJhblwiXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uaWJhblwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJHZWVmIGhpZXJvbmRlciBhYW4gdmFuIHdlbGsgcmVrZW5pbmdudW1tZXIgVEFGIGRlIHByZW1pZSBtYWcgaW5jYXNzZXJlbi5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSUJBTlwiXHJcbiAgICAgICAgICAgICAgaGVscD1cIlRBRiBpbmNhc3NlZXJ0IGRlIHByZW1pZSBvbmRlciBpbmNhc3NhbnRJRCA6IE5MODBaWloyODA4MTg2OTAwMDBcIlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb249XCJyZXF1aXJlZHxpYmFuVmFsaWRhdG9yXCJcclxuICAgICAgICAgICAgICA6dmFsaWRhdGlvbi1tZXNzYWdlcz1cIntcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnSmUgcmVrZW5pbmdudW1tZXIgaXMgdmVycGxpY2h0JyxcclxuICAgICAgICAgICAgICAgIGliYW5WYWxpZGF0b3I6ICdKZSBoZWJ0IGdlZW4gZ2VsZGlnZSBJQkFOIGluZ2V2dWxkJyxcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtcm93XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cIlZvcmlnZSBzdGFwXCIgY2xhc3M9XCJidG4gYnRuLS1iYWNrXCIgQGNsaWNrLnByZXZlbnQ9XCJwcmV2aW91c1N0ZXBcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPGltZyB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiBzcmM9XCJAL2ltZy9sZWZ0LWFycm93LnN2Z1wiIGFsdD1cIlZvcmlnZSBzdGFwXCI+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMT0FESU5HL1NVQk1JVCBCVVRUT04gLS0+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgJ2J0bi0tbG9hZGluZyc6IGlzTG9hZGluZyB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCIhaXNMb2FkaW5nXCI+Vm9sZ2VuZGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRlci1idXR0b25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0Zvcm1LaXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8IS0tIE1vZGFsIHN0YXlzIHRoZSBzYW1lIC0tPlxyXG4gIDxUZWxlcG9ydCB0bz1cImJvZHlcIj5cclxuICAgIDxkaXYgdi1pZj1cIm9wZW5cIiBjbGFzcz1cIm92ZXJsYXktLWJhY2tncm91bmRcIiBAY2xpY2s9XCJvcGVuID0gZmFsc2VcIj48L2Rpdj5cclxuICAgIDxkaXYgdi1pZj1cIm9wZW5cIiBjbGFzcz1cIm92ZXJsYXlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlfX2NvbnRlbnRcIj5cclxuICAgICAgICA8YnV0dG9uIEBjbGljaz1cIm9wZW4gPSBmYWxzZVwiIGNsYXNzPVwib3ZlcmxheV9fY2xvc2VcIj5TbHVpdGVuPC9idXR0b24+XHJcbiAgICAgICAgPGgyPkpvdXcga2V1emVzIGVuIGRla2tpbmc8L2gyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5KZSBiZXJvZXA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgYXBwbGljYXRpb25TdG9yZS5qb2Iub2NjdXBhdGlvbi5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+SmUgbGVlZnRpamQ8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgZm9ybWF0VG9BZ2UoYXBwbGljYXRpb25TdG9yZS5pbnN1cmVyLmRhdGVPZkJpcnRoKSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS10aXRsZVwiPlZlcnpla2VyZCBtYWFuZGJlZHJhZzwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICDigqx7eyBhcHBsaWNhdGlvblN0b3JlLnN1bUFzc3VyZWQgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5VaXRrZXJpbmdzZHV1cjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBZRUFSU18yOiAnMiBqYWFyJyxcclxuICAgICAgICAgICAgICAgICAgWUVBUlNfNTogJzUgamFhcicsXHJcbiAgICAgICAgICAgICAgICAgIElOU1VSQU5DRV9FTkRfREFURTogJ3RvdCBlaW5kZGF0dW0nLFxyXG4gICAgICAgICAgICAgICAgfVthcHBsaWNhdGlvblN0b3JlLmNsYWltRHVyYXRpb25EaXNhYmlsaXR5XVxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+RWlnZW4gcmlzaWNvcGVyaW9kZTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBEQVlTXzMwOiAnMzAgZGFnZW4nLFxyXG4gICAgICAgICAgICAgICAgICBEQVlTXzkwOiAnOTAgZGFnZW4nLFxyXG4gICAgICAgICAgICAgICAgICBEQVlTXzE4MDogJzE4MCBkYWdlbicsXHJcbiAgICAgICAgICAgICAgICAgIERBWVNfMzY1OiAnMSBqYWFyJyxcclxuICAgICAgICAgICAgICAgICAgREFZU183MzA6ICcyIGphYXInLFxyXG4gICAgICAgICAgICAgICAgfVthcHBsaWNhdGlvblN0b3JlLndhaXRpbmdQZXJpb2RdXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5Qc3ljaGlzY2hlIGtsYWNodGVuPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS12YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7IGFwcGxpY2F0aW9uU3RvcmUubWVudGFsSWxsbmVzc0luY2x1ZGVkID8gJ01lZXZlcnpla2VyZCcgOiAnTmlldCBtZWV2ZXJ6ZWtlcmQnIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXRpdGxlXCI+SW5kZXhlcmluZzwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvblN0b3JlLmluZGV4YXRpb24gPT09ICdDTEFJTV9BTkRfUE9MSUNZJyA/ICdUb2VnZXBhc3QnIDogJ05pZXQgdG9lZ2VwYXN0JyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbS10aXRsZVwiPlVpdGtlcmluZ3NncmVuczo8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWNvbmZpZ3VyYXRvcl9fZGV0YWlscy1pdGVtLXZhbHVlXCI+MjUlPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1jb25maWd1cmF0b3JfX2RldGFpbHMtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdGl0bGVcIj5CZW9vcmRlbGluZzwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctY29uZmlndXJhdG9yX19kZXRhaWxzLWl0ZW0tdmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBhcHBsaWNhdGlvblN0b3JlLmpvYi5vd25MYWJvdXIgPT09ICdZRVMnID8gJ0VpZ2VuIGJlcm9lcCcgOiAnUGFzc2VuZCBiZXJvZXAnIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5X19jb250ZW50LWJsb2NrXCI+XHJcbiAgICAgICAgICA8aDQ+V2VsIGdlZGVrdDo8YnI+PC9oND5cclxuICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpPkFyYmVpZHNvbmdlc2NoaWt0aGVpZCBhbHMgZ2V2b2xnIHZhbiBhbGxlIG9iamVjdGllZiBtZWRpc2NoIHZhc3RnZXN0ZWxkZSBvb3J6YWtlbi4gSW4gYm92ZW5zdGFhbmQgZGVra2luZ3NvdmVyemljaHQsIHppZSBqZSBvZiBqZSBwc3ljaGlzY2hlIGtsYWNodGVuIHdlbCBvZiBuaWV0IG1lZXZlcnpla2VyZCBoZWJ0LjwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5PdmVybGlqZGVuIHZhbiBkZSBwYXJ0bmVyIG9mIGtpbmQgKHRvdCBtYXhpbWFhbCAxOCBqYWFyKSBhbHMgZ2V2b2xnIHZhbiBlZW4gb25nZXZhbCAodWl0a2VyaW5nIHZhbiBkcmllIGtlZXIgaGV0IHZlcnpla2VyZCBtYWFuZGJlZHJhZykuPC9saT5cclxuICAgICAgICAgICAgPGxpPlp3YW5nZXJzY2hhcHN1aXRrZXJpbmcgKDE2IHdla2VuKSB2YW5hZiAyIGphYXIgbmEgYWZzbHVpdGVuIHZhbiBkZSB2ZXJ6ZWtlcmluZyBvZiBiaWogYWRvcHRpZSB2YW4gZWVuIGtpbmQgKHR3ZWUga2VlciB2ZXJ6ZWtlcmQgbWFhbmRiZWRyYWcpLjwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5QZXJzb29ubGlqa2UgYmVnZWxlaWRpbmcgYmlqIGFyYmVpZHNvbmdlc2NoaWt0aGVpZDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5IdWxwIHZhbiBSb3lhbCBEb2N0b3JzIGJpaiBoZXQga3JpamdlbiB2YW4gZGUgYmVzdGUgbWVkaXNjaGUgem9yZywgb29rIGFscyBqZSAobm9nKSBuaWV0IGFyYmVpZHNvbmdlc2NoaWt0IGJlbnQuPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8aDQ+TmlldCBnZWRla3Q6PGJyPjwvaDQ+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJjcm9zc2VzXCI+XHJcbiAgICAgICAgICAgIDxsaT5BcmJlaWRzb25nZXNjaGlrdGhlaWQgZG9vciBlaWdlbiBzY2h1bGQsIGRlbmsgYWFuIGFsY29ob2wtIG9mIGRydWdzbWlzYnJ1aWssIGdyb3ZlIHNjaHVsZCBlbiBvcHpldC48L2xpPlxyXG4gICAgICAgICAgICA8bGk+QXJiZWlkc29uZ2VzY2hpa3RoZWlkIHZhbiBtaW5kZXIgZGFuIDI1JTwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvVGVsZXBvcnQ+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQge21hcFN0b3Jlc30gZnJvbSAncGluaWEnO1xyXG5pbXBvcnQge3VzZUFwcGxpY2F0aW9uU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUvYXBwbGljYXRpb25TdG9yZSc7XHJcbmltcG9ydCB7dXNlS25vd2xlZGdlU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUva25vd2xlZGdlU3RvcmUnO1xyXG5pbXBvcnQge3VzZURhdGFTdG9yZX0gZnJvbSAnQC9qcy9zdG9yZS9kYXRhU3RvcmUnO1xyXG5pbXBvcnQgRG9jdW1lbnRTZXJ2aWNlIGZyb20gJ0AvanMvc2VydmljZS9Eb2N1bWVudFNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaW5hbE92ZXJ2aWV3VmlldycsXHJcbiAgZGF0YSgpXHJcbiAge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWZ2UmVzdWx0OiBbXSxcclxuICAgICAgZm9ybToge1xyXG4gICAgICAgIGliYW46ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBvcGVuOiBmYWxzZSxcclxuICAgICAgZXJyb3I6IGZhbHNlLFxyXG4gICAgICBkb2N1bWVudFB2dzogZmFsc2UsXHJcbiAgICAgIGRvY3VtZW50Q2JlbzogZmFsc2UsXHJcbiAgICAgIGRvY3VtZW50RHZkOiBmYWxzZSxcclxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yOiBmYWxzZSxcclxuICAgICAgc2F2ZUVycm9yTWVzc2FnZTogJycsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VBcHBsaWNhdGlvblN0b3JlKSxcclxuICAgIC4uLm1hcFN0b3Jlcyh1c2VLbm93bGVkZ2VTdG9yZSksXHJcbiAgICAuLi5tYXBTdG9yZXModXNlRGF0YVN0b3JlKSxcclxuICAgIHN0YXJ0RGF0ZSgpXHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmFwcGxpY2F0aW9uU3RvcmUucHJlbWl1bVRlcm1zPy5bMF0/LnN0YXJ0RGF0ZSk7XHJcbiAgICAgIHJldHVybiBgJHtkYXRlLnRvTG9jYWxlU3RyaW5nKCdubC1OTCcsIHtkYXk6ICdudW1lcmljJ30pfSAke2RhdGUudG9Mb2NhbGVTdHJpbmcoJ25sLU5MJywge21vbnRoOiAnbG9uZyd9KX0gJHtkYXRlLnRvTG9jYWxlU3RyaW5nKCdubC1OTCcsIHt5ZWFyOiAnbnVtZXJpYyd9KX1gO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICBhc3luYyBuZXh0U3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuY2xlYXJTYXZlRXJyb3IoKTtcclxuXHJcbiAgICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xyXG4gICAgICB3aW5kb3cuZGF0YUxheWVyLnB1c2goe1xyXG4gICAgICAgICdldmVudCc6ICdzdGVwMTRfY29tcGxldGUnLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIFNldCB0aGUgZm9ybSBkYXRhXHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25TdG9yZS5pYmFuID0gdGhpcy5mb3JtLmliYW47XHJcblxyXG4gICAgICAvLyBTYXZlIGRhdGEgYmVmb3JlIHByb2NlZWRpbmdcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVN0b3JlLnNhdmVPclVwZGF0ZUFwcGxpY2F0aW9uKHRoaXMuYXBwbGljYXRpb25TdG9yZS5nZXRGb3JSZXF1ZXN0KCkpO1xyXG5cclxuICAgICAgICAvLyBTdWNjZXNzIC0gcHJvY2VlZCB0byBuZXh0IHN0ZXBcclxuICAgICAgICBpZiAodGhpcy5rbm93bGVkZ2VTdG9yZS5zdGFydGVkKSB7XHJcbiAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtNC9rbm93bGVkZ2UtcmVzdWx0J30pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtNC9rbm93bGVkZ2UtaW50cm9kdWN0aW9uJ30pO1xyXG5cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgYXBwbGljYXRpb24gZGF0YTonLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy5zYXZlRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2F2ZUVycm9yTWVzc2FnZSA9IGVycm9yLnJlc3BvbnNlPy5kYXRhPy5tZXNzYWdlIHx8ICdFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIGJpaiBoZXQgb3BzbGFhbiB2YW4gamUgZ2VnZXZlbnMuIENvbnRyb2xlZXIgamUgaW50ZXJuZXR2ZXJiaW5kaW5nIGVuIHByb2JlZXIgaGV0IG9wbmlldXcuJztcclxuICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGNsZWFyU2F2ZUVycm9yKClcclxuICAgIHtcclxuICAgICAgdGhpcy5zYXZlRXJyb3IgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zYXZlRXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICB9LFxyXG5cclxuICAgIHByZXZpb3VzU3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC0zL3BlcnNvbmFsLWRhdGEnfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm1hdEN1cnJlbmN5KHZhbHVlKVxyXG4gICAge1xyXG4gICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ25sLU5MJywge1xyXG4gICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxyXG4gICAgICAgIGN1cnJlbmN5OiAnRVVSJyxcclxuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IGZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xyXG5cclxuICAgICAgcmV0dXJuIHN0cmluZ1ZhbHVlLnJlcGxhY2UoJ+KCrCcsICcnKS50cmltKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm1hdFRvQWdlKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBmcm9tID0gdmFsdWUuc3BsaXQoJy0nKTtcclxuICAgICAgY29uc3QgYmlydGhkYXRlVGltZVN0YW1wID0gbmV3IERhdGUoZnJvbVsyXSwgZnJvbVsxXSAtIDEsIGZyb21bMF0pO1xyXG4gICAgICBjb25zdCBjdXIgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb25zdCBkaWZmID0gY3VyIC0gYmlydGhkYXRlVGltZVN0YW1wO1xyXG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmIC8gMzE1NTc2MDAwMDApO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICBhc3luYyBtb3VudGVkKClcclxuICB7XHJcbiAgICB0aGlzLmRvY3VtZW50UHZ3ID0gYXdhaXQgRG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KCdwdncnKTtcclxuICAgIHRoaXMuZG9jdW1lbnRDYmVvID0gYXdhaXQgRG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KCdjYmVvJyk7XHJcbiAgICB0aGlzLmRvY3VtZW50RHZkID0gYXdhaXQgRG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50KCdkdmQnKTtcclxuXHJcbiAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcclxuICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh7XHJcbiAgICAgICdldmVudCc6ICdzdGVwMTNfb3ZlcnZpZXcnLFxyXG4gICAgfSk7XHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG4uZXJyb3ItbWVzc2FnZSB7XHJcbiAgY29sb3I6ICNkMzJmMmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlZTtcclxuICBwYWRkaW5nOiAxMnB4IDE2cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIG1hcmdpbjogMTZweCAwO1xyXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2QzMmYyZjtcclxufVxyXG5cclxuLmZvcm0tYWN0aW9ucyB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLmJ0bi0tbG9hZGluZyB7XHJcbiAgb3BhY2l0eTogMC43O1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbi5sb2FkaW5nLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuYnV0dG9uOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjc7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBjb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2NvbHVtbnNcIj5cclxuICAgICAgICA8ZGl2IHYtaWY9XCJrbm93bGVkZ2VTdG9yZS5zdWNjZWVkZWRcIj5cclxuICAgICAgICAgIDxoMj5HZWZlbGljaXRlZXJkITwvaDI+XHJcbiAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgSmUgaGVidCB2b2xkb2VuZGUga2VubmlzIG9tIHplbGYgamUgVEFGIEdvZWRHZXpla2VyZCBBT1YgYWFuIHRlIHZyYWdlbi5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDxGb3JtS2l0IHR5cGU9XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmluYWwtb3ZlcnZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgc3VibWl0LWxhYmVsPVwiVnJhYWcgYWFuXCJcclxuICAgICAgICAgICAgICAgICAgIEBzdWJtaXQ9XCJpbml0aWF0ZVBheW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgOmFjdGlvbnM9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8aDQ+VnJhYWcgbnUgYWFuPC9oND5cclxuICAgICAgICAgICAgPHA+RGl0IGdhYXQgZWVudm91ZGlnIGVuIHNuZWwgZG9vciBoZXQgYmV0YWxlbiB2YW4gMSBjZW50IHZpYSBpREVBTC4gSGllcm1lZSB2ZXJpZmnDq3JlbiB3aWogZGF0IGplIGVlbiBnZWxkaWcgTmVkZXJsYW5kcyByZWtlbmluZ251bW1lciBoZWJ0IG9wZ2VnZXZlbiBlbiBkYXQgZGl0IHJla2VuaW5nbnVtbWVyIG9wIGpvdXcgbmFhbSBzdGFhdC4gWm9kcmEgZGUgYmV0YWxpbmcgc3VjY2Vzdm9sIGlzIGFmZ2Vyb25kLCB3b3JkdCBkZSB2ZXJ6ZWtlcmluZyBhdXRvbWF0aXNjaCBhYW5nZXZyYWFnZC48L3A+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0xvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCIhaXNMb2FkaW5nXCI+VnJhYWcgYWFuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9Gb3JtS2l0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgdi1pZj1cIiFrbm93bGVkZ2VTdG9yZS5zdWNjZWVkZWRcIj5cclxuICAgICAgICAgIDxoMj5IZWxhYXPigKY8L2gyPlxyXG4gICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgIEplIGhlYnQgdGV2ZWVsIHZyYWdlbiBmb3V0IGJlYW50d29vcmQuIEhldCBpcyBuaWV0IG1vZ2VsaWprIG9tIGRlIHZlcnpla2VyaW5nIHplbGYgYWFuIHRlIHZyYWdlbi4gRWVuXHJcbiAgICAgICAgICAgIGZpbmFuY2llZWwgYWR2aXNldXIgaGVscHQgamUgZ3JhYWcgdmVyZGVyLiBEb29yIG9wIG9uZGVyc3RhYW5kZSBidXR0b24gdGUga2xpa2tlbiBnYSBqZSBlcm1lZSBha2tvb3JkIGRhdCB3ZVxyXG4gICAgICAgICAgICBqZSBnZWdldmVucyBkb29yc3R1cmVuIG5hYXIgZWVuIGFkdmlzZXVyLiBEZXplIG5lZW10IGRhbiB6byBzbmVsIG1vZ2VsaWprIGNvbnRhY3QgbWUgamUgb3Agb20gamUgYWFudnJhYWdcclxuICAgICAgICAgICAgdmVyZGVyIGluIG9yZGUgdGUgbWFrZW4uXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImJ0blwiIGhyZWY9XCIjXCIgQGNsaWNrLnByZXZlbnQ9XCJmYWlsU3RlcFwiPkxhYXQgZWVuIGFkdmlzZXVyIGNvbnRhY3QgbWV0IG1paiBvcG5lbWVuPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB7bWFwU3RvcmVzfSBmcm9tICdwaW5pYSc7XHJcbmltcG9ydCB7dXNlS25vd2xlZGdlU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUva25vd2xlZGdlU3RvcmUnO1xyXG5pbXBvcnQge3VzZUFwcGxpY2F0aW9uU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUvYXBwbGljYXRpb25TdG9yZSc7XHJcbmltcG9ydCB7dXNlRGF0YVN0b3JlfSBmcm9tICdAL2pzL3N0b3JlL2RhdGFTdG9yZSc7XHJcbmltcG9ydCBJbnN1cmFuY2VTZXJ2aWNlIGZyb20gJ0AvanMvc2VydmljZS9JbnN1cmFuY2VTZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnS25vd2xlZGdlUmVzdWx0VmlldycsXHJcbiAgZGF0YSgpXHJcbiAge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXNzdWVyczogW10sXHJcbiAgICAgIGZvcm06IHtcclxuICAgICAgICBpc3N1ZXI6ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBlbWFpbFNlbnQ6IGZhbHNlLFxyXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICBlcnJvck1lc3NhZ2U6ICcnLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdG9yZXModXNlS25vd2xlZGdlU3RvcmUpLFxyXG4gICAgLi4ubWFwU3RvcmVzKHVzZUFwcGxpY2F0aW9uU3RvcmUpLFxyXG4gICAgLi4ubWFwU3RvcmVzKHVzZURhdGFTdG9yZSksXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBhc3luYyBmYWlsU3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC02L2ZhaWwtc2NyZWVuJ30pO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBpbml0aWF0ZVBheW1lbnQoKVxyXG4gICAge1xyXG4gICAgICAvLyBDbGVhciBwcmV2aW91cyBlcnJvciBtZXNzYWdlXHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcblxyXG4gICAgICAvLyBTZXQgbG9hZGluZyBzdGF0ZVxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHBheW1lbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMuZGF0YVN0b3JlLmNyZWF0ZVBheW1lbnQoKTtcclxuXHJcbiAgICAgICAgLy8gU2VuZCBrbm93bGVkZ2UgdGVzdCBlbWFpbCBiZWZvcmUgcmVkaXJlY3RpbmdcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5lbWFpbFNlbnQgPSBhd2FpdCB0aGlzLnNlbmRLbm93bGVkZ2VUZXN0RW1haWwoKTtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignS25vd2xlZGdlIHRlc3QgZW1haWwgc2VudCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyBrbm93bGVkZ2UgdGVzdCBlbWFpbDonLCBlcnJvcik7XHJcbiAgICAgICAgICAvLyBDb250aW51ZSB3aXRoIHBheW1lbnQgZXZlbiBpZiBlbWFpbCBmYWlsc1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gUmVkaXJlY3QgdG8gcGF5bWVudCBwYWdlXHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXltZW50UmVzcG9uc2UucGF5bWVudFVybDtcclxuXHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXNwb25zZT8uZGF0YT8ubWVzc2FnZSB8fCAnRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiBiaWogaGV0IHZlcndlcmtlbiB2YW4gamUgYWFudnJhYWcuIFByb2JlZXIgaGV0IGxhdGVyIG5vZyBlZW5zIG9mIG5lZW0gY29udGFjdCBvcCBtZXQgVEFGLic7XHJcblxyXG4gICAgICAgIGlmIChlcnJvci5yZXNwb25zZS5zdGF0dXMgPT09IDQwOSkge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRGV6ZSBhYW52cmFhZyBpcyBhbCBiZXRhYWxkIGVuIGluIGJlaGFuZGVsaW5nLic7XHJcbiAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUucmVzZXQoKTtcclxuICAgICAgICAgIHRoaXMua25vd2xlZGdlU3RvcmUuJHJlc2V0KCk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTdG9yZS4kcmVzZXQoKTtcclxuXHJcbiAgICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2U/LmRhdGE/LnBheW1lbnRJZCkge1xyXG4gICAgICAgICAgICAvLyBSZWRpcmVjdCB0byBwYXltZW50IHN0YXR1cyBwYWdlIHdpdGggdGhlIHRva2VuXHJcbiAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtcclxuICAgICAgICAgICAgICBuYW1lOiAnc3RlcC03L3BheW1lbnQtc3RhdHVzJyxcclxuICAgICAgICAgICAgICBxdWVyeToge2lkOiBlcnJvci5yZXNwb25zZS5kYXRhLnBheW1lbnRJZH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgcmVkaXJlY3QgdG8gdGhlIHN0YXJ0IHBhZ2VcclxuICAgICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goe25hbWU6ICdzdGVwLTEvZmluZC1qb2InfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHNlbmRLbm93bGVkZ2VUZXN0RW1haWwoKVxyXG4gICAge1xyXG4gICAgICBjb25zdCBrbm93bGVkZ2VUZXN0UmVxdWVzdCA9IHtcclxuICAgICAgICAna25vd2xlZGdlVGVzdCc6IHRoaXMua25vd2xlZGdlU3RvcmUucXVlc3Rpb25zLFxyXG4gICAgICAgICd0b2tlbic6IHRoaXMuZGF0YVN0b3JlLmdldFRva2VuLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIGF3YWl0IEluc3VyYW5jZVNlcnZpY2Uuc2VuZEtub3dsZWRnZVRlc3RFbWFpbChrbm93bGVkZ2VUZXN0UmVxdWVzdCwgdGhpcy5rbm93bGVkZ2VTdG9yZT8uc3VjY2VlZGVkKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGFzeW5jIG1vdW50ZWQoKVxyXG4gIHtcclxuICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xyXG4gICAgd2luZG93LmRhdGFMYXllci5wdXNoKHtcclxuICAgICAgJ2V2ZW50JzogJ3N0ZXAxNl90ZXN0X2NvbXBsZXRlJyxcclxuICAgICAgJ3Njb3JlJzogdGhpcy5rbm93bGVkZ2VTdG9yZT8uc3VjY2VlZGVkID8gJ3Bhc3NlZCcgOiAnZmFpbGVkJyxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEhhbmRsZSBmYWlsZWQga25vd2xlZGdlIHRlc3RcclxuICAgIGlmICghdGhpcy5rbm93bGVkZ2VTdG9yZT8uc3VjY2VlZGVkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5lbWFpbFNlbnQgPSBhd2FpdCB0aGlzLnNlbmRLbm93bGVkZ2VUZXN0RW1haWwoKTtcclxuICAgICAgICAvLyBSZXNldCBzdG9yZXMgYWZ0ZXIgc2VuZGluZyBmYWlsIGVtYWlsXHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblN0b3JlLnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5rbm93bGVkZ2VTdG9yZS4kcmVzZXQoKTtcclxuICAgICAgICB0aGlzLmRhdGFTdG9yZS4kcmVzZXQoKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5lcnJvci1tZXNzYWdlIHtcclxuICBjb2xvcjogcmVkO1xyXG4gIG1hcmdpbjogMTVweCAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb3JtLWFjdGlvbnMge1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbn1cclxuXHJcbi5sb2FkaW5nLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuYnV0dG9uOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjc7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgIDxoMj5CZXRhbGluZyBpbiBiZWhhbmRlbGluZzwvaDI+XG4gICAgPHAgdi1pZj1cInN0YXR1cyA9PT0gJ29wZW4nXCI+XG4gICAgICBKZSBiZXRhbGluZyBpcyBhYW5nZW1hYWt0IG1hYXIgbm9nIG5pZXQgZ2VzdGFydC5cbiAgICAgIEplIHdvcmR0IGF1dG9tYXRpc2NoIGRvb3JnZWxlaWQgbmFhciBkZSBiZXRhYWxwYWdpbmEuXG4gICAgPC9wPlxuICAgIDxwIHYtZWxzZS1pZj1cInN0YXR1cyA9PT0gJ3BlbmRpbmcnXCI+XG4gICAgICBKZSBiZXRhbGluZyB3b3JkdCBtb21lbnRlZWwgdmVyd2Vya3QuXG4gICAgICBEZXplIHBhZ2luYSB3b3JkdCBhdXRvbWF0aXNjaCBiaWpnZXdlcmt0IHpvZHJhIGVyIG5pZXV3cyBpcy5cbiAgICA8L3A+XG4gICAgPHAgdi1lbHNlPlxuICAgICAgSmUgYmV0YWxpbmcgd29yZHQgbW9tZW50ZWVsIHZlcndlcmt0LlxuICAgICAgRGV6ZSBwYWdpbmEgd29yZHQgYXV0b21hdGlzY2ggYmlqZ2V3ZXJrdCB6b2RyYSBlciBuaWV1d3MgaXMuXG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJsb2FkZXJcIj48L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnUGF5bWVudExvYWRpbmdTdGF0ZScsXG4gIHByb3BzOiB7XG4gICAgc3RhdHVzOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiAnJ1xuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4ubG9hZGluZy1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAycmVtIDA7XG59XG48L3N0eWxlPiBcbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnQtc3RhdGUtY29udGFpbmVyXCI+XG4gICAgPCEtLSBTdWNjZXNzIFN0YXRlIChwYWlkKSAtLT5cbiAgICA8ZGl2IHYtaWY9XCJzdGF0dXMgPT09ICdwYWlkJ1wiIGNsYXNzPVwic3VjY2Vzcy1zdGF0ZVwiPlxuICAgICAgPGgyPkJldGFsaW5nIGdlc2xhYWdkITwvaDI+XG4gICAgICA8cD5cbiAgICAgICAgSmUgYmV0YWxpbmcgaXMgc3VjY2Vzdm9sIHZlcndlcmt0LiBCZWRhbmt0IHZvb3IgamUgYWFudnJhYWcuXG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEZhaWxlZCBTdGF0ZSAtLT5cbiAgICA8ZGl2IHYtZWxzZS1pZj1cInN0YXR1cyA9PT0gJ2ZhaWxlZCdcIiBjbGFzcz1cImZhaWxlZC1zdGF0ZVwiPlxuICAgICAgPGgyPkJldGFsaW5nIG1pc2x1a3Q8L2gyPlxuICAgICAgPHA+XG4gICAgICAgIEplIGJldGFsaW5nIGlzIG1pc2x1a3QuIERpdCBrYW4gdmVyc2NoaWxsZW5kZSBvb3J6YWtlbiBoZWJiZW4sIHpvYWxzIG9udm9sZG9lbmRlIHNhbGRvIG9mIGVlbiB0ZWNobmlzY2ggcHJvYmxlZW0uXG4gICAgICAgIEplIGt1bnQgdGVydWdnYWFuIG5hYXIgZGUga2VubmlzdG9ldHMgb20gaGV0IG9wbmlldXcgdGUgcHJvYmVyZW4uXG4gICAgICA8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgPEZvcm1LaXRcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbGFiZWw9XCJUZXJ1ZyBuYWFyIGtlbm5pc3RvZXRzXCJcbiAgICAgICAgICAgIEBjbGljaz1cIiRlbWl0KCdnby10by1rbm93bGVkZ2UtdGVzdCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXNlY29uZGFyeVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ2FuY2VsZWQgU3RhdGUgLS0+XG4gICAgPGRpdiB2LWVsc2UtaWY9XCJzdGF0dXMgPT09ICdjYW5jZWxlZCdcIiBjbGFzcz1cImNhbmNlbGVkLXN0YXRlXCI+XG4gICAgICA8aDI+QmV0YWxpbmcgZ2Vhbm51bGVlcmQ8L2gyPlxuICAgICAgPHA+XG4gICAgICAgIEplIGJldGFsaW5nIGlzIGdlYW5udWxlZXJkLiBKZSBrdW50IHRlcnVnZ2FhbiBuYWFyIGRlIGtlbm5pc3RvZXRzIG9tIGhldCBvcG5pZXV3IHRlIHByb2JlcmVuLlxuICAgICAgPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgIDxGb3JtS2l0XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGxhYmVsPVwiVGVydWcgbmFhciBrZW5uaXN0b2V0c1wiXG4gICAgICAgICAgICBAY2xpY2s9XCIkZW1pdCgnZ28tdG8ta25vd2xlZGdlLXRlc3QnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1zZWNvbmRhcnlcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEV4cGlyZWQgU3RhdGUgLS0+XG4gICAgPGRpdiB2LWVsc2UtaWY9XCJzdGF0dXMgPT09ICdleHBpcmVkJ1wiIGNsYXNzPVwiZXhwaXJlZC1zdGF0ZVwiPlxuICAgICAgPGgyPkJldGFsaW5nIHZlcmxvcGVuPC9oMj5cbiAgICAgIDxwPlxuICAgICAgICBKZSBiZXRhbGluZyBpcyB2ZXJsb3Blbi4gRGl0IGthbiBnZWJldXJlbiBhbHMgaGV0IHRlIGxhbmcgZHV1cnQgdm9vcmRhdCBlZW4gYmV0YWxpbmcgd29yZHQgdm9sdG9vaWQuXG4gICAgICAgIEplIGt1bnQgdGVydWdnYWFuIG5hYXIgZGUga2VubmlzdG9ldHMgb20gaGV0IG9wbmlldXcgdGUgcHJvYmVyZW4uXG4gICAgICA8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgPEZvcm1LaXRcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbGFiZWw9XCJUZXJ1ZyBuYWFyIGtlbm5pc3RvZXRzXCJcbiAgICAgICAgICAgIEBjbGljaz1cIiRlbWl0KCdnby10by1rbm93bGVkZ2UtdGVzdCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXNlY29uZGFyeVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQXV0aG9yaXplZCBTdGF0ZSAtLT5cbiAgICA8ZGl2IHYtZWxzZS1pZj1cInN0YXR1cyA9PT0gJ2F1dGhvcml6ZWQnXCIgY2xhc3M9XCJhdXRob3JpemVkLXN0YXRlXCI+XG4gICAgICA8aDI+QmV0YWxpbmcgZ2VhdXRvcmlzZWVyZDwvaDI+XG4gICAgICA8cD5cbiAgICAgICAgSmUgYmV0YWxpbmcgaXMgZ2VhdXRvcmlzZWVyZCwgbWFhciBub2cgbmlldCB2b2xsZWRpZyB2ZXJ3ZXJrdC5cbiAgICAgICAgSmUgYWFudnJhYWcgd29yZHQgYmlubmVua29ydCB2ZXJ3ZXJrdC5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9uc1wiPlxuICAgICAgICA8Rm9ybUtpdFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBsYWJlbD1cIkdhIHZlcmRlclwiXG4gICAgICAgICAgICBAY2xpY2s9XCIkZW1pdCgnY29udGludWUnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1wcmltYXJ5XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBFcnJvciBTdGF0ZSAtLT5cbiAgICA8ZGl2IHYtZWxzZS1pZj1cInN0YXR1cyA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwiZXJyb3Itc3RhdGVcIj5cbiAgICAgIDxoMj5FciBpcyBlZW4gcHJvYmxlZW0gb3BnZXRyZWRlbjwvaDI+XG4gICAgICA8cD57eyBlcnJvck1lc3NhZ2UgfHwgJ0VyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gYmlqIGhldCB2ZXJ3ZXJrZW4gdmFuIHV3IGJldGFsaW5nLicgfX08L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgPEZvcm1LaXRcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbGFiZWw9XCJUZXJ1ZyBuYWFyIGtlbm5pc3RvZXRzXCJcbiAgICAgICAgICAgIEBjbGljaz1cIiRlbWl0KCdnby10by1rbm93bGVkZ2UtdGVzdCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXNlY29uZGFyeVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVW5rbm93biBTdGF0dXMgKG5vdCBvbmUgb2YgdGhlIHZhbGlkIHN0YXR1c2VzKSAtLT5cbiAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cInVua25vd24tc3RhdGVcIj5cbiAgICAgIDxoMj5TdGF0dXMgdmFuIGJldGFsaW5nPC9oMj5cbiAgICAgIDxwPkRlIGh1aWRpZ2Ugc3RhdHVzIHZhbiBqZSBiZXRhbGluZyBpczoge3sgc3RhdHVzIH19PC9wPlxuICAgICAgPHA+SmUga3VudCB0ZXJ1Z2dhYW4gbmFhciBkZSBrZW5uaXN0b2V0cyBvbSBoZXQgb3BuaWV1dyB0ZSBwcm9iZXJlbi48L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgPEZvcm1LaXRcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgbGFiZWw9XCJPcG5pZXV3IHByb2JlcmVuXCJcbiAgICAgICAgICAgIEBjbGljaz1cIiRlbWl0KCdyZXRyeScpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXByaW1hcnlcIlxuICAgICAgICAvPlxuICAgICAgICA8Rm9ybUtpdFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBsYWJlbD1cIlRlcnVnIG5hYXIga2VubmlzdG9ldHNcIlxuICAgICAgICAgICAgQGNsaWNrPVwiJGVtaXQoJ2dvLXRvLWtub3dsZWRnZS10ZXN0JylcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4tc2Vjb25kYXJ5XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdQYXltZW50U3RhdHVzU3RhdGUnLFxuICBwcm9wczoge1xuICAgIHN0YXR1czoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGVycm9yTWVzc2FnZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogJydcbiAgICB9XG4gIH0sXG4gIGVtaXRzOiBbJ2NvbnRpbnVlJywgJ2dvLXRvLWtub3dsZWRnZS10ZXN0J11cbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLnBheW1lbnQtc3RhdGUtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAycmVtIDA7XG59XG5cbi5hY3Rpb24tYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbjwvc3R5bGU+IFxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyaWQgY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19jb2x1bW5zXCI+XHJcbiAgICAgICAgPGRpdiB2LWlmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiB2LWlmPVwiIWxvYWRpbmcgJiYgZXJyb3JcIiA6Y2xhc3M9XCJkaXNwbGF5X2FzX2luZm8gPyAnaW5mby1tZXNzYWdlJyA6ICdlcnJvci1tZXNzYWdlJ1wiIGNsYXNzPVwiZm9ybWtpdC1tZXNzYWdlXCI+XHJcbiAgICAgICAgICB7eyBlcnJvciB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgdi1pZj1cIiFsb2FkaW5nICYmIGVycm9yXCI+XHJcbiAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlN0YXJ0IGplIG5pZXV3ZSBiZXJla2VuaW5nPC9oMz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgdHlwZT1cImJ1dHRvblwiIEBjbGljaz1cImdvVG9TdGFydFwiPkJlcmVrZW4gam91dyBwcmVtaWU8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweDtcIj5XYXQgamUga3Jpamd0PC9oMz5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cInRleHQtY2VudGVyXCIgc3R5bGU9XCJsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XCI+XHJcbiAgICAgICAgICAgIDxsaT4yMCUga29ydGluZyBvcCBqZSBBT1Y8L2xpPlxyXG4gICAgICAgICAgICA8bGk+Vm9sbGVkaWdlIGNvbnRyb2xlIG92ZXIgd2F0IGplIHdlbCBvZiBuaWV0IHZlcnpla2VydDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5EaXJlY3QgaW56aWNodCwgem9uZGVyIHZlcnBsaWNodGluZ2VuPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcblxyXG4gICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi10b3A6NDBweDsgbWFyZ2luLWJvdHRvbTogMDtcIj5XaWogaGVscGVuIGplIGdyYWFnITwvaDQ+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyXCI+SGViIGplIHZyYWdlbj8gQmVsIG9ucyBnZXJ1c3Qgb3AgPGEgaHJlZj1cInRlbDo0MDcwNzM4MzlcIj40MCAtIDcwNyAzOCA5MDwvYT4gb2YgbWFpbCBuYWFyIDxhIGhyZWY9XCJtYWlsdG86dGFmb25saW5lQHRhZi5ubFwiPnRhZm9ubGluZUB0YWYubmwuPC9hPlxyXG4gICAgICAgICAgICBXZSBzdGFhbiB2b29yIGplIGtsYWFyISA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiB2LWlmPVwiIWxvYWRpbmcgJiYgIWVycm9yXCI+XHJcbiAgICAgICAgICA8aDI+SmUgZ2VnZXZlbnMgd29yZGVuIGdlbGFkZW4uLi48L2gyPlxyXG4gICAgICAgICAgPHA+RWVuIG1vbWVudCBnZWR1bGQsIHdlIGxhZGVuIGplIGVlcmRlciBpbmdldnVsZGUgZ2VnZXZlbnMuPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB7bWFwU3RvcmVzfSBmcm9tICdwaW5pYSc7XHJcbmltcG9ydCB7dXNlQXBwbGljYXRpb25TdG9yZX0gZnJvbSAnQC9qcy9zdG9yZS9hcHBsaWNhdGlvblN0b3JlJztcclxuaW1wb3J0IHt1c2VEYXRhU3RvcmV9IGZyb20gJ0AvanMvc3RvcmUvZGF0YVN0b3JlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnQ29udGludWVWaWV3JyxcclxuICBkYXRhKClcclxuICB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICBlcnJvcjogbnVsbCxcclxuICAgICAgZGlzcGxheV9hc19pbmZvOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RvcmVzKHVzZUFwcGxpY2F0aW9uU3RvcmUpLFxyXG4gICAgLi4ubWFwU3RvcmVzKHVzZURhdGFTdG9yZSksXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBnb1RvU3RhcnQoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMS9maW5kLWpvYid9KTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBsb2FkQXBwbGljYXRpb25EYXRhKClcclxuICAgIHtcclxuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLiRyb3V0ZS5xdWVyeS50b2tlbjtcclxuXHJcbiAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICB0aGlzLmVycm9yID0gJ0dlZW4gZ2VsZGlnZSB0b2tlbiBnZXZvbmRlbi4nO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICAvLyBTZXQgdG9rZW4gaW4gZGF0YVN0b3JlXHJcbiAgICAgICAgdGhpcy5kYXRhU3RvcmUuc2V0VG9rZW4odG9rZW4pO1xyXG5cclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZGF0YVN0b3JlLmdldEFwcGxpY2F0aW9uQnlUb2tlbih0b2tlbik7XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xyXG4gICAgICAgICAgdGhpcy5lcnJvciA9ICdKZSBiZXJla2VuaW5nIGlzIHZlcmxvcGVuIOKAkyBtYWFyIGluIDEgbWludXV0IGhlYiBqZSB3ZWVyIGluemljaHQnO1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5X2FzX2luZm8gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5pZCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhU3RvcmUuc2V0VG9rZW4ocmVzcG9uc2UuZGF0YS5pZCk7XHJcbiAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uU3RvcmUuc2V0RnJvbVJlcXVlc3QocmVzcG9uc2UuZGF0YS5wYXlsb2FkKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9BcHByb3ByaWF0ZVN0ZXAoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5lcnJvciA9ICdFciBpcyBlZW4gcHJvYmxlZW0gb3BnZXRyZWRlbiBiaWogaGV0IGxhZGVuIHZhbiBqZSBnZWdldmVucy4nO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgYXBwbGljYXRpb24gZGF0YTonLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy5lcnJvciA9ICdFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIGJpaiBoZXQgbGFkZW4gdmFuIGplIGdlZ2V2ZW5zLiBQcm9iZWVyIGhldCBsYXRlciBvcG5pZXV3Lic7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgcmVkaXJlY3RUb0FwcHJvcHJpYXRlU3RlcCgpXHJcbiAgICB7XHJcbiAgICAgIGlmICghdGhpcy5hcHBsaWNhdGlvblN0b3JlLnN1bUFzc3VyZWQgfHwgIXRoaXMuYXBwbGljYXRpb25TdG9yZS5qb2IpIHtcclxuICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7bmFtZTogJ3N0ZXAtMS9maW5kLWpvYid9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIElmIGV2ZXJ5dGhpbmcgaXMgY29tcGxldGUsIGdvIHRvIG92ZXJ2aWV3XHJcbiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHtuYW1lOiAnc3RlcC0yL292ZXJ2aWV3LWNvbmZpZ3VyYXRvcid9KTtcclxuICAgIH1cclxuICB9LFxyXG4gIGFzeW5jIG1vdW50ZWQoKVxyXG4gIHtcclxuICAgIGF3YWl0IHRoaXMubG9hZEFwcGxpY2F0aW9uRGF0YSgpO1xyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmVycm9yLW1lc3NhZ2Uge1xyXG4gIGNvbG9yOiAjZDMyZjJmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmViZWU7XHJcbiAgcGFkZGluZzogMTJweCAxNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBtYXJnaW46IDE2cHggMDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNkMzJmMmY7XHJcbn1cclxuXHJcbi5pbmZvLW1lc3NhZ2Uge1xyXG4gIGNvbG9yOiAjMzQ5OERCO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XHJcbiAgcGFkZGluZzogMTJweCAxNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBtYXJnaW46IDE2cHggMDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMzNDk4REI7XHJcbn1cclxuXHJcbi5sb2FkZXIge1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIGhlaWdodDogNTBweDtcclxuICBtYXJnaW46IDUwcHggYXV0bztcclxufVxyXG5cclxuLnRleHQtY2VudGVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/