.govuk-link, a, .app-step-nav-header__title, .app-step-nav-related__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */
/* stylelint-disable-line scss/comment-no-loud  */
@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: normal;
  src: url("/govuk/assets/fonts/light-94a07e06a1-v2.woff2") format("woff2"), url("/govuk/assets/fonts/light-f591b13f7d-v2.woff") format("woff");
  font-display: fallback;
}

@font-face {
  font-family: "GDS Transport";
  font-style: normal;
  font-weight: bold;
  src: url("/govuk/assets/fonts/bold-b542beb274-v2.woff2") format("woff2"), url("/govuk/assets/fonts/bold-affa96571d-v2.woff") format("woff");
  font-display: fallback;
}

@media print {
  .govuk-link, a, .app-step-nav-header__title, .app-step-nav-related__link {
    font-family: sans-serif;
  }
}

.govuk-link:hover, a:hover, .app-step-nav-header__title:hover, .app-step-nav-related__link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-link:focus, a:focus, .app-step-nav-header__title:focus, .app-step-nav-related__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-link:link, a:link, .app-step-nav-header__title:link, .app-step-nav-related__link:link {
  color: #1d70b8;
}

.govuk-link:visited, a:visited, .app-step-nav-header__title:visited, .app-step-nav-related__link:visited {
  color: #4c2c92;
}

.govuk-link:hover, a:hover, .app-step-nav-header__title:hover, .app-step-nav-related__link:hover {
  color: #003078;
}

.govuk-link:active, a:active, .app-step-nav-header__title:active, .app-step-nav-related__link:active {
  color: #0b0c0c;
}

.govuk-link:focus, a:focus, .app-step-nav-header__title:focus, .app-step-nav-related__link:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-link[href^="/"]:after, a[href^="/"]:after, .app-step-nav-header__title[href^="/"]:after, .app-step-nav-related__link[href^="/"]:after, .govuk-link[href^="http://"]:after, a[href^="http://"]:after, .app-step-nav-header__title[href^="http://"]:after, .app-step-nav-related__link[href^="http://"]:after, .govuk-link[href^="https://"]:after, a[href^="https://"]:after, .app-step-nav-header__title[href^="https://"]:after, .app-step-nav-related__link[href^="https://"]:after {
    content: " (" attr(href) ")";
    font-size: 90%;
    word-wrap: break-word;
  }
}

.govuk-link--muted:link, .govuk-link--muted:visited {
  color: #505a5f;
}

.govuk-link--muted:hover, .govuk-link--muted:active {
  color: #0b0c0c;
}

.govuk-link--muted:focus {
  color: #0b0c0c;
}

.govuk-link--text-colour:link, .govuk-link--text-colour:visited {
  color: #0b0c0c;
}

@media print {
  .govuk-link--text-colour:link, .govuk-link--text-colour:visited {
    color: #000000;
  }
}

.govuk-link--text-colour:hover {
  color: rgba(11, 12, 12, 0.99);
}

.govuk-link--text-colour:active, .govuk-link--text-colour:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-link--text-colour:active, .govuk-link--text-colour:focus {
    color: #000000;
  }
}

.govuk-link--inverse:link, .govuk-link--inverse:visited {
  color: #ffffff;
}

.govuk-link--inverse:hover, .govuk-link--inverse:active {
  color: rgba(255, 255, 255, 0.99);
}

.govuk-link--inverse:focus {
  color: #0b0c0c;
}

.govuk-link--no-underline:not(:hover):not(:active) {
  text-decoration: none;
}

.govuk-link--no-visited-state:link {
  color: #1d70b8;
}

.govuk-link--no-visited-state:visited {
  color: #1d70b8;
}

.govuk-link--no-visited-state:hover {
  color: #003078;
}

.govuk-link--no-visited-state:active {
  color: #0b0c0c;
}

.govuk-link--no-visited-state:focus {
  color: #0b0c0c;
}

.govuk-list {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-top: 0;
  margin-bottom: 15px;
  padding-left: 0;
  list-style-type: none;
}

@media print {
  .govuk-list {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-list {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-list {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-list {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-list {
    margin-bottom: 20px;
  }
}

.govuk-list .govuk-list {
  margin-top: 10px;
}

.govuk-list > li {
  margin-bottom: 5px;
}

.govuk-list--bullet {
  padding-left: 20px;
  list-style-type: disc;
}

.govuk-list--number {
  padding-left: 20px;
  list-style-type: decimal;
}

.govuk-list--bullet > li,
.govuk-list--number > li {
  margin-bottom: 0;
}

@media (min-width: 40.0625em) {
  .govuk-list--bullet > li,
  .govuk-list--number > li {
    margin-bottom: 5px;
  }
}

.govuk-list--spaced > li {
  margin-bottom: 10px;
}

@media (min-width: 40.0625em) {
  .govuk-list--spaced > li {
    margin-bottom: 15px;
  }
}

.govuk-template {
  background-color: #f3f2f1;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media screen {
  .govuk-template {
    overflow-y: scroll;
  }
}

.govuk-template__body {
  margin: 0;
  background-color: #ffffff;
}

.govuk-heading-xl {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  display: block;
  margin-top: 0;
  margin-bottom: 30px;
}

@media print {
  .govuk-heading-xl {
    color: #000000;
  }
}

@media print {
  .govuk-heading-xl {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.04167;
  }
}

@media print {
  .govuk-heading-xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-xl {
    margin-bottom: 50px;
  }
}

.govuk-heading-l {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.04167;
  display: block;
  margin-top: 0;
  margin-bottom: 20px;
}

@media print {
  .govuk-heading-l {
    color: #000000;
  }
}

@media print {
  .govuk-heading-l {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-heading-l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-l {
    margin-bottom: 30px;
  }
}

.govuk-heading-m {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-heading-m {
    color: #000000;
  }
}

@media print {
  .govuk-heading-m {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-heading-m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-m {
    margin-bottom: 20px;
  }
}

.govuk-heading-s {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-heading-s {
    color: #000000;
  }
}

@media print {
  .govuk-heading-s {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-heading-s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-heading-s {
    margin-bottom: 20px;
  }
}

.govuk-caption-xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}

@media print {
  .govuk-caption-xl {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-caption-xl {
    font-size: 27px;
    font-size: 1.6875rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-caption-xl {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-caption-l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  display: block;
  margin-bottom: 5px;
  color: #505a5f;
}

@media print {
  .govuk-caption-l {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-caption-l {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-caption-l {
    font-size: 18pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-caption-l {
    margin-bottom: 0;
  }
}

.govuk-caption-m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  color: #505a5f;
}

@media print {
  .govuk-caption-m {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-caption-m {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-caption-m {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-body-l, .govuk-body-lead {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-top: 0;
  margin-bottom: 20px;
}

@media print {
  .govuk-body-l, .govuk-body-lead {
    color: #000000;
  }
}

@media print {
  .govuk-body-l, .govuk-body-lead {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-l, .govuk-body-lead {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-body-l, .govuk-body-lead {
    font-size: 18pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-l, .govuk-body-lead {
    margin-bottom: 30px;
  }
}

.govuk-body-m, .govuk-body, p {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-body-m, .govuk-body, p {
    color: #000000;
  }
}

@media print {
  .govuk-body-m, .govuk-body, p {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-m, .govuk-body, p {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-body-m, .govuk-body, p {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-m, .govuk-body, p {
    margin-bottom: 20px;
  }
}

.govuk-body-s {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-body-s {
    color: #000000;
  }
}

@media print {
  .govuk-body-s {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-s {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-body-s {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-s {
    margin-bottom: 20px;
  }
}

.govuk-body-xs {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-body-xs {
    color: #000000;
  }
}

@media print {
  .govuk-body-xs {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-xs {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.42857;
  }
}

@media print {
  .govuk-body-xs {
    font-size: 12pt;
    line-height: 1.2;
  }
}

@media (min-width: 40.0625em) {
  .govuk-body-xs {
    margin-bottom: 20px;
  }
}

.govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
  padding-top: 5px;
}

@media (min-width: 40.0625em) {
  .govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {
    padding-top: 10px;
  }
}

.govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l, p + .govuk-heading-l,
.govuk-body-s + .govuk-heading-l,
.govuk-list + .govuk-heading-l {
  padding-top: 15px;
}

@media (min-width: 40.0625em) {
  .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l, p + .govuk-heading-l,
  .govuk-body-s + .govuk-heading-l,
  .govuk-list + .govuk-heading-l {
    padding-top: 20px;
  }
}

.govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m, p + .govuk-heading-m,
.govuk-body-s + .govuk-heading-m,
.govuk-list + .govuk-heading-m,
.govuk-body-m + .govuk-heading-s,
.govuk-body + .govuk-heading-s,
p + .govuk-heading-s,
.govuk-body-s + .govuk-heading-s,
.govuk-list + .govuk-heading-s {
  padding-top: 5px;
}

@media (min-width: 40.0625em) {
  .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m, p + .govuk-heading-m,
  .govuk-body-s + .govuk-heading-m,
  .govuk-list + .govuk-heading-m,
  .govuk-body-m + .govuk-heading-s,
  .govuk-body + .govuk-heading-s,
  p + .govuk-heading-s,
  .govuk-body-s + .govuk-heading-s,
  .govuk-list + .govuk-heading-s {
    padding-top: 10px;
  }
}

.govuk-section-break {
  margin: 0;
  border: 0;
}

.govuk-section-break--xl {
  margin-top: 30px;
  margin-bottom: 30px;
}

@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-top: 50px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-section-break--xl {
    margin-bottom: 50px;
  }
}

.govuk-section-break--l {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-top: 30px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-section-break--l {
    margin-bottom: 30px;
  }
}

.govuk-section-break--m {
  margin-top: 15px;
  margin-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-top: 20px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-section-break--m {
    margin-bottom: 20px;
  }
}

.govuk-section-break--visible {
  border-bottom: 1px solid #b1b4b6;
}

.govuk-button-group {
  margin-bottom: 5px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-bottom: 15px;
  }
}

.govuk-button-group .govuk-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
  display: inline-block;
  max-width: 100%;
  margin-top: 5px;
  margin-bottom: 20px;
  text-align: center;
}

@media print {
  .govuk-button-group .govuk-link {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-button-group .govuk-link {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}

@media print {
  .govuk-button-group .govuk-link {
    font-size: 14pt;
    line-height: 19px;
  }
}

.govuk-button-group .govuk-button {
  margin-bottom: 17px;
}

@media (min-width: 40.0625em) {
  .govuk-button-group {
    margin-right: -15px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: baseline;
    -webkit-align-items: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
  }
  .govuk-button-group .govuk-button,
  .govuk-button-group .govuk-link {
    margin-right: 15px;
  }
  .govuk-button-group .govuk-link {
    text-align: left;
  }
}

.govuk-form-group {
  margin-bottom: 20px;
}

.govuk-form-group:after {
  content: "";
  display: block;
  clear: both;
}

@media (min-width: 40.0625em) {
  .govuk-form-group {
    margin-bottom: 30px;
  }
}

.govuk-form-group .govuk-form-group:last-of-type {
  margin-bottom: 0;
}

.govuk-form-group--error {
  padding-left: 15px;
  border-left: 5px solid #d4351c;
}

.govuk-form-group--error .govuk-form-group {
  padding: 0;
  border: 0;
}

.govuk-grid-row {
  margin-right: -15px;
  margin-left: -15px;
}

.govuk-grid-row:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-grid-column-one-quarter {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-one-quarter {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-one-third {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-one-half {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-two-thirds {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-three-quarters {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full {
  box-sizing: border-box;
  width: 100%;
  padding: 0 15px;
}

@media (min-width: 40.0625em) {
  .govuk-grid-column-full {
    width: 100%;
    float: left;
  }
}

.govuk-grid-column-one-quarter-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-one-quarter-from-desktop {
    width: 25%;
    float: left;
  }
}

.govuk-grid-column-one-third-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-one-third-from-desktop {
    width: 33.3333%;
    float: left;
  }
}

.govuk-grid-column-one-half-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-one-half-from-desktop {
    width: 50%;
    float: left;
  }
}

.govuk-grid-column-two-thirds-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-two-thirds-from-desktop {
    width: 66.6666%;
    float: left;
  }
}

.govuk-grid-column-three-quarters-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-three-quarters-from-desktop {
    width: 75%;
    float: left;
  }
}

.govuk-grid-column-full-from-desktop {
  box-sizing: border-box;
  padding: 0 15px;
}

@media (min-width: 48.0625em) {
  .govuk-grid-column-full-from-desktop {
    width: 100%;
    float: left;
  }
}

.govuk-main-wrapper {
  display: block;
  padding-top: 20px;
  padding-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-main-wrapper {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.govuk-main-wrapper--auto-spacing:first-child,
.govuk-main-wrapper--l {
  padding-top: 30px;
}

@media (min-width: 40.0625em) {
  .govuk-main-wrapper--auto-spacing:first-child,
  .govuk-main-wrapper--l {
    padding-top: 50px;
  }
}

.govuk-width-container {
  max-width: 960px;
  margin-right: 15px;
  margin-left: 15px;
}

@supports (margin: max(calc(0px))) {
  .govuk-width-container {
    margin-right: max(15px, calc(15px + env(safe-area-inset-right)));
    margin-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}

@media (min-width: 40.0625em) {
  .govuk-width-container {
    margin-right: 30px;
    margin-left: 30px;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: max(30px, calc(15px + env(safe-area-inset-right)));
      margin-left: max(30px, calc(15px + env(safe-area-inset-left)));
    }
  }
}

@media (min-width: 1020px) {
  .govuk-width-container {
    margin-right: auto;
    margin-left: auto;
  }
  @supports (margin: max(calc(0px))) {
    .govuk-width-container {
      margin-right: auto;
      margin-left: auto;
    }
  }
}

.govuk-accordion {
  margin-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-accordion {
    margin-bottom: 30px;
  }
}

.govuk-accordion__section {
  padding-top: 15px;
}

.govuk-accordion__section-header {
  padding-top: 15px;
  padding-bottom: 15px;
}

.govuk-accordion__section-heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-top: 0;
  margin-bottom: 0;
}

@media print {
  .govuk-accordion__section-heading {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-accordion__section-heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-accordion__section-heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  display: inline-block;
  margin-bottom: 0;
  padding-top: 15px;
}

@media print {
  .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-accordion__section-button {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-accordion__section-button {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-accordion__section-summary {
  margin-top: 10px;
  margin-bottom: 0;
}

.govuk-accordion__section-content > :last-child {
  margin-bottom: 0;
}

.js-enabled .govuk-accordion {
  border-bottom: 1px solid #b1b4b6;
}

.js-enabled .govuk-accordion__section {
  padding-top: 0;
}

.js-enabled .govuk-accordion__section-content {
  display: none;
  padding-top: 15px;
  padding-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-top: 15px;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__section-content {
    padding-bottom: 15px;
  }
}

.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
  display: block;
}

.js-enabled .govuk-accordion__open-all {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-accordion__open-all {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .js-enabled .govuk-accordion__open-all {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media print {
  .js-enabled .govuk-accordion__open-all {
    font-family: sans-serif;
  }
}

.js-enabled .govuk-accordion__open-all:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.js-enabled .govuk-accordion__open-all:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.js-enabled .govuk-accordion__open-all:link {
  color: #1d70b8;
}

.js-enabled .govuk-accordion__open-all:visited {
  color: #4c2c92;
}

.js-enabled .govuk-accordion__open-all:hover {
  color: #003078;
}

.js-enabled .govuk-accordion__open-all:active {
  color: #0b0c0c;
}

.js-enabled .govuk-accordion__open-all:focus {
  color: #0b0c0c;
}

.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
  padding: 0;
  border: 0;
}

.js-enabled .govuk-accordion__section-header {
  position: relative;
  padding-right: 40px;
  border-top: 1px solid #b1b4b6;
  cursor: pointer;
}

.js-enabled .govuk-accordion__section-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  padding: 0;
  border-width: 0;
  color: #1d70b8;
  background: none;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
}

@media print {
  .js-enabled .govuk-accordion__section-button {
    font-family: sans-serif;
  }
}

.js-enabled .govuk-accordion__section-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

.js-enabled .govuk-accordion__section-button:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.js-enabled .govuk-accordion__section-button:hover:not(:focus) {
  color: #003078;
  text-decoration: underline;
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
  text-underline-offset: 0.1em;
}

@media (hover: none) {
  .js-enabled .govuk-accordion__section-button:hover {
    text-decoration: none;
  }
}

.js-enabled .govuk-accordion__controls {
  text-align: right;
}

.js-enabled .govuk-accordion__icon {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 16px;
  height: 16px;
  margin-top: -8px;
}

.js-enabled .govuk-accordion__icon:after,
.js-enabled .govuk-accordion__icon:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 25%;
  height: 25%;
  margin: auto;
  border: 2px solid transparent;
  background-color: #0b0c0c;
}

.js-enabled .govuk-accordion__icon:before {
  width: 100%;
}

.js-enabled .govuk-accordion__icon:after {
  height: 100%;
}

.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
  content: " ";
  display: none;
}

.govuk-back-link {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
  display: inline-block;
  position: relative;
  margin-top: 15px;
  margin-bottom: 15px;
  padding-left: 14px;
}

@media (min-width: 40.0625em) {
  .govuk-back-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-back-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media print {
  .govuk-back-link {
    font-family: sans-serif;
  }
}

.govuk-back-link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-back-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-back-link:link, .govuk-back-link:visited {
  color: #0b0c0c;
}

@media print {
  .govuk-back-link:link, .govuk-back-link:visited {
    color: #000000;
  }
}

.govuk-back-link:hover {
  color: rgba(11, 12, 12, 0.99);
}

.govuk-back-link:active, .govuk-back-link:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-back-link:active, .govuk-back-link:focus {
    color: #000000;
  }
}

.govuk-back-link:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(225deg);
  -ms-transform: rotate(225deg);
  transform: rotate(225deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}

.govuk-back-link:focus:before {
  border-color: #0b0c0c;
}

.govuk-back-link:after {
  content: "";
  position: absolute;
  top: -14px;
  right: 0;
  bottom: -14px;
  left: 0;
}

.govuk-breadcrumbs {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  color: #0b0c0c;
  margin-top: 15px;
  margin-bottom: 10px;
}

@media print {
  .govuk-breadcrumbs {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-breadcrumbs {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-breadcrumbs {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media print {
  .govuk-breadcrumbs {
    color: #000000;
  }
}

.govuk-breadcrumbs__list {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.govuk-breadcrumbs__list:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-breadcrumbs__list-item {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  margin-left: 10px;
  padding-left: 15.655px;
  float: left;
}

.govuk-breadcrumbs__list-item:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3.31px;
  width: 7px;
  height: 7px;
  margin: auto 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  border: solid;
  border-width: 1px 1px 0 0;
  border-color: #505a5f;
}

.govuk-breadcrumbs__list-item:first-child {
  margin-left: 0;
  padding-left: 0;
}

.govuk-breadcrumbs__list-item:first-child:before {
  content: none;
  display: none;
}

.govuk-breadcrumbs__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .govuk-breadcrumbs__link {
    font-family: sans-serif;
  }
}

.govuk-breadcrumbs__link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-breadcrumbs__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
  color: #0b0c0c;
}

@media print {
  .govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {
    color: #000000;
  }
}

.govuk-breadcrumbs__link:hover {
  color: rgba(11, 12, 12, 0.99);
}

.govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {
    color: #000000;
  }
}

@media (max-width: 40.0525em) {
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item {
    display: none;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child, .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child {
    display: inline-block;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before {
    top: 6px;
    margin: 0;
  }
  .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}

.govuk-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.1875;
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  width: 100%;
  margin-top: 0;
  margin-right: 0;
  margin-left: 0;
  margin-bottom: 22px;
  padding: 8px 10px 7px;
  border: 2px solid transparent;
  border-radius: 0;
  color: #ffffff;
  background-color: #00703c;
  box-shadow: 0 2px 0 #002d18;
  text-align: center;
  vertical-align: top;
  cursor: pointer;
  -webkit-appearance: none;
}

@media print {
  .govuk-button {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-button {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1;
  }
}

@media print {
  .govuk-button {
    font-size: 14pt;
    line-height: 19px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-button {
    margin-bottom: 32px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-button {
    width: auto;
  }
}

.govuk-button:link, .govuk-button:visited, .govuk-button:active, .govuk-button:hover {
  color: #ffffff;
  text-decoration: none;
}

.govuk-button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

.govuk-button:hover {
  background-color: #005a30;
}

.govuk-button:active {
  top: 2px;
}

.govuk-button:focus {
  border-color: #ffdd00;
  outline: 3px solid transparent;
  box-shadow: inset 0 0 0 1px #ffdd00;
}

.govuk-button:focus:not(:active):not(:hover) {
  border-color: #ffdd00;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 2px 0 #0b0c0c;
}

.govuk-button:before {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -4px;
  left: -2px;
  background: transparent;
}

.govuk-button:active:before {
  top: -4px;
}

.govuk-button--disabled,
.govuk-button[disabled="disabled"],
.govuk-button[disabled] {
  opacity: 0.5;
}

.govuk-button--disabled:hover,
.govuk-button[disabled="disabled"]:hover,
.govuk-button[disabled]:hover {
  background-color: #00703c;
  cursor: default;
}

.govuk-button--disabled:active,
.govuk-button[disabled="disabled"]:active,
.govuk-button[disabled]:active {
  top: 0;
  box-shadow: 0 2px 0 #002d18;
}

.govuk-button--secondary {
  background-color: #f3f2f1;
  box-shadow: 0 2px 0 #929191;
}

.govuk-button--secondary, .govuk-button--secondary:link, .govuk-button--secondary:visited, .govuk-button--secondary:active, .govuk-button--secondary:hover {
  color: #0b0c0c;
}

.govuk-button--secondary:hover {
  background-color: #dbdad9;
}

.govuk-button--secondary:hover[disabled] {
  background-color: #f3f2f1;
}

.govuk-button--warning {
  background-color: #d4351c;
  box-shadow: 0 2px 0 #55150b;
}

.govuk-button--warning, .govuk-button--warning:link, .govuk-button--warning:visited, .govuk-button--warning:active, .govuk-button--warning:hover {
  color: #ffffff;
}

.govuk-button--warning:hover {
  background-color: #aa2a16;
}

.govuk-button--warning:hover[disabled] {
  background-color: #d4351c;
}

.govuk-button--start {
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  min-height: auto;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

@media (min-width: 40.0625em) {
  .govuk-button--start {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}

@media print {
  .govuk-button--start {
    font-size: 18pt;
    line-height: 1;
  }
}

.govuk-button__start-icon {
  margin-left: 5px;
  vertical-align: middle;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
  forced-color-adjust: auto;
}

@media (min-width: 48.0625em) {
  .govuk-button__start-icon {
    margin-left: 10px;
  }
}

.govuk-error-message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  clear: both;
  color: #d4351c;
}

@media print {
  .govuk-error-message {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-message {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-error-message {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.govuk-fieldset:after {
  content: "";
  display: block;
  clear: both;
}

@supports not (caret-color: auto) {
  .govuk-fieldset,
  x:-moz-any-link {
    display: table-cell;
  }
}

.govuk-fieldset__legend {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  box-sizing: border-box;
  display: table;
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0;
  white-space: normal;
}

@media print {
  .govuk-fieldset__legend {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-fieldset__legend {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-fieldset__legend {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-fieldset__legend {
    color: #000000;
  }
}

.govuk-fieldset__legend--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}

@media print {
  .govuk-fieldset__legend--xl {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.04167;
  }
}

@media print {
  .govuk-fieldset__legend--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__legend--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.04167;
  margin-bottom: 15px;
}

@media print {
  .govuk-fieldset__legend--l {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-fieldset__legend--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-fieldset__legend--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-bottom: 15px;
}

@media print {
  .govuk-fieldset__legend--m {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-fieldset__legend--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__legend--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}

@media print {
  .govuk-fieldset__legend--s {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-fieldset__legend--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-fieldset__legend--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-fieldset__heading {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

.govuk-hint {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  margin-bottom: 15px;
  color: #505a5f;
}

@media print {
  .govuk-hint {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-hint {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-hint {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl) + .govuk-hint {
  margin-bottom: 10px;
}

.govuk-fieldset__legend + .govuk-hint {
  margin-top: -5px;
}

.govuk-label {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  margin-bottom: 5px;
}

@media print {
  .govuk-label {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-label {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-label {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-label {
    color: #000000;
  }
}

.govuk-label--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}

@media print {
  .govuk-label--xl {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-label--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.04167;
  }
}

@media print {
  .govuk-label--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-label--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.04167;
  margin-bottom: 15px;
}

@media print {
  .govuk-label--l {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-label--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-label--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-label--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-bottom: 10px;
}

@media print {
  .govuk-label--m {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-label--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-label--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-label--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}

@media print {
  .govuk-label--s {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-label--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-label--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-label-wrapper {
  margin: 0;
}

.govuk-checkboxes__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}

@media print {
  .govuk-checkboxes__item {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-checkboxes__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-checkboxes__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-checkboxes__item:last-child,
.govuk-checkboxes__item:last-of-type {
  margin-bottom: 0;
}

.govuk-checkboxes__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-checkboxes__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-checkboxes__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  background: transparent;
}

.govuk-checkboxes__label:after {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 11px;
  left: 9px;
  width: 23px;
  height: 12px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  border: solid;
  border-width: 0 0 5px 5px;
  border-top-color: transparent;
  opacity: 0;
  background: transparent;
}

.govuk-checkboxes__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
  box-shadow: 0 0 0 3px #ffdd00;
}

@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    outline-color: Highlight;
  }
}

.govuk-checkboxes__input:checked + .govuk-checkboxes__label:after {
  opacity: 1;
}

.govuk-checkboxes__input:disabled,
.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  cursor: default;
}

.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
  opacity: .5;
}

.govuk-checkboxes__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}

@media print {
  .govuk-checkboxes__divider {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-checkboxes__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-checkboxes__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-checkboxes__divider {
    color: #000000;
  }
}

.govuk-checkboxes__conditional {
  margin-bottom: 15px;
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}

@media (min-width: 40.0625em) {
  .govuk-checkboxes__conditional {
    margin-bottom: 20px;
  }
}

.js-enabled .govuk-checkboxes__conditional--hidden {
  display: none;
}

.govuk-checkboxes__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-checkboxes--small .govuk-checkboxes__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}

.govuk-checkboxes--small .govuk-checkboxes__item:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-checkboxes--small .govuk-checkboxes__input {
  left: -10px;
}

.govuk-checkboxes--small .govuk-checkboxes__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}

@media (min-width: 40.0625em) {
  .govuk-checkboxes--small .govuk-checkboxes__label {
    padding: 11px 15px 10px 1px;
  }
}

.govuk-checkboxes--small .govuk-checkboxes__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}

.govuk-checkboxes--small .govuk-checkboxes__label:after {
  top: 15px;
  left: 6px;
  width: 12px;
  height: 6.5px;
  border-width: 0 0 3px 3px;
}

.govuk-checkboxes--small .govuk-checkboxes__hint {
  padding: 0;
  clear: both;
}

.govuk-checkboxes--small .govuk-checkboxes__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}

.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}

.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
  box-shadow: 0 0 0 3px #ffdd00, 0 0 0 10px #b1b4b6;
}

@media (hover: none), (pointer: coarse) {
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label:before {
    box-shadow: initial;
  }
  .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label:before {
    box-shadow: 0 0 0 3px #ffdd00;
  }
}

.govuk-textarea {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 40px;
  margin-bottom: 20px;
  padding: 5px;
  resize: vertical;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
}

@media print {
  .govuk-textarea {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-textarea {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-textarea {
    font-size: 14pt;
    line-height: 1.25;
  }
}

@media (min-width: 40.0625em) {
  .govuk-textarea {
    margin-bottom: 30px;
  }
}

.govuk-textarea:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-textarea--error {
  border: 2px solid #d4351c;
}

.govuk-textarea--error:focus {
  border-color: #0b0c0c;
}

.govuk-character-count {
  margin-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-character-count {
    margin-bottom: 30px;
  }
}

.govuk-character-count .govuk-form-group,
.govuk-character-count .govuk-textarea {
  margin-bottom: 5px;
}

.govuk-character-count__message {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 0;
}

@media print {
  .govuk-character-count__message {
    font-family: sans-serif;
  }
}

@supports (font-variant-numeric: tabular-nums) {
  .govuk-character-count__message {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}

.govuk-character-count__message--disabled {
  visibility: hidden;
}

.govuk-cookie-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  padding-top: 20px;
  border-bottom: 10px solid transparent;
  background-color: #f3f2f1;
}

@media print {
  .govuk-cookie-banner {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-cookie-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-cookie-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-cookie-banner[hidden] {
  display: none;
}

.govuk-cookie-banner__message {
  margin-bottom: -10px;
}

.govuk-cookie-banner__message[hidden] {
  display: none;
}

.govuk-cookie-banner__message:focus {
  outline: none;
}

.govuk-summary-list {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin: 0;
  margin-bottom: 20px;
}

@media print {
  .govuk-summary-list {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-summary-list {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-summary-list {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list {
    margin-bottom: 30px;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row {
    margin-bottom: 15px;
    border-bottom: 1px solid #b1b4b6;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__row {
    display: table-row;
  }
}

.govuk-summary-list__key,
.govuk-summary-list__value,
.govuk-summary-list__actions {
  margin: 0;
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__key,
  .govuk-summary-list__value,
  .govuk-summary-list__actions {
    display: table-cell;
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #b1b4b6;
  }
}

.govuk-summary-list__actions {
  margin-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__actions {
    width: 20%;
    padding-right: 0;
    text-align: right;
  }
}

.govuk-summary-list__key,
.govuk-summary-list__value {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.govuk-summary-list__key {
  margin-bottom: 5px;
  font-weight: 700;
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__key {
    width: 30%;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__value {
    margin-bottom: 15px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__value {
    width: 50%;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__value:last-child {
    width: 70%;
  }
}

.govuk-summary-list__value > p {
  margin-bottom: 10px;
}

.govuk-summary-list__value > :last-child {
  margin-bottom: 0;
}

.govuk-summary-list__actions-list {
  width: 100%;
  margin: 0;
  padding: 0;
}

.govuk-summary-list__actions-list-item {
  display: inline;
  margin-right: 10px;
  padding-right: 10px;
}

.govuk-summary-list__actions-list-item:not(:last-child) {
  border-right: 1px solid #b1b4b6;
}

.govuk-summary-list__actions-list-item:last-child {
  margin-right: 0;
  padding-right: 0;
  border: 0;
}

@media (max-width: 40.0525em) {
  .govuk-summary-list--no-border .govuk-summary-list__row {
    border: 0;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list--no-border .govuk-summary-list__key,
  .govuk-summary-list--no-border .govuk-summary-list__value,
  .govuk-summary-list--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

@media (max-width: 40.0525em) {
  .govuk-summary-list__row--no-border {
    border: 0;
  }
}

@media (min-width: 40.0625em) {
  .govuk-summary-list__row--no-border .govuk-summary-list__key,
  .govuk-summary-list__row--no-border .govuk-summary-list__value,
  .govuk-summary-list__row--no-border .govuk-summary-list__actions {
    padding-bottom: 11px;
    border: 0;
  }
}

.govuk-input {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  height: 2.5rem;
  margin-top: 0;
  padding: 5px;
  border: 2px solid #0b0c0c;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

@media print {
  .govuk-input {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-input {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-input {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-input:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-input::-webkit-outer-spin-button,
.govuk-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.govuk-input[type="number"] {
  -moz-appearance: textfield;
}

.govuk-input--error {
  border: 2px solid #d4351c;
}

.govuk-input--error:focus {
  border-color: #0b0c0c;
}

.govuk-input--width-30 {
  max-width: 59ex;
}

.govuk-input--width-20 {
  max-width: 41ex;
}

.govuk-input--width-10 {
  max-width: 23ex;
}

.govuk-input--width-5 {
  max-width: 10.8ex;
}

.govuk-input--width-4 {
  max-width: 9ex;
}

.govuk-input--width-3 {
  max-width: 7.2ex;
}

.govuk-input--width-2 {
  max-width: 5.4ex;
}

.govuk-input__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

.govuk-input__wrapper .govuk-input {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}

.govuk-input__wrapper .govuk-input:focus {
  z-index: 1;
}

@media (max-width: 19.99em) {
  .govuk-input__wrapper {
    display: block;
  }
  .govuk-input__wrapper .govuk-input {
    max-width: 100%;
  }
}

.govuk-input__prefix,
.govuk-input__suffix {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  display: inline-block;
  min-width: 40px;
  min-width: 2.5rem;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
  background-color: #f3f2f1;
  text-align: center;
  white-space: nowrap;
  cursor: default;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-input__prefix,
  .govuk-input__suffix {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (max-width: 40.0525em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    line-height: 1.6;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__prefix,
  .govuk-input__suffix {
    display: block;
    height: 100%;
    white-space: normal;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__prefix {
    border-bottom: 0;
  }
}

@media (min-width: 20em) {
  .govuk-input__prefix {
    border-right: 0;
  }
}

@media (max-width: 19.99em) {
  .govuk-input__suffix {
    border-top: 0;
  }
}

@media (min-width: 20em) {
  .govuk-input__suffix {
    border-left: 0;
  }
}

.govuk-date-input {
  font-size: 0;
}

.govuk-date-input:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-date-input__item {
  display: inline-block;
  margin-right: 20px;
  margin-bottom: 0;
}

.govuk-date-input__label {
  display: block;
}

.govuk-date-input__input {
  margin-bottom: 0;
}

.govuk-details {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 20px;
  display: block;
}

@media print {
  .govuk-details {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-details {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-details {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-details {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-details {
    margin-bottom: 30px;
  }
}

.govuk-details__summary {
  display: inline-block;
  position: relative;
  margin-bottom: 5px;
  padding-left: 25px;
  color: #1d70b8;
  cursor: pointer;
}

.govuk-details__summary:hover {
  color: #003078;
}

.govuk-details__summary:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-details__summary-text {
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

.govuk-details__summary:hover .govuk-details__summary-text {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-details__summary:focus .govuk-details__summary-text {
  text-decoration: none;
}

.govuk-details__summary::-webkit-details-marker {
  display: none;
}

.govuk-details__summary:before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: 0;
  left: 0;
  margin: auto;
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  border-width: 7px 0 7px 12.124px;
  border-left-color: inherit;
}

.govuk-details[open] > .govuk-details__summary:before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 12.124px 7px 0 7px;
  border-top-color: inherit;
}

.govuk-details__text {
  padding-top: 15px;
  padding-bottom: 15px;
  padding-left: 20px;
  border-left: 5px solid #b1b4b6;
}

.govuk-details__text p {
  margin-top: 0;
  margin-bottom: 20px;
}

.govuk-details__text > :last-child {
  margin-bottom: 0;
}

.govuk-error-summary {
  color: #0b0c0c;
  padding: 15px;
  margin-bottom: 30px;
  border: 5px solid #d4351c;
}

@media print {
  .govuk-error-summary {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-summary {
    padding: 20px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-summary {
    margin-bottom: 50px;
  }
}

.govuk-error-summary:focus {
  outline: 3px solid #ffdd00;
}

.govuk-error-summary__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-top: 0;
  margin-bottom: 15px;
}

@media print {
  .govuk-error-summary__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-error-summary__title {
    font-size: 18pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-summary__title {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}

@media print {
  .govuk-error-summary__body {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-error-summary__body {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-error-summary__body {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-error-summary__body p {
  margin-top: 0;
  margin-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .govuk-error-summary__body p {
    margin-bottom: 20px;
  }
}

.govuk-error-summary__list {
  margin-top: 0;
  margin-bottom: 0;
}

.govuk-error-summary__list a {
  font-weight: 700;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .govuk-error-summary__list a {
    font-family: sans-serif;
  }
}

.govuk-error-summary__list a:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-error-summary__list a:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-error-summary__list a:link, .govuk-error-summary__list a:visited {
  color: #d4351c;
}

.govuk-error-summary__list a:hover {
  color: #942514;
}

.govuk-error-summary__list a:active {
  color: #d4351c;
}

.govuk-error-summary__list a:focus {
  color: #0b0c0c;
}

.govuk-file-upload {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  max-width: 100%;
  margin-left: -5px;
  padding: 5px;
}

@media print {
  .govuk-file-upload {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-file-upload {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-file-upload {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-file-upload {
    color: #000000;
  }
}

.govuk-file-upload::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit;
}

.govuk-file-upload:focus {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}

.govuk-file-upload:focus-within {
  outline: 3px solid #ffdd00;
  box-shadow: inset 0 0 0 4px #0b0c0c;
}

.govuk-footer {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  padding-top: 25px;
  padding-bottom: 15px;
  border-top: 1px solid #b1b4b6;
  color: #0b0c0c;
  background: #f3f2f1;
}

@media print {
  .govuk-footer {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-footer {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-footer {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-top: 40px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-footer {
    padding-bottom: 25px;
  }
}

.govuk-footer__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .govuk-footer__link {
    font-family: sans-serif;
  }
}

.govuk-footer__link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-footer__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-footer__link:link, .govuk-footer__link:visited {
  color: #0b0c0c;
}

@media print {
  .govuk-footer__link:link, .govuk-footer__link:visited {
    color: #000000;
  }
}

.govuk-footer__link:hover {
  color: rgba(11, 12, 12, 0.99);
}

.govuk-footer__link:active, .govuk-footer__link:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-footer__link:active, .govuk-footer__link:focus {
    color: #000000;
  }
}

.govuk-footer__section-break {
  margin: 0;
  margin-bottom: 30px;
  border: 0;
  border-bottom: 1px solid #b1b4b6;
}

@media (min-width: 40.0625em) {
  .govuk-footer__section-break {
    margin-bottom: 50px;
  }
}

.govuk-footer__meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.govuk-footer__meta-item {
  margin-right: 15px;
  margin-bottom: 25px;
  margin-left: 15px;
}

.govuk-footer__meta-item--grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

@media (max-width: 40.0525em) {
  .govuk-footer__meta-item--grow {
    -webkit-flex-basis: 320px;
    -ms-flex-preferred-size: 320px;
    flex-basis: 320px;
  }
}

.govuk-footer__licence-logo {
  display: inline-block;
  margin-right: 10px;
  vertical-align: top;
  forced-color-adjust: auto;
}

@media (max-width: 48.0525em) {
  .govuk-footer__licence-logo {
    margin-bottom: 15px;
  }
}

.govuk-footer__licence-description {
  display: inline-block;
}

.govuk-footer__copyright-logo {
  display: inline-block;
  min-width: 125px;
  padding-top: 112px;
  background-image: url("/govuk/assets/images/govuk-crest.png");
  background-repeat: no-repeat;
  background-position: 50% 0%;
  background-size: 125px 102px;
  text-align: center;
  white-space: nowrap;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .govuk-footer__copyright-logo {
    background-image: url("/govuk/assets/images/govuk-crest-2x.png");
  }
}

.govuk-footer__inline-list {
  margin-top: 0;
  margin-bottom: 15px;
  padding: 0;
}

.govuk-footer__meta-custom {
  margin-bottom: 20px;
}

.govuk-footer__inline-list-item {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 5px;
}

.govuk-footer__heading {
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 1px solid #b1b4b6;
}

@media (min-width: 40.0625em) {
  .govuk-footer__heading {
    margin-bottom: 40px;
  }
}

@media (max-width: 40.0525em) {
  .govuk-footer__heading {
    padding-bottom: 10px;
  }
}

.govuk-footer__navigation {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-right: -15px;
  margin-left: -15px;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.govuk-footer__section {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 30px;
  margin-left: 15px;
  vertical-align: top;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -webkit-flex-shrink: 1;
  -ms-flex-negative: 1;
  flex-shrink: 1;
}

@media (max-width: 48.0525em) {
  .govuk-footer__section {
    -webkit-flex-basis: 200px;
    -ms-flex-preferred-size: 200px;
    flex-basis: 200px;
  }
}

@media (min-width: 48.0625em) {
  .govuk-footer__section:first-child:nth-last-child(2) {
    -webkit-box-flex: 2;
    -webkit-flex-grow: 2;
    -ms-flex-positive: 2;
    flex-grow: 2;
  }
}

.govuk-footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-column-gap: 30px;
  column-gap: 30px;
}

.govuk-footer__list .govuk-footer__link:hover {
  text-decoration-thickness: auto;
}

@media (min-width: 48.0625em) {
  .govuk-footer__list--columns-2 {
    -webkit-column-count: 2;
    column-count: 2;
  }
  .govuk-footer__list--columns-3 {
    -webkit-column-count: 3;
    column-count: 3;
  }
}

.govuk-footer__list-item {
  margin-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .govuk-footer__list-item {
    margin-bottom: 20px;
  }
}

.govuk-footer__list-item:last-child {
  margin-bottom: 0;
}

.govuk-header {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  border-bottom: 10px solid #ffffff;
  color: #ffffff;
  background: #0b0c0c;
}

@media print {
  .govuk-header {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-header {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-header {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.govuk-header__container--full-width {
  padding: 0 15px;
  border-color: #1d70b8;
}

.govuk-header__container--full-width .govuk-header__menu-button {
  right: 15px;
}

.govuk-header__container {
  position: relative;
  margin-bottom: -10px;
  padding-top: 10px;
  border-bottom: 10px solid #1d70b8;
}

.govuk-header__container:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-header__logotype {
  display: inline-block;
  margin-right: 5px;
}

@media (forced-colors: active) {
  .govuk-header__logotype {
    forced-color-adjust: none;
    color: linktext;
  }
}

.govuk-header__logotype:last-child {
  margin-right: 0;
}

.govuk-header__logotype-crown {
  position: relative;
  top: -1px;
  margin-right: 1px;
  fill: currentColor;
  vertical-align: top;
}

.govuk-header__logotype-crown-fallback-image {
  width: 36px;
  height: 32px;
  border: 0;
  vertical-align: bottom;
}

.govuk-header__product-name {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1;
  display: inline-table;
}

@media print {
  .govuk-header__product-name {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-header__product-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1;
  }
}

@media print {
  .govuk-header__product-name {
    font-size: 18pt;
    line-height: 1;
  }
}

.govuk-header__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: none;
}

@media print {
  .govuk-header__link {
    font-family: sans-serif;
  }
}

.govuk-header__link:link, .govuk-header__link:visited {
  color: #ffffff;
}

.govuk-header__link:hover, .govuk-header__link:active {
  color: rgba(255, 255, 255, 0.99);
}

.govuk-header__link:focus {
  color: #0b0c0c;
}

.govuk-header__link:hover {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 0.1em;
}

.govuk-header__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-header__link--homepage {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  display: inline-block;
  margin-right: 10px;
  font-size: 30px;
  line-height: 1;
}

@media print {
  .govuk-header__link--homepage {
    font-family: sans-serif;
  }
}

.govuk-header__link--homepage:link, .govuk-header__link--homepage:visited {
  text-decoration: none;
}

.govuk-header__link--homepage:hover, .govuk-header__link--homepage:active {
  margin-bottom: -3px;
  border-bottom: 3px solid;
}

.govuk-header__link--homepage:focus {
  margin-bottom: 0;
  border-bottom: 0;
}

.govuk-header__link--service-name {
  display: inline-block;
  margin-bottom: 10px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
}

@media print {
  .govuk-header__link--service-name {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-header__link--service-name {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-header__link--service-name {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-header__logo,
.govuk-header__content {
  box-sizing: border-box;
}

.govuk-header__logo {
  margin-bottom: 10px;
  padding-right: 50px;
}

@media (min-width: 40.0625em) {
  .govuk-header__logo {
    margin-bottom: 10px;
  }
}

@media (min-width: 48.0625em) {
  .govuk-header__logo {
    width: 33.33%;
    padding-right: 15px;
    float: left;
    vertical-align: top;
  }
}

@media (min-width: 48.0625em) {
  .govuk-header__content {
    width: 66.66%;
    padding-left: 15px;
    float: left;
  }
}

.govuk-header__menu-button {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  display: none;
  position: absolute;
  top: 20px;
  right: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: #ffffff;
  background: none;
  cursor: pointer;
}

@media print {
  .govuk-header__menu-button {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-header__menu-button {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.govuk-header__menu-button:hover {
  -webkit-text-decoration: solid underline 3px;
  text-decoration: solid underline 3px;
  text-underline-offset: 0.1em;
}

.govuk-header__menu-button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-header__menu-button:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
  border-width: 8.66px 5px 0 5px;
  border-top-color: inherit;
  content: "";
  margin-left: 5px;
}

@media (min-width: 40.0625em) {
  .govuk-header__menu-button {
    top: 15px;
  }
}

.govuk-header__menu-button--open:after {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-width: 0 5px 8.66px 5px;
  border-bottom-color: inherit;
}

.govuk-header__navigation {
  margin-bottom: 10px;
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 40.0625em) {
  .govuk-header__navigation {
    margin-bottom: 10px;
  }
}

.js-enabled .govuk-header__menu-button {
  display: block;
}

@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__menu-button {
    display: none;
  }
}

.js-enabled .govuk-header__navigation {
  display: none;
}

@media (min-width: 48.0625em) {
  .js-enabled .govuk-header__navigation {
    display: block;
  }
}

.js-enabled .govuk-header__navigation--open {
  display: block;
}

@media (min-width: 48.0625em) {
  .govuk-header__navigation--end {
    margin: 0;
    padding: 5px 0;
    text-align: right;
  }
}

.govuk-header__navigation--no-service-name {
  padding-top: 40px;
}

.govuk-header__navigation-item {
  padding: 10px 0;
  border-bottom: 1px solid #2e3133;
}

@media (min-width: 48.0625em) {
  .govuk-header__navigation-item {
    display: inline-block;
    margin-right: 15px;
    padding: 5px 0;
    border: 0;
  }
}

.govuk-header__navigation-item a {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  white-space: nowrap;
}

@media print {
  .govuk-header__navigation-item a {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-header__navigation-item a {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-header__navigation-item a {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.govuk-header__navigation-item--active a:link, .govuk-header__navigation-item--active a:hover, .govuk-header__navigation-item--active a:visited {
  color: #1d8feb;
}

.govuk-header__navigation-item--active a:focus {
  color: #0b0c0c;
}

.govuk-header__navigation-item:last-child {
  margin-right: 0;
}

@media print {
  .govuk-header {
    border-bottom-width: 0;
    color: #0b0c0c;
    background: transparent;
  }
  .govuk-header__logotype-crown-fallback-image {
    display: none;
  }
  .govuk-header__link:link, .govuk-header__link:visited {
    color: #0b0c0c;
  }
  .govuk-header__link:after {
    display: none;
  }
}

.govuk-inset-text {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  padding: 15px;
  margin-top: 20px;
  margin-bottom: 20px;
  clear: both;
  border-left: 10px solid #b1b4b6;
}

@media print {
  .govuk-inset-text {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-inset-text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-inset-text {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-inset-text {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-inset-text {
    margin-top: 30px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-inset-text {
    margin-bottom: 30px;
  }
}

.govuk-inset-text > :first-child {
  margin-top: 0;
}

.govuk-inset-text > :only-child,
.govuk-inset-text > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: 30px;
  border: 5px solid #1d70b8;
  background-color: #1d70b8;
}

@media print {
  .govuk-notification-banner {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-notification-banner {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner {
    margin-bottom: 50px;
  }
}

.govuk-notification-banner:focus {
  outline: 3px solid #ffdd00;
}

.govuk-notification-banner__header {
  padding: 2px 15px 5px;
  border-bottom: 1px solid transparent;
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner__header {
    padding: 2px 20px 5px;
  }
}

.govuk-notification-banner__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin: 0;
  padding: 0;
  color: #ffffff;
}

@media print {
  .govuk-notification-banner__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-notification-banner__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-notification-banner__content {
  color: #0b0c0c;
  padding: 15px;
  background-color: #ffffff;
}

@media print {
  .govuk-notification-banner__content {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner__content {
    padding: 20px;
  }
}

.govuk-notification-banner__content > * {
  box-sizing: border-box;
  max-width: 605px;
}

.govuk-notification-banner__content > :last-child {
  margin-bottom: 0;
}

.govuk-notification-banner__heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin: 0 0 15px 0;
  padding: 0;
}

@media print {
  .govuk-notification-banner__heading {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-notification-banner__heading {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-notification-banner__heading {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-notification-banner__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .govuk-notification-banner__link {
    font-family: sans-serif;
  }
}

.govuk-notification-banner__link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-notification-banner__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-notification-banner__link:link {
  color: #1d70b8;
}

.govuk-notification-banner__link:visited {
  color: #1d70b8;
}

.govuk-notification-banner__link:hover {
  color: #003078;
}

.govuk-notification-banner__link:active {
  color: #0b0c0c;
}

.govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-notification-banner--success {
  border-color: #00703c;
  background-color: #00703c;
}

.govuk-notification-banner--success .govuk-notification-banner__link:link, .govuk-notification-banner--success .govuk-notification-banner__link:visited {
  color: #00703c;
}

.govuk-notification-banner--success .govuk-notification-banner__link:hover {
  color: #004e2a;
}

.govuk-notification-banner--success .govuk-notification-banner__link:active {
  color: #00703c;
}

.govuk-notification-banner--success .govuk-notification-banner__link:focus {
  color: #0b0c0c;
}

.govuk-panel {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  margin-bottom: 15px;
  padding: 35px;
  border: 5px solid transparent;
  text-align: center;
}

@media print {
  .govuk-panel {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-panel {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-panel {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (max-width: 40.0525em) {
  .govuk-panel {
    padding: 25px;
  }
}

.govuk-panel--confirmation {
  color: #ffffff;
  background: #00703c;
}

@media print {
  .govuk-panel--confirmation {
    border-color: currentColor;
    color: #000000;
    background: none;
  }
}

.govuk-panel__title {
  margin-top: 0;
  margin-bottom: 30px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
}

@media print {
  .govuk-panel__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-panel__title {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.04167;
  }
}

@media print {
  .govuk-panel__title {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-panel__title:last-child {
  margin-bottom: 0;
}

.govuk-panel__body {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.04167;
}

@media print {
  .govuk-panel__body {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-panel__body {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-panel__body {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-tag {
  display: inline-block;
  outline: 2px solid transparent;
  outline-offset: -2px;
  color: #ffffff;
  background-color: #1d70b8;
  letter-spacing: 1px;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1;
  padding-top: 5px;
  padding-right: 8px;
  padding-bottom: 4px;
  padding-left: 8px;
}

@media print {
  .govuk-tag {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-tag {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1;
  }
}

@media print {
  .govuk-tag {
    font-size: 14pt;
    line-height: 1;
  }
}

.govuk-tag--inactive {
  background-color: #505a5f;
}

.govuk-tag--grey {
  color: #383f43;
  background: #eeefef;
}

.govuk-tag--purple {
  color: #3d2375;
  background: #dbd5e9;
}

.govuk-tag--turquoise {
  color: #10403c;
  background: #bfe3e0;
}

.govuk-tag--blue {
  color: #144e81;
  background: #d2e2f1;
}

.govuk-tag--yellow {
  color: #594d00;
  background: #fff7bf;
}

.govuk-tag--orange {
  color: #6e3619;
  background: #fcd6c3;
}

.govuk-tag--red {
  color: #942514;
  background: #f6d7d2;
}

.govuk-tag--pink {
  color: #80224d;
  background: #f7d7e6;
}

.govuk-tag--green {
  color: #005a30;
  background: #cce2d8;
}

.govuk-phase-banner {
  padding-top: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #b1b4b6;
}

.govuk-phase-banner__content {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  color: #0b0c0c;
  display: table;
  margin: 0;
}

@media print {
  .govuk-phase-banner__content {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-phase-banner__content {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-phase-banner__content {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@media print {
  .govuk-phase-banner__content {
    color: #000000;
  }
}

.govuk-phase-banner__content__tag {
  margin-right: 10px;
}

.govuk-phase-banner__text {
  display: table-cell;
  vertical-align: middle;
}

.govuk-tabs {
  margin-top: 5px;
  margin-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-top: 5px;
  }
}

@media (min-width: 40.0625em) {
  .govuk-tabs {
    margin-bottom: 30px;
  }
}

.govuk-tabs__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  margin-bottom: 10px;
}

@media print {
  .govuk-tabs__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-tabs__title {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-tabs__title {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-tabs__title {
    color: #000000;
  }
}

.govuk-tabs__list {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-bottom: 20px;
}

@media (min-width: 40.0625em) {
  .govuk-tabs__list {
    margin-bottom: 30px;
  }
}

.govuk-tabs__list-item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-left: 25px;
}

@media print {
  .govuk-tabs__list-item {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-tabs__list-item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-tabs__list-item {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-tabs__list-item:before {
  color: #0b0c0c;
  content: "\2014 ";
  margin-left: -25px;
  padding-right: 5px;
}

@media print {
  .govuk-tabs__list-item:before {
    color: #000000;
  }
}

.govuk-tabs__tab {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
  display: inline-block;
  margin-bottom: 10px;
}

@media print {
  .govuk-tabs__tab {
    font-family: sans-serif;
  }
}

.govuk-tabs__tab:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.govuk-tabs__tab:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.govuk-tabs__tab:link {
  color: #1d70b8;
}

.govuk-tabs__tab:visited {
  color: #4c2c92;
}

.govuk-tabs__tab:hover {
  color: #003078;
}

.govuk-tabs__tab:active {
  color: #0b0c0c;
}

.govuk-tabs__tab:focus {
  color: #0b0c0c;
}

.govuk-tabs__panel {
  margin-bottom: 30px;
}

@media (min-width: 40.0625em) {
  .govuk-tabs__panel {
    margin-bottom: 50px;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__list {
    margin-bottom: 0;
    border-bottom: 1px solid #b1b4b6;
  }
  .js-enabled .govuk-tabs__list:after {
    content: "";
    display: block;
    clear: both;
  }
  .js-enabled .govuk-tabs__title {
    display: none;
  }
  .js-enabled .govuk-tabs__list-item {
    position: relative;
    margin-right: 5px;
    margin-bottom: 0;
    margin-left: 0;
    padding: 10px 20px;
    float: left;
    background-color: #f3f2f1;
    text-align: center;
  }
  .js-enabled .govuk-tabs__list-item:before {
    content: none;
  }
  .js-enabled .govuk-tabs__list-item--selected {
    position: relative;
    margin-top: -5px;
    margin-bottom: -1px;
    padding-top: 14px;
    padding-right: 19px;
    padding-bottom: 16px;
    padding-left: 19px;
    border: 1px solid #b1b4b6;
    border-bottom: 0;
    background-color: #ffffff;
  }
  .js-enabled .govuk-tabs__list-item--selected .govuk-tabs__tab {
    text-decoration: none;
  }
  .js-enabled .govuk-tabs__tab {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #0b0c0c;
  }
}

@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:link, .js-enabled .govuk-tabs__tab:visited {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:hover {
    color: rgba(11, 12, 12, 0.99);
  }
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #0b0c0c;
  }
}

@media print and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:active, .js-enabled .govuk-tabs__tab:focus {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__tab:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
    padding: 30px 20px;
    border: 1px solid #b1b4b6;
    border-top: 0;
  }
}

@media (min-width: 40.0625em) and (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel {
    margin-bottom: 0;
  }
}

@media (min-width: 40.0625em) {
  .js-enabled .govuk-tabs__panel > :last-child {
    margin-bottom: 0;
  }
  .js-enabled .govuk-tabs__panel--hidden {
    display: none;
  }
}

.govuk-radios__item {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  display: block;
  position: relative;
  min-height: 40px;
  margin-bottom: 10px;
  padding-left: 40px;
  clear: left;
}

@media print {
  .govuk-radios__item {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-radios__item {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-radios__item {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-radios__item:last-child,
.govuk-radios__item:last-of-type {
  margin-bottom: 0;
}

.govuk-radios__input {
  cursor: pointer;
  position: absolute;
  z-index: 1;
  top: -2px;
  left: -2px;
  width: 44px;
  height: 44px;
  margin: 0;
  opacity: 0;
}

.govuk-radios__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 8px 15px 5px;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.govuk-radios__label:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}

.govuk-radios__label:after {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 0;
  height: 0;
  border: 10px solid currentColor;
  border-radius: 50%;
  opacity: 0;
  background: currentColor;
}

.govuk-radios__hint {
  display: block;
  padding-right: 15px;
  padding-left: 15px;
}

.govuk-radios__input:focus + .govuk-radios__label:before {
  border-width: 4px;
  outline: 3px solid transparent;
  outline-offset: 1px;
  box-shadow: 0 0 0 4px #ffdd00;
}

@media screen and (forced-colors: active), (-ms-high-contrast: active) {
  .govuk-radios__input:focus + .govuk-radios__label:before {
    outline-color: Highlight;
  }
}

.govuk-radios__input:checked + .govuk-radios__label:after {
  opacity: 1;
}

.govuk-radios__input:disabled,
.govuk-radios__input:disabled + .govuk-radios__label {
  cursor: default;
}

.govuk-radios__input:disabled + .govuk-radios__label {
  opacity: .5;
}

@media (min-width: 40.0625em) {
  .govuk-radios--inline:after {
    content: "";
    display: block;
    clear: both;
  }
  .govuk-radios--inline .govuk-radios__item {
    margin-right: 20px;
    float: left;
    clear: none;
  }
}

.govuk-radios--inline.govuk-radios--conditional .govuk-radios__item {
  margin-right: 0;
  float: none;
}

.govuk-radios__divider {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 40px;
  margin-bottom: 10px;
  text-align: center;
}

@media print {
  .govuk-radios__divider {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-radios__divider {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-radios__divider {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-radios__divider {
    color: #000000;
  }
}

.govuk-radios__conditional {
  margin-bottom: 15px;
  margin-left: 18px;
  padding-left: 33px;
  border-left: 4px solid #b1b4b6;
}

@media (min-width: 40.0625em) {
  .govuk-radios__conditional {
    margin-bottom: 20px;
  }
}

.js-enabled .govuk-radios__conditional--hidden {
  display: none;
}

.govuk-radios__conditional > :last-child {
  margin-bottom: 0;
}

.govuk-radios--small .govuk-radios__item {
  min-height: 0;
  margin-bottom: 0;
  padding-left: 34px;
  float: left;
}

.govuk-radios--small .govuk-radios__item:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-radios--small .govuk-radios__input {
  left: -10px;
}

.govuk-radios--small .govuk-radios__label {
  margin-top: -2px;
  padding: 13px 15px 13px 1px;
  float: left;
}

@media (min-width: 40.0625em) {
  .govuk-radios--small .govuk-radios__label {
    padding: 11px 15px 10px 1px;
  }
}

.govuk-radios--small .govuk-radios__label:before {
  top: 8px;
  width: 24px;
  height: 24px;
}

.govuk-radios--small .govuk-radios__label:after {
  top: 15px;
  left: 7px;
  border-width: 5px;
}

.govuk-radios--small .govuk-radios__hint {
  padding: 0;
  clear: both;
  pointer-events: none;
}

.govuk-radios--small .govuk-radios__conditional {
  margin-left: 10px;
  padding-left: 20px;
  clear: both;
}

.govuk-radios--small .govuk-radios__divider {
  width: 24px;
  margin-bottom: 5px;
}

.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
  box-shadow: 0 0 0 10px #b1b4b6;
}

.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
  box-shadow: 0 0 0 4px #ffdd00, 0 0 0 10px #b1b4b6;
}

@media (hover: none), (pointer: coarse) {
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label:before {
    box-shadow: initial;
  }
  .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label:before {
    box-shadow: 0 0 0 4px #ffdd00;
  }
}

.govuk-select {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  box-sizing: border-box;
  max-width: 100%;
  height: 40px;
  height: 2.5rem;
  padding: 5px;
  border: 2px solid #0b0c0c;
}

@media print {
  .govuk-select {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-select {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-select {
    font-size: 14pt;
    line-height: 1.25;
  }
}

.govuk-select:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  box-shadow: inset 0 0 0 2px;
}

.govuk-select option:active,
.govuk-select option:checked,
.govuk-select:focus::-ms-value {
  color: #ffffff;
  background-color: #1d70b8;
}

.govuk-select--error {
  border: 2px solid #d4351c;
}

.govuk-select--error:focus {
  border-color: #0b0c0c;
}

.govuk-skip-link {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  display: block;
  padding: 10px 15px;
}

.govuk-skip-link:active, .govuk-skip-link:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}

@media print {
  .govuk-skip-link {
    font-family: sans-serif;
  }
}

.govuk-skip-link:link, .govuk-skip-link:visited {
  color: #0b0c0c;
}

@media print {
  .govuk-skip-link:link, .govuk-skip-link:visited {
    color: #000000;
  }
}

.govuk-skip-link:hover {
  color: rgba(11, 12, 12, 0.99);
}

.govuk-skip-link:active, .govuk-skip-link:focus {
  color: #0b0c0c;
}

@media print {
  .govuk-skip-link:active, .govuk-skip-link:focus {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-skip-link {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-skip-link {
    font-size: 14pt;
    line-height: 1.2;
  }
}

@supports (padding: max(calc(0px))) {
  .govuk-skip-link {
    padding-right: max(15px, calc(15px + env(safe-area-inset-right)));
    padding-left: max(15px, calc(15px + env(safe-area-inset-left)));
  }
}

.govuk-skip-link:focus {
  outline: 3px solid #ffdd00;
  outline-offset: 0;
  background-color: #ffdd00;
  box-shadow: none;
}

.govuk-table {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  width: 100%;
  margin-bottom: 20px;
  border-spacing: 0;
  border-collapse: collapse;
}

@media print {
  .govuk-table {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-table {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-table {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table {
    margin-bottom: 30px;
  }
}

.govuk-table__header {
  font-weight: 700;
}

.govuk-table__header,
.govuk-table__cell {
  padding: 10px 20px 10px 0;
  border-bottom: 1px solid #b1b4b6;
  text-align: left;
  vertical-align: top;
}

.govuk-table__cell--numeric {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-feature-settings: "tnum" 1;
  font-feature-settings: "tnum" 1;
  font-weight: 400;
}

@media print {
  .govuk-table__cell--numeric {
    font-family: sans-serif;
  }
}

@supports (font-variant-numeric: tabular-nums) {
  .govuk-table__cell--numeric {
    -webkit-font-feature-settings: normal;
    font-feature-settings: normal;
    font-variant-numeric: tabular-nums;
  }
}

.govuk-table__header--numeric,
.govuk-table__cell--numeric {
  text-align: right;
}

.govuk-table__header:last-child,
.govuk-table__cell:last-child {
  padding-right: 0;
}

.govuk-table__caption {
  font-weight: 700;
  display: table-caption;
  text-align: left;
}

.govuk-table__caption--xl {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 32px;
  font-size: 2rem;
  line-height: 1.09375;
  margin-bottom: 15px;
}

@media print {
  .govuk-table__caption--xl {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table__caption--xl {
    font-size: 48px;
    font-size: 3rem;
    line-height: 1.04167;
  }
}

@media print {
  .govuk-table__caption--xl {
    font-size: 32pt;
    line-height: 1.15;
  }
}

.govuk-table__caption--l {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 1.04167;
  margin-bottom: 15px;
}

@media print {
  .govuk-table__caption--l {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table__caption--l {
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 1.11111;
  }
}

@media print {
  .govuk-table__caption--l {
    font-size: 24pt;
    line-height: 1.05;
  }
}

.govuk-table__caption--m {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
  margin-bottom: 15px;
}

@media print {
  .govuk-table__caption--m {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table__caption--m {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .govuk-table__caption--m {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.govuk-table__caption--s {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}

@media print {
  .govuk-table__caption--s {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-table__caption--s {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-table__caption--s {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.govuk-warning-text {
  position: relative;
  margin-bottom: 20px;
  padding: 10px 0;
}

@media (min-width: 40.0625em) {
  .govuk-warning-text {
    margin-bottom: 30px;
  }
}

.govuk-warning-text__assistive {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-warning-text__icon {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  box-sizing: border-box;
  display: inline-block;
  position: absolute;
  left: 0;
  min-width: 35px;
  min-height: 35px;
  margin-top: -7px;
  border: 3px solid #0b0c0c;
  border-radius: 50%;
  color: #ffffff;
  background: #0b0c0c;
  font-size: 30px;
  line-height: 29px;
  text-align: center;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  forced-color-adjust: none;
}

@media print {
  .govuk-warning-text__icon {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-warning-text__icon {
    margin-top: -5px;
  }
}

@media screen and (forced-colors: active) {
  .govuk-warning-text__icon {
    border-color: windowText;
    color: windowText;
    background: transparent;
  }
}

.govuk-warning-text__text {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  color: #0b0c0c;
  display: block;
  padding-left: 45px;
}

@media print {
  .govuk-warning-text__text {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .govuk-warning-text__text {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .govuk-warning-text__text {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media print {
  .govuk-warning-text__text {
    color: #000000;
  }
}

.govuk-clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.govuk-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.govuk-visually-hidden-focusable {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.govuk-visually-hidden-focusable:active, .govuk-visually-hidden-focusable:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: inherit !important;
  overflow: visible !important;
  clip: auto !important;
  -webkit-clip-path: none !important;
  clip-path: none !important;
  white-space: inherit !important;
}

.govuk-\!-display-inline {
  display: inline !important;
}

.govuk-\!-display-inline-block {
  display: inline-block !important;
}

.govuk-\!-display-block {
  display: block !important;
}

.govuk-\!-display-none {
  display: none !important;
}

@media print {
  .govuk-\!-display-none-print {
    display: none !important;
  }
}

.govuk-\!-margin-0 {
  margin: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-0 {
    margin: 0 !important;
  }
}

.govuk-\!-margin-top-0 {
  margin-top: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-0 {
    margin-top: 0 !important;
  }
}

.govuk-\!-margin-right-0 {
  margin-right: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-0 {
    margin-right: 0 !important;
  }
}

.govuk-\!-margin-bottom-0 {
  margin-bottom: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-0 {
    margin-bottom: 0 !important;
  }
}

.govuk-\!-margin-left-0 {
  margin-left: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-0 {
    margin-left: 0 !important;
  }
}

.govuk-\!-margin-1 {
  margin: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-1 {
    margin: 5px !important;
  }
}

.govuk-\!-margin-top-1 {
  margin-top: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-1 {
    margin-top: 5px !important;
  }
}

.govuk-\!-margin-right-1 {
  margin-right: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-1 {
    margin-right: 5px !important;
  }
}

.govuk-\!-margin-bottom-1 {
  margin-bottom: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-1 {
    margin-bottom: 5px !important;
  }
}

.govuk-\!-margin-left-1 {
  margin-left: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-1 {
    margin-left: 5px !important;
  }
}

.govuk-\!-margin-2 {
  margin: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-2 {
    margin: 10px !important;
  }
}

.govuk-\!-margin-top-2 {
  margin-top: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-2 {
    margin-top: 10px !important;
  }
}

.govuk-\!-margin-right-2 {
  margin-right: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-2 {
    margin-right: 10px !important;
  }
}

.govuk-\!-margin-bottom-2 {
  margin-bottom: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-2 {
    margin-bottom: 10px !important;
  }
}

.govuk-\!-margin-left-2 {
  margin-left: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-2 {
    margin-left: 10px !important;
  }
}

.govuk-\!-margin-3 {
  margin: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-3 {
    margin: 15px !important;
  }
}

.govuk-\!-margin-top-3 {
  margin-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-3 {
    margin-top: 15px !important;
  }
}

.govuk-\!-margin-right-3 {
  margin-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-3 {
    margin-right: 15px !important;
  }
}

.govuk-\!-margin-bottom-3 {
  margin-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-3 {
    margin-bottom: 15px !important;
  }
}

.govuk-\!-margin-left-3 {
  margin-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-3 {
    margin-left: 15px !important;
  }
}

.govuk-\!-margin-4 {
  margin: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-4 {
    margin: 20px !important;
  }
}

.govuk-\!-margin-top-4 {
  margin-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-4 {
    margin-top: 20px !important;
  }
}

.govuk-\!-margin-right-4 {
  margin-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-4 {
    margin-right: 20px !important;
  }
}

.govuk-\!-margin-bottom-4 {
  margin-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-4 {
    margin-bottom: 20px !important;
  }
}

.govuk-\!-margin-left-4 {
  margin-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-4 {
    margin-left: 20px !important;
  }
}

.govuk-\!-margin-5 {
  margin: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-5 {
    margin: 25px !important;
  }
}

.govuk-\!-margin-top-5 {
  margin-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-5 {
    margin-top: 25px !important;
  }
}

.govuk-\!-margin-right-5 {
  margin-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-5 {
    margin-right: 25px !important;
  }
}

.govuk-\!-margin-bottom-5 {
  margin-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-5 {
    margin-bottom: 25px !important;
  }
}

.govuk-\!-margin-left-5 {
  margin-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-5 {
    margin-left: 25px !important;
  }
}

.govuk-\!-margin-6 {
  margin: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-6 {
    margin: 30px !important;
  }
}

.govuk-\!-margin-top-6 {
  margin-top: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-6 {
    margin-top: 30px !important;
  }
}

.govuk-\!-margin-right-6 {
  margin-right: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-6 {
    margin-right: 30px !important;
  }
}

.govuk-\!-margin-bottom-6 {
  margin-bottom: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-6 {
    margin-bottom: 30px !important;
  }
}

.govuk-\!-margin-left-6 {
  margin-left: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-6 {
    margin-left: 30px !important;
  }
}

.govuk-\!-margin-7 {
  margin: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-7 {
    margin: 40px !important;
  }
}

.govuk-\!-margin-top-7 {
  margin-top: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-7 {
    margin-top: 40px !important;
  }
}

.govuk-\!-margin-right-7 {
  margin-right: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-7 {
    margin-right: 40px !important;
  }
}

.govuk-\!-margin-bottom-7 {
  margin-bottom: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-7 {
    margin-bottom: 40px !important;
  }
}

.govuk-\!-margin-left-7 {
  margin-left: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-7 {
    margin-left: 40px !important;
  }
}

.govuk-\!-margin-8 {
  margin: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-8 {
    margin: 50px !important;
  }
}

.govuk-\!-margin-top-8 {
  margin-top: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-8 {
    margin-top: 50px !important;
  }
}

.govuk-\!-margin-right-8 {
  margin-right: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-8 {
    margin-right: 50px !important;
  }
}

.govuk-\!-margin-bottom-8 {
  margin-bottom: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-8 {
    margin-bottom: 50px !important;
  }
}

.govuk-\!-margin-left-8 {
  margin-left: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-8 {
    margin-left: 50px !important;
  }
}

.govuk-\!-margin-9 {
  margin: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-9 {
    margin: 60px !important;
  }
}

.govuk-\!-margin-top-9 {
  margin-top: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-top-9 {
    margin-top: 60px !important;
  }
}

.govuk-\!-margin-right-9 {
  margin-right: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-right-9 {
    margin-right: 60px !important;
  }
}

.govuk-\!-margin-bottom-9 {
  margin-bottom: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-bottom-9 {
    margin-bottom: 60px !important;
  }
}

.govuk-\!-margin-left-9 {
  margin-left: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-margin-left-9 {
    margin-left: 60px !important;
  }
}

.govuk-\!-padding-0 {
  padding: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-0 {
    padding: 0 !important;
  }
}

.govuk-\!-padding-top-0 {
  padding-top: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-0 {
    padding-top: 0 !important;
  }
}

.govuk-\!-padding-right-0 {
  padding-right: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-0 {
    padding-right: 0 !important;
  }
}

.govuk-\!-padding-bottom-0 {
  padding-bottom: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-0 {
    padding-bottom: 0 !important;
  }
}

.govuk-\!-padding-left-0 {
  padding-left: 0 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-0 {
    padding-left: 0 !important;
  }
}

.govuk-\!-padding-1 {
  padding: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-1 {
    padding: 5px !important;
  }
}

.govuk-\!-padding-top-1 {
  padding-top: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-1 {
    padding-top: 5px !important;
  }
}

.govuk-\!-padding-right-1 {
  padding-right: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-1 {
    padding-right: 5px !important;
  }
}

.govuk-\!-padding-bottom-1 {
  padding-bottom: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-1 {
    padding-bottom: 5px !important;
  }
}

.govuk-\!-padding-left-1 {
  padding-left: 5px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-1 {
    padding-left: 5px !important;
  }
}

.govuk-\!-padding-2 {
  padding: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-2 {
    padding: 10px !important;
  }
}

.govuk-\!-padding-top-2 {
  padding-top: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-2 {
    padding-top: 10px !important;
  }
}

.govuk-\!-padding-right-2 {
  padding-right: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-2 {
    padding-right: 10px !important;
  }
}

.govuk-\!-padding-bottom-2 {
  padding-bottom: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-2 {
    padding-bottom: 10px !important;
  }
}

.govuk-\!-padding-left-2 {
  padding-left: 10px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-2 {
    padding-left: 10px !important;
  }
}

.govuk-\!-padding-3 {
  padding: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-3 {
    padding: 15px !important;
  }
}

.govuk-\!-padding-top-3 {
  padding-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-3 {
    padding-top: 15px !important;
  }
}

.govuk-\!-padding-right-3 {
  padding-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-3 {
    padding-right: 15px !important;
  }
}

.govuk-\!-padding-bottom-3 {
  padding-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-3 {
    padding-bottom: 15px !important;
  }
}

.govuk-\!-padding-left-3 {
  padding-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-3 {
    padding-left: 15px !important;
  }
}

.govuk-\!-padding-4 {
  padding: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-4 {
    padding: 20px !important;
  }
}

.govuk-\!-padding-top-4 {
  padding-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-4 {
    padding-top: 20px !important;
  }
}

.govuk-\!-padding-right-4 {
  padding-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-4 {
    padding-right: 20px !important;
  }
}

.govuk-\!-padding-bottom-4 {
  padding-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-4 {
    padding-bottom: 20px !important;
  }
}

.govuk-\!-padding-left-4 {
  padding-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-4 {
    padding-left: 20px !important;
  }
}

.govuk-\!-padding-5 {
  padding: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-5 {
    padding: 25px !important;
  }
}

.govuk-\!-padding-top-5 {
  padding-top: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-5 {
    padding-top: 25px !important;
  }
}

.govuk-\!-padding-right-5 {
  padding-right: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-5 {
    padding-right: 25px !important;
  }
}

.govuk-\!-padding-bottom-5 {
  padding-bottom: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-5 {
    padding-bottom: 25px !important;
  }
}

.govuk-\!-padding-left-5 {
  padding-left: 15px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-5 {
    padding-left: 25px !important;
  }
}

.govuk-\!-padding-6 {
  padding: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-6 {
    padding: 30px !important;
  }
}

.govuk-\!-padding-top-6 {
  padding-top: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-6 {
    padding-top: 30px !important;
  }
}

.govuk-\!-padding-right-6 {
  padding-right: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-6 {
    padding-right: 30px !important;
  }
}

.govuk-\!-padding-bottom-6 {
  padding-bottom: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-6 {
    padding-bottom: 30px !important;
  }
}

.govuk-\!-padding-left-6 {
  padding-left: 20px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-6 {
    padding-left: 30px !important;
  }
}

.govuk-\!-padding-7 {
  padding: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-7 {
    padding: 40px !important;
  }
}

.govuk-\!-padding-top-7 {
  padding-top: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-7 {
    padding-top: 40px !important;
  }
}

.govuk-\!-padding-right-7 {
  padding-right: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-7 {
    padding-right: 40px !important;
  }
}

.govuk-\!-padding-bottom-7 {
  padding-bottom: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-7 {
    padding-bottom: 40px !important;
  }
}

.govuk-\!-padding-left-7 {
  padding-left: 25px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-7 {
    padding-left: 40px !important;
  }
}

.govuk-\!-padding-8 {
  padding: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-8 {
    padding: 50px !important;
  }
}

.govuk-\!-padding-top-8 {
  padding-top: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-8 {
    padding-top: 50px !important;
  }
}

.govuk-\!-padding-right-8 {
  padding-right: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-8 {
    padding-right: 50px !important;
  }
}

.govuk-\!-padding-bottom-8 {
  padding-bottom: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-8 {
    padding-bottom: 50px !important;
  }
}

.govuk-\!-padding-left-8 {
  padding-left: 30px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-8 {
    padding-left: 50px !important;
  }
}

.govuk-\!-padding-9 {
  padding: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-9 {
    padding: 60px !important;
  }
}

.govuk-\!-padding-top-9 {
  padding-top: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-top-9 {
    padding-top: 60px !important;
  }
}

.govuk-\!-padding-right-9 {
  padding-right: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-right-9 {
    padding-right: 60px !important;
  }
}

.govuk-\!-padding-bottom-9 {
  padding-bottom: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-bottom-9 {
    padding-bottom: 60px !important;
  }
}

.govuk-\!-padding-left-9 {
  padding-left: 40px !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-padding-left-9 {
    padding-left: 60px !important;
  }
}

.govuk-\!-font-size-80 {
  font-size: 53px !important;
  font-size: 3.3125rem !important;
  line-height: 1.03774 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-80 {
    font-size: 80px !important;
    font-size: 5rem !important;
    line-height: 1 !important;
  }
}

@media print {
  .govuk-\!-font-size-80 {
    font-size: 53pt !important;
    line-height: 1.1 !important;
  }
}

.govuk-\!-font-size-48 {
  font-size: 32px !important;
  font-size: 2rem !important;
  line-height: 1.09375 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-48 {
    font-size: 48px !important;
    font-size: 3rem !important;
    line-height: 1.04167 !important;
  }
}

@media print {
  .govuk-\!-font-size-48 {
    font-size: 32pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-36 {
  font-size: 24px !important;
  font-size: 1.5rem !important;
  line-height: 1.04167 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-36 {
    font-size: 36px !important;
    font-size: 2.25rem !important;
    line-height: 1.11111 !important;
  }
}

@media print {
  .govuk-\!-font-size-36 {
    font-size: 24pt !important;
    line-height: 1.05 !important;
  }
}

.govuk-\!-font-size-27 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.11111 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-27 {
    font-size: 27px !important;
    font-size: 1.6875rem !important;
    line-height: 1.11111 !important;
  }
}

@media print {
  .govuk-\!-font-size-27 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-24 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.11111 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-24 {
    font-size: 24px !important;
    font-size: 1.5rem !important;
    line-height: 1.25 !important;
  }
}

@media print {
  .govuk-\!-font-size-24 {
    font-size: 18pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-19 {
  font-size: 16px !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-19 {
    font-size: 19px !important;
    font-size: 1.1875rem !important;
    line-height: 1.31579 !important;
  }
}

@media print {
  .govuk-\!-font-size-19 {
    font-size: 14pt !important;
    line-height: 1.15 !important;
  }
}

.govuk-\!-font-size-16 {
  font-size: 14px !important;
  font-size: 0.875rem !important;
  line-height: 1.14286 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-16 {
    font-size: 16px !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }
}

@media print {
  .govuk-\!-font-size-16 {
    font-size: 14pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-size-14 {
  font-size: 12px !important;
  font-size: 0.75rem !important;
  line-height: 1.25 !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-font-size-14 {
    font-size: 14px !important;
    font-size: 0.875rem !important;
    line-height: 1.42857 !important;
  }
}

@media print {
  .govuk-\!-font-size-14 {
    font-size: 12pt !important;
    line-height: 1.2 !important;
  }
}

.govuk-\!-font-weight-regular {
  font-weight: 400 !important;
}

.govuk-\!-font-weight-bold {
  font-weight: 700 !important;
}

.govuk-\!-width-full {
  width: 100% !important;
}

.govuk-\!-width-three-quarters {
  width: 100% !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-width-three-quarters {
    width: 75% !important;
  }
}

.govuk-\!-width-two-thirds {
  width: 100% !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-width-two-thirds {
    width: 66.66% !important;
  }
}

.govuk-\!-width-one-half {
  width: 100% !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-width-one-half {
    width: 50% !important;
  }
}

.govuk-\!-width-one-third {
  width: 100% !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-width-one-third {
    width: 33.33% !important;
  }
}

.govuk-\!-width-one-quarter {
  width: 100% !important;
}

@media (min-width: 40.0625em) {
  .govuk-\!-width-one-quarter {
    width: 25% !important;
  }
}

.app-step-nav-header {
  color: #0b0c0c;
  position: relative;
  padding: 10px;
  background: #f3f2f1;
  border-top: solid 1px #b1b4b6;
  border-bottom: solid 1px #b1b4b6;
}

@media print {
  .app-step-nav-header {
    color: #000000;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-header {
    padding: 15px;
  }
}

.app-step-nav-header__part-of {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  display: block;
  padding-bottom: .2em;
}

@media print {
  .app-step-nav-header__part-of {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-header__part-of {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .app-step-nav-header__part-of {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.app-step-nav-header__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
}

@media print {
  .app-step-nav-header__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-header__title {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .app-step-nav-header__title {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.app-step-nav {
  margin-bottom: 30px;
}

@media (min-width: 40.0625em) {
  .app-step-nav.app-step-nav--large {
    margin-bottom: 60px;
  }
}

.js-enabled .app-step-nav.js-hidden {
  display: none;
}

.app-step-nav__controls {
  padding: 3px 3px 0 0;
  text-align: right;
}

.app-step-nav__button {
  color: #1d70b8;
  cursor: pointer;
  background: none;
  border: 0;
  margin: 0;
}

.app-step-nav__button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav__button::-moz-focus-inner {
  border: 0;
}

.app-step-nav__button--title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
  display: inline-block;
  padding: 0;
  text-align: left;
  color: #0b0c0c;
}

@media print {
  .app-step-nav__button--title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__button--title {
    font-size: 19px;
    line-height: 1.4;
  }
}

.app-step-nav--large .app-step-nav__button--title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
}

@media print {
  .app-step-nav--large .app-step-nav__button--title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__button--title {
    font-size: 24px;
    line-height: 1.4;
  }
}

.app-step-nav__button--controls {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
  position: relative;
  z-index: 1;
  padding: .5em 0;
}

@media print {
  .app-step-nav__button--controls {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__button--controls {
    font-size: 14px;
    line-height: 1;
  }
}

@media print {
  .app-step-nav__button--controls {
    font-family: sans-serif;
  }
}

.app-step-nav__button--controls:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.app-step-nav__button--controls:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav--large .app-step-nav__button--controls {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
}

@media print {
  .app-step-nav--large .app-step-nav__button--controls {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__button--controls {
    font-size: 16px;
    line-height: 1;
  }
}

.app-step-nav__steps {
  padding: 0;
  margin: 0;
}

.app-step-nav__step {
  position: relative;
  padding-left: 45px;
  list-style: none;
}

.app-step-nav__step:after {
  content: "";
  position: absolute;
  z-index: 2;
  width: 0;
  height: 100%;
  border-left: solid 2px #b1b4b6;
  background: #ffffff;
  left: 0;
  margin-left: 12px;
  top: 15px;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__step {
    padding-left: 60px;
  }
  .app-step-nav--large .app-step-nav__step:after {
    left: 0;
    margin-left: 16px;
    border-width: 3px;
    top: 30px;
  }
}

.app-step-nav__step:last-child:before {
  content: "";
  position: absolute;
  z-index: 6;
  bottom: 0;
  left: 0;
  margin-left: 6.5px;
  width: 13px;
  height: 0;
  border-bottom: solid 2px #b1b4b6;
}

.app-step-nav__step:last-child:after {
  height: -webkit-calc(100% - 15px);
  height: calc(100% - 15px);
}

.app-step-nav__step:last-child .app-step-nav__help:after {
  height: 100%;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__step:last-child:before {
    margin-left: 8.75px;
    width: 17.5px;
    border-width: 3px;
  }
  .app-step-nav--large .app-step-nav__step:last-child:after {
    height: calc(100% - 30px);
  }
}

.app-step-nav__step--active:last-child:before,
.app-step-nav__step--active .app-step-nav__circle--number, .app-step-nav__step--active:after,
.app-step-nav__step--active .app-step-nav__help:after {
  border-color: #0b0c0c;
}

.app-step-nav__circle {
  box-sizing: border-box;
  position: absolute;
  z-index: 5;
  top: 15px;
  left: 0;
  width: 26px;
  height: 26px;
  color: #0b0c0c;
  background: #ffffff;
  border-radius: 100px;
  text-align: center;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle {
    top: 30px;
    width: 35px;
    height: 35px;
  }
}

.app-step-nav__circle--number {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 23px;
  border: solid 2px #b1b4b6;
}

@media print {
  .app-step-nav__circle--number {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__circle--number {
    font-size: 16px;
    line-height: 23px;
  }
}

.app-step-nav--large .app-step-nav__circle--number {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 23px;
}

@media print {
  .app-step-nav--large .app-step-nav__circle--number {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--number {
    font-size: 19px;
    line-height: 30px;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--number {
    border-width: 3px;
  }
}

.app-step-nav__circle--logic {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 28px;
}

@media print {
  .app-step-nav__circle--logic {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__circle--logic {
    font-size: 16px;
    line-height: 28px;
  }
}

.app-step-nav--large .app-step-nav__circle--logic {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: bold;
  line-height: 28px;
}

@media print {
  .app-step-nav--large .app-step-nav__circle--logic {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__circle--logic {
    font-size: 19px;
    line-height: 34px;
  }
}

.app-step-nav__circle-inner {
  float: right;
  min-width: 100%;
}

.app-step-nav__circle-background {
  text-shadow: 0 -0.1em 0 #ffffff, 0.1em 0 0 #ffffff, 0 0.1em 0 #ffffff, -0.1em 0 0 #ffffff;
}

.app-step-nav__circle-step-label,
.app-step-nav__circle-step-colon {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.app-step-nav__header {
  padding: 15px 0;
  border-top: solid 2px #b1b4b6;
}

.app-step-nav--active .app-step-nav__header {
  cursor: pointer;
}

.app-step-nav__header .app-step-nav__button:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav__header .app-step-nav__button:focus .app-step-nav__toggle-link {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav__header:hover .app-step-nav__button:not(:focus),
.app-step-nav__header:hover .app-step-nav__circle {
  color: #1d70b8;
}

.app-step-nav__header:hover .app-step-nav__toggle-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

@media print {
  .app-step-nav__header:hover .app-step-nav__toggle-link {
    font-family: sans-serif;
  }
}

.app-step-nav__header:hover .app-step-nav__toggle-link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.app-step-nav__header:hover .app-step-nav__toggle-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__header {
    padding: 30px 0;
  }
}

.app-step-nav__title {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
  margin: 0;
}

@media print {
  .app-step-nav__title {
    color: #000000;
  }
}

@media print {
  .app-step-nav__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__title {
    font-size: 19px;
    line-height: 1.4;
  }
}

.app-step-nav--large .app-step-nav__title {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 19px;
  font-weight: bold;
  line-height: 1.4;
}

@media print {
  .app-step-nav--large .app-step-nav__title {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__title {
    font-size: 24px;
    line-height: 1.4;
  }
}

.app-step-nav__toggle-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.2;
  display: block;
  color: #1d70b8;
  text-transform: capitalize;
}

@media print {
  .app-step-nav__toggle-link {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__toggle-link {
    font-size: 14px;
    line-height: 1.2;
  }
}

.app-step-nav--large .app-step-nav__toggle-link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.2;
}

@media print {
  .app-step-nav--large .app-step-nav__toggle-link {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__toggle-link {
    font-size: 16px;
    line-height: 1.2;
  }
}

.app-step-nav__panel {
  color: #0b0c0c;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.3;
}

@media print {
  .app-step-nav__panel {
    color: #000000;
  }
}

@media print {
  .app-step-nav__panel {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav__panel {
    font-size: 16px;
    line-height: 1.3;
  }
}

.app-step-nav--large .app-step-nav__panel {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.3;
}

@media print {
  .app-step-nav--large .app-step-nav__panel {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__panel {
    font-size: 19px;
    line-height: 1.3;
  }
}

.js-enabled .app-step-nav__panel.js-hidden {
  display: none;
}

.app-step-nav__paragraph {
  padding-bottom: 15px;
  margin: 0;
  font-size: inherit;
}

.app-step-nav__paragraph + .app-step-nav__list {
  margin-top: -5px;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__paragraph + .app-step-nav__list {
    margin-top: -govuk-spacing(3);
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__paragraph {
    padding-bottom: 30px;
  }
}

.app-step-nav__list {
  padding: 0;
  padding-bottom: 10px;
  list-style: none;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list {
    padding-bottom: 20px;
  }
}

.app-step-nav__list--choice {
  margin-left: 20px;
  list-style: disc;
}

.app-step-nav__list--choice .app-step-nav__list-item--active:before {
  left: -65px;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list--choice .app-step-nav__list-item--active:before {
    left: -80px;
  }
}

.app-step-nav__list-item {
  margin-bottom: 10px;
}

.app-step-nav__link {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: underline;
  text-decoration-thickness: max(1px, .0625rem);
  text-underline-offset: 0.1em;
}

@media print {
  .app-step-nav__link {
    font-family: sans-serif;
  }
}

.app-step-nav__link:hover {
  text-decoration-thickness: max(3px, .1875rem, .12em);
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
  text-decoration-skip: none;
}

.app-step-nav__link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background-color: #ffdd00;
  box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;
  text-decoration: none;
}

.app-step-nav__link:link {
  color: #1d70b8;
}

.app-step-nav__link:visited {
  color: #4c2c92;
}

.app-step-nav__link:hover {
  color: #003078;
}

.app-step-nav__link:active {
  color: #0b0c0c;
}

.app-step-nav__link:focus {
  color: #0b0c0c;
}

.app-step-nav__link-active-context {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.app-step-nav__list-item--active {
  position: relative;
}

.app-step-nav__list-item--active:before {
  box-sizing: border-box;
  content: "";
  position: absolute;
  z-index: 5;
  top: .6em;
  left: -45px;
  margin-top: -1px;
  margin-left: 13px;
  width: 13px;
  height: 2px;
  background: #0b0c0c;
}

@media (min-width: 40.0625em) {
  .app-step-nav--large .app-step-nav__list-item--active:before {
    left: -60px;
    margin-left: 17.5px;
    height: 3px;
  }
}

.app-step-nav__list-item--active .app-step-nav__link:link, .app-step-nav__list-item--active .app-step-nav__link:visited {
  color: #0b0c0c;
}

@media print {
  .app-step-nav__list-item--active .app-step-nav__link:link, .app-step-nav__list-item--active .app-step-nav__link:visited {
    color: #000000;
  }
}

.app-step-nav__list-item--active .app-step-nav__link:hover {
  color: rgba(11, 12, 12, 0.99);
}

.app-step-nav__list-item--active .app-step-nav__link:active, .app-step-nav__list-item--active .app-step-nav__link:focus {
  color: #0b0c0c;
}

@media print {
  .app-step-nav__list-item--active .app-step-nav__link:active, .app-step-nav__list-item--active .app-step-nav__link:focus {
    color: #000000;
  }
}

.app-step-nav__context {
  display: inline-block;
  font-weight: normal;
  color: #505a5f;
}

.app-step-nav__context:before {
  content: " \2013\00a0";
}

.app-step-nav-related {
  color: #0b0c0c;
  border-top: 2px solid #1d70b8;
  margin-bottom: 30px;
}

@media print {
  .app-step-nav-related {
    color: #000000;
  }
}

.app-step-nav-related__heading {
  margin-top: 15px;
  margin-bottom: 10px;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
}

@media print {
  .app-step-nav-related__heading {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-related__heading {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .app-step-nav-related__heading {
    font-size: 14pt;
    line-height: 1.15;
  }
}

.app-step-nav-related__links {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.14286;
  margin: 0;
  padding: 0;
}

@media print {
  .app-step-nav-related__links {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-related__links {
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.25;
  }
}

@media print {
  .app-step-nav-related__links {
    font-size: 14pt;
    line-height: 1.2;
  }
}

.app-step-nav-related--singular {
  margin-bottom: 13px;
}

.app-step-nav-related--singular .app-step-nav-related__heading {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 20px;
}

@media print {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.4;
  }
}

@media print {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 14pt;
    line-height: 1.4;
  }
}

@media (max-width: 40.0525em) {
  .app-step-nav-related--singular .app-step-nav-related__heading {
    font-size: 19px;
  }
}

.app-step-nav-related--singular .app-step-nav-related__pretitle {
  margin-bottom: 7.5px;
}

.app-step-nav-related__pretitle {
  display: block;
  margin-bottom: 15px;
}

@media (min-width: 40.0625em) {
  .app-step-nav-related__pretitle {
    margin-bottom: 5px;
  }
}

.app-step-nav-related__links {
  list-style: none;
}

.app-step-nav-related__link-item {
  margin-top: 15px;
}

@media (min-width: 40.0625em) {
  .app-step-nav-related__link-item {
    margin-top: 5px;
  }
}

.app-task-list {
  list-style-type: none;
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
}

@media (min-width: 40.0625em) {
  .app-task-list {
    min-width: 550px;
  }
}

.app-task-list__section {
  display: table;
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 700;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.11111;
}

@media print {
  .app-task-list__section {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-task-list__section {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 1.25;
  }
}

@media print {
  .app-task-list__section {
    font-size: 18pt;
    line-height: 1.15;
  }
}

.app-task-list__section-number {
  display: table-cell;
}

@media (min-width: 40.0625em) {
  .app-task-list__section-number {
    min-width: 30px;
    padding-right: 0;
  }
}

.app-task-list__items {
  font-family: "GDS Transport", arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.25;
  margin-bottom: 40px;
  list-style: none;
  padding-left: 0;
}

@media print {
  .app-task-list__items {
    font-family: sans-serif;
  }
}

@media (min-width: 40.0625em) {
  .app-task-list__items {
    font-size: 19px;
    font-size: 1.1875rem;
    line-height: 1.31579;
  }
}

@media print {
  .app-task-list__items {
    font-size: 14pt;
    line-height: 1.15;
  }
}

@media (min-width: 40.0625em) {
  .app-task-list__items {
    margin-bottom: 60px;
  }
}

@media (min-width: 40.0625em) {
  .app-task-list__items {
    padding-left: 30px;
  }
}

.app-task-list__item {
  border-bottom: 1px solid #b1b4b6;
  margin-bottom: 0 !important;
  padding-top: 10px;
  padding-bottom: 10px;
}

.app-task-list__item:after {
  content: "";
  display: block;
  clear: both;
}

.app-task-list__item:first-child {
  border-top: 1px solid #b1b4b6;
}

.app-task-list__task-name {
  display: block;
}

@media (min-width: 28.125em) {
  .app-task-list__task-name {
    float: left;
  }
}

.app-task-list__tag,
.app-task-list__task-completed {
  margin-top: 10px;
  margin-bottom: 5px;
}

@media (min-width: 28.125em) {
  .app-task-list__tag,
  .app-task-list__task-completed {
    float: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}

.app-related-items {
  border-top: 2px solid #1d70b8;
  padding-top: 10px;
}

.app-related-items .govuk-list > li {
  margin-bottom: 10px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uY3NzIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbGliL2V4dGVuc2lvbnMvX2V4dGVuc2lvbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fYXNzZXRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX2NvbXBhdGliaWxpdHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fZ2xvYmFsLXN0eWxlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19pZTguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fbWVkaWEtcXVlcmllcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19jb2xvdXJzLXBhbGV0dGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fY29sb3Vycy1vcmdhbmlzYXRpb25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX2NvbG91cnMtYXBwbGllZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2NvbG91ci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19zcGFjaW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX21lYXN1cmVtZW50cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL190eXBvZ3JhcGh5LWZvbnQtZmFtaWxpZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9zZXR0aW5ncy9fdHlwb2dyYXBoeS1mb250LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvc2V0dGluZ3MvX3R5cG9ncmFwaHktcmVzcG9uc2l2ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3NldHRpbmdzL19saW5rcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3Rvb2xzL19hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay90b29scy9fY29tcGF0aWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3Rvb2xzL19leHBvcnRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdG9vbHMvX2ZvbnQtdXJsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdG9vbHMvX2llOC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3Rvb2xzL19pZmYuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay90b29scy9faW1hZ2UtdXJsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdG9vbHMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdG9vbHMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2FsbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZGV2aWNlLXBpeGVscy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2ZvY3VzZWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9oZWxwZXJzL19mb250LWZhY2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX2xpbmtzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fbWVkaWEtcXVlcmllcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL3ZlbmRvci9fc2Fzcy1tcS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3NoYXBlLWFycm93LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvaGVscGVycy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2hlbHBlcnMvX3R5cG9ncmFwaHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9oZWxwZXJzL192aXN1YWxseS1oaWRkZW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL19saW5rcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvcmUvX2xpc3RzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29yZS9fdGVtcGxhdGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb3JlL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29yZS9fc2VjdGlvbi1icmVhay5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvcmUvX2dsb2JhbC1zdHlsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19idXR0b24tZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vYmplY3RzL19mb3JtLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvb2JqZWN0cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL29iamVjdHMvX21haW4td3JhcHBlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL29iamVjdHMvX3dpZHRoLWNvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvX2FsbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvYWNjb3JkaW9uL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvYmFjay1saW5rL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9idXR0b24vX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9jaGVja2JveGVzL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZXJyb3ItbWVzc2FnZS9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2ZpZWxkc2V0L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvaGludC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2xhYmVsL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvY2hhcmFjdGVyLWNvdW50L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvdGV4dGFyZWEvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9jb29raWUtYmFubmVyL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvc3VtbWFyeS1saXN0L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZGF0ZS1pbnB1dC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2lucHV0L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvZGV0YWlscy9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Vycm9yLXN1bW1hcnkvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9maWxlLXVwbG9hZC9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2Zvb3Rlci9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2hlYWRlci9faW5kZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9jb21wb25lbnRzL2luc2V0LXRleHQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9ub3RpZmljYXRpb24tYmFubmVyL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvcGFuZWwvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy9waGFzZS1iYW5uZXIvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90YWcvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy90YWJzL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvcmFkaW9zL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvc2VsZWN0L19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvc2tpcC1saW5rL19pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2NvbXBvbmVudHMvdGFibGUvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvY29tcG9uZW50cy93YXJuaW5nLXRleHQvX2luZGV4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdXRpbGl0aWVzL19hbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay91dGlsaXRpZXMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZ292dWstZnJvbnRlbmQvZ292dWsvdXRpbGl0aWVzL192aXN1YWxseS1oaWRkZW4uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9nb3Z1ay1mcm9udGVuZC9nb3Z1ay9vdmVycmlkZXMvX2FsbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL292ZXJyaWRlcy9fd2lkdGguc2NzcyIsInBhdHRlcm5zL19zdGVwLWJ5LXN0ZXAtaGVhZGVyLnNjc3MiLCJwYXR0ZXJucy9fc3RlcC1ieS1zdGVwLW5hdi5zY3NzIiwicGF0dGVybnMvX3N0ZXAtYnktc3RlcC1yZWxhdGVkLnNjc3MiLCJwYXR0ZXJucy9fdGFzay1saXN0LnNjc3MiLCJwYXR0ZXJucy9fcmVsYXRlZC1pdGVtcy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGdsb2JhbCBzdHlsZXMgZm9yIDxhPiBhbmQgPHA+IHRhZ3NcbiRnb3Z1ay1nbG9iYWwtc3R5bGVzOiB0cnVlO1xuJGdvdnVrLW5ldy1saW5rLXN0eWxlczogdHJ1ZTtcblxuLy8gV2UgY2FuJ3QgbW91bnQgR09WLlVLIEZyb250ZW5kJ3MgYXNzZXRzIGF0IHJvb3QgYXMgaXQncyBkb25lIGF1dG9tYXRpY2FsbHkgYnkgdGhlIGV4dGVuc2lvbnMgZnJhbWV3b3JrLlxuJGdvdnVrLWFzc2V0cy1wYXRoOiAnL2dvdnVrL2Fzc2V0cy8nO1xuXG4vLyBJbXBvcnQgR09WLlVLIEZyb250ZW5kIGFuZCBhbnkgZXh0ZW5zaW9uIHN0eWxlcyBpZiBleHRlbnNpb25zIGhhdmUgYmVlbiBjb25maWd1cmVkXG5AaW1wb3J0IFwibGliL2V4dGVuc2lvbnMvZXh0ZW5zaW9uc1wiO1xuXG4vLyBQYXR0ZXJucyB0aGF0IGFyZW4ndCBpbiBGcm9udGVuZFxuQGltcG9ydCBcInBhdHRlcm5zL3N0ZXAtYnktc3RlcC1oZWFkZXJcIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy9zdGVwLWJ5LXN0ZXAtbmF2XCI7XG5AaW1wb3J0IFwicGF0dGVybnMvc3RlcC1ieS1zdGVwLXJlbGF0ZWRcIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy90YXNrLWxpc3RcIjtcbkBpbXBvcnQgXCJwYXR0ZXJucy9yZWxhdGVkLWl0ZW1zXCI7XG5cbi8vIEFkZCBleHRyYSBzdHlsZXMgaGVyZSwgb3IgcmUtb3JnYW5pc2UgdGhlIFNhc3MgZmlsZXMgaW4gd2hpY2hldmVyIHdheSBtYWtlcyBtb3N0IHNlbnNlIHRvIHlvdVxuIiwiJGdvdnVrLWV4dGVuc2lvbnMtdXJsLWNvbnRleHQ6IFwiL2V4dGVuc2lvbi1hc3NldHNcIjsgQGltcG9ydCBcIi9hcHAvbm9kZV9tb2R1bGVzL2dvdnVrLWZyb250ZW5kL2dvdnVrL2FsbC5zY3NzXCI7IiwiQGltcG9ydCBcImJhc2VcIjtcblxuQGltcG9ydCBcImNvcmUvYWxsXCI7XG5AaW1wb3J0IFwib2JqZWN0cy9hbGxcIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvYWxsXCI7XG5cbkBpbXBvcnQgXCJ1dGlsaXRpZXMvYWxsXCI7XG5AaW1wb3J0IFwib3ZlcnJpZGVzL2FsbFwiO1xuIiwiQGltcG9ydCBcInNldHRpbmdzL2FsbFwiO1xuQGltcG9ydCBcInRvb2xzL2FsbFwiO1xuQGltcG9ydCBcImhlbHBlcnMvYWxsXCI7XG4iLCIvLyBUaGUgb3JkZXIgd2UgaW1wb3J0IHNldHRpbmdzIGluIGlzIGltcG9ydGFudCwgYXMgc29tZSBzZXR0aW5ncyBmaWxlcyByZWx5IG9uXG4vLyBvdGhlcnNcblxuQGltcG9ydCBcImFzc2V0c1wiO1xuXG5AaW1wb3J0IFwiY29tcGF0aWJpbGl0eVwiO1xuQGltcG9ydCBcImdsb2JhbC1zdHlsZXNcIjtcbkBpbXBvcnQgXCJpZThcIjtcblxuQGltcG9ydCBcIm1lZGlhLXF1ZXJpZXNcIjtcblxuQGltcG9ydCBcImNvbG91cnMtcGFsZXR0ZVwiO1xuQGltcG9ydCBcImNvbG91cnMtb3JnYW5pc2F0aW9uc1wiO1xuQGltcG9ydCBcImNvbG91cnMtYXBwbGllZFwiO1xuXG5AaW1wb3J0IFwic3BhY2luZ1wiO1xuQGltcG9ydCBcIm1lYXN1cmVtZW50c1wiO1xuXG5AaW1wb3J0IFwidHlwb2dyYXBoeS1mb250LWZhbWlsaWVzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS1mb250XCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS1yZXNwb25zaXZlXCI7XG5cbkBpbXBvcnQgXCJsaW5rc1wiO1xuIiwiLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy9hc3NldHNcbi8vLy9cblxuLy8vIFBhdGggdG8gdGhlIGFzc2V0cyBkaXJlY3RvcnksIHdpdGggdHJhaWxpbmcgc2xhc2guXG4vLy9cbi8vLyBUaGlzIGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGltYWdlcyBhbmQgZm9udHMgc3ViZGlyZWN0b3JpZXMgbGl2ZS4gWW91XG4vLy8gd2lsbCBuZWVkIHRvIG1ha2UgdGhpcyBkaXJlY3RvcnkgYXZhaWxhYmxlIHZpYSB5b3VyIGFwcGxpY2F0aW9uIOKAkyBzZWUgdGhlXG4vLy8gUkVBRE1FIGZvciBkZXRhaWxzLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWFzc2V0cy1wYXRoOiBcIi9hc3NldHMvXCIgIWRlZmF1bHQ7XG5cbi8vLyBQYXRoIHRvIHRoZSBpbWFnZXMgZm9sZGVyLCB3aXRoIHRyYWlsaW5nIHNsYXNoLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWltYWdlcy1wYXRoOiBcIiN7JGdvdnVrLWFzc2V0cy1wYXRofWltYWdlcy9cIiAhZGVmYXVsdDtcblxuLy8vIFBhdGggdG8gdGhlIGZvbnRzIGZvbGRlciwgd2l0aCB0cmFpbGluZyBzbGFzaC5cbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb250cy1wYXRoOiBcIiN7JGdvdnVrLWFzc2V0cy1wYXRofWZvbnRzL1wiICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9tIGltYWdlIFVSTCBmdW5jdGlvblxuLy8vXG4vLy8gSWYgdGhlIGJ1aWx0LWluIGltYWdlIFVSTCBoZWxwZXIgZG9lcyBub3QgbWVldCB5b3VyIG5lZWRzLCB5b3UgY2FuIHNwZWNpZnlcbi8vLyB0aGUgbmFtZSBvZiBhIGN1c3RvbSBoYW5kbGVyIOKAkyBlaXRoZXIgYnVpbHQgaW4gb3IgYnkgd3JpdGluZyB5b3VyIG93blxuLy8vIGZ1bmN0aW9uLlxuLy8vXG4vLy8gSWYgeW91IGFyZSB3cml0aW5nIHlvdXIgb3duIGhhbmRsZXIsIGVuc3VyZSB0aGF0IGl0IHJldHVybnMgYSBzdHJpbmcgd3JhcHBlZFxuLy8vIHdpdGggYHVybCgpYFxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gUmFpbHMgYXNzZXQgaGFuZGxpbmdcbi8vLyAgICRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb246ICdpbWFnZS11cmwnO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEN1c3RvbSBhc3NldCBoYW5kbGluZ1xuLy8vXG4vLy8gICBAZnVuY3Rpb24gbXktdXJsLWhhbmRsZXIoJGZpbGVuYW1lKSB7XG4vLy8gICAgIC8vIFNvbWUgY3VzdG9tIFVSTCBoYW5kbGluZ1xuLy8vICAgICBAcmV0dXJuIHVybCgnZXhhbXBsZS5qcGcnKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgJGdvdnVrLWltYWdlLXVybC1mdW5jdGlvbjogJ215LXVybC1oYW5kbGVyJztcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9tIGZvbnQgVVJMIGZ1bmN0aW9uXG4vLy9cbi8vLyBJZiB0aGUgYnVpbHQtaW4gZm9udCBVUkwgaGVscGVyIGRvZXMgbm90IG1lZXQgeW91ciBuZWVkcywgeW91IGNhbiBzcGVjaWZ5XG4vLy8gdGhlIG5hbWUgb2YgYSBjdXN0b20gaGFuZGxlciDigJMgZWl0aGVyIGJ1aWx0IGluIG9yIGJ5IHdyaXRpbmcgeW91ciBvd25cbi8vLyBmdW5jdGlvbi5cbi8vL1xuLy8vIElmIHlvdSBhcmUgd3JpdGluZyB5b3VyIG93biBoYW5kbGVyLCBlbnN1cmUgdGhhdCBpdCByZXR1cm5zIGEgc3RyaW5nIHdyYXBwZWRcbi8vLyB3aXRoIGB1cmwoKWBcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFJhaWxzIGFzc2V0IGhhbmRsaW5nXG4vLy8gICAkZ292dWstZm9udC11cmwtZnVuY3Rpb246ICdmb250LXVybCc7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3VzdG9tIGFzc2V0IGhhbmRsaW5nXG4vLy9cbi8vLyAgIEBmdW5jdGlvbiBteS11cmwtaGFuZGxlcigkZmlsZW5hbWUpIHtcbi8vLyAgICAgLy8gU29tZSBjdXN0b20gVVJMIGhhbmRsaW5nXG4vLy8gICAgIEByZXR1cm4gdXJsKCdleGFtcGxlLndvZmYnKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgJGdvdnVrLWZvbnQtdXJsLWZ1bmN0aW9uOiAnbXktdXJsLWhhbmRsZXInO1xuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvbnQtdXJsLWZ1bmN0aW9uOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyAnQ29tcGF0aWJpbGl0eSBNb2RlJ1xuLy8vXG4vLy8gRW5hYmxpbmcgdGhlc2UgZmxhZ3MgaW1wcm92ZXMgY29tcGF0aWJpbGl0eSBpZiB5b3UgYXJlIHVzaW5nIEdPVi5VSyBGcm9udGVuZFxuLy8vIGluIGFuIGFwcGxpY2F0aW9uIHRoYXQgYWxzbyB1c2VzIGdvdnVrX2VsZW1lbnRzLCBnb3Z1a19mcm9udGVuZF90b29sa2l0IG9yXG4vLy8gZ292dWtfdGVtcGxhdGUgKHRoZSAnbGVnYWN5IHJlcG9zJykuXG4vLy9cbi8vLyBFbmFibGluZyBhbnkgb2YgdGhlc2Ugc2V0dGluZ3Mgd2lsbCwgYnkgZGVmYXVsdDpcbi8vL1xuLy8vIC0gc3dpdGNoIEdPVi5VSyBGcm9udGVuZCB0byB1c2luZyB0aGUgc2FtZSBjb2xvdXIgcGFsZXR0ZSBhcyB0aGUgbGVnYWN5XG4vLy8gICByZXBvcywgYnkgc2V0dGluZyBgJGdvdnVrLXVzZS1sZWdhY3ktcGFsZXR0ZWAgdG8gdHJ1ZS5cbi8vL1xuLy8vIC0gcHJldmVudCBHT1YuVUsgRnJvbnRlbmQgZnJvbSB1c2luZyByZW0gZm9yIGZvbnQgc2l6aW5nLCBieSBzZXR0aW5nXG4vLy8gICBgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbWAgdG8gZmFsc2UuXG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvY29tcGF0aWJpbGl0eVxuLy8vL1xuXG4vLy8gQ29tcGF0aWJpbGl0eSBNb2RlOiBhbHBoYWdvdi9nb3Z1a19mcm9udGVuZF90b29sa2l0XG4vLy9cbi8vLyBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdSBhcmUgYWxzbyBpbmNsdWRpbmcgYWxwaGFnb3YvZ292dWtfZnJvbnRlbmRfdG9vbGtpdFxuLy8vIGluIHlvdXIgYXBwbGljYXRpb24uXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWtmcm9udGVuZHRvb2xraXQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQ29tcGF0aWJpbGl0eSBNb2RlOiBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZVxuLy8vXG4vLy8gRW5hYmxpbmcgdGhpcyB3aWxsOlxuLy8vXG4vLy8gLSBwcmV2ZW50IEdPVi5VSyBGcm9udGVuZCBmcm9tIGluY2x1ZGluZyB0aGUgTmV3IFRyYW5zcG9ydCB0eXBlZmFjZSwgYXNcbi8vLyAgIGl0J2xsIHVzZSB0aGUgdmVyc2lvbiBvZiBOZXcgVHJhbnNwb3J0IGluY2x1ZGVkIHdpdGggR09WLlVLIFRlbXBsYXRlLlxuLy8vXG4vLy8gLSBhbHRlciBzb21lIG9mIHRoZSBDU1Mgb3V0cHV0dGVkIGJ5IEdPVi5VSyBGcm9udGVuZCB0byAnY291bnRlcidcbi8vLyAgIHNwZWNpZmljIENTUyBydWxlcyBpbiBHT1YuVUsgVGVtcGxhdGUuXG4vLy9cbi8vLyBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdSBhcmUgYWxzbyBpbmNsdWRpbmcgYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW4geW91clxuLy8vIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrdGVtcGxhdGU6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQ29tcGF0aWJpbGl0eSBNb2RlOiBhbHBoYWdvdi9nb3Z1a19lbGVtZW50c1xuLy8vXG4vLy8gRW5hYmxpbmcgdGhpcyB3aWxsOlxuLy8vXG4vLy8gLSBhbHRlciBzb21lIG9mIHRoZSBDU1Mgb3V0cHV0dGVkIGJ5IEdPVi5VSyBGcm9udGVuZCB0byAnY291bnRlcidcbi8vLyAgIHNwZWNpZmljIENTUyBydWxlcyBpbiBHT1YuVUsgRWxlbWVudHMuXG4vLy9cbi8vLyBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdSBhcmUgYWxzbyBpbmNsdWRpbmcgYWxwaGFnb3YvZ292dWtfZWxlbWVudHMgaW4geW91clxuLy8vIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZWxlbWVudHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQ29tcGF0aWJpbGl0eSBQcm9kdWN0IE1hcFxuLy8vXG4vLy8gTWFwcyBwcm9kdWN0IG5hbWVzIHRvIHRoZWlyIHNldHRpbmdzIHRoYXQgd2UgY2FuIHVzZSB0byBsb29rdXAgc3RhdGVzIGZyb21cbi8vLyB3aXRoaW4gdGhlIGBAZ292dWstY29tcGF0aWJpbGl0eWAgbWl4aW4uXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuJF9nb3Z1ay1jb21wYXRpYmlsaXR5OiAoXG4gIGdvdnVrX2Zyb250ZW5kX3Rvb2xraXQ6ICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZnJvbnRlbmR0b29sa2l0LFxuICBnb3Z1a190ZW1wbGF0ZTogJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWt0ZW1wbGF0ZSxcbiAgZ292dWtfZWxlbWVudHM6ICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZWxlbWVudHMsXG4pO1xuIiwiLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy9nbG9iYWwtc3R5bGVzXG4vLy8vXG5cbi8vLyBJbmNsdWRlICdnbG9iYWwnIHN0eWxlc1xuLy8vXG4vLy8gV2hldGhlciB0byBzdHlsZSBwYXJhZ3JhcGhzIChgPHA+YCkgYW5kIGxpbmtzIChgPGE+YCkgd2l0aG91dCBleHBsaWNpdGx5XG4vLy8gaGF2aW5nIHRvIGFwcGx5IHRoZSBgZ292dWstYm9keWAgYW5kIGBnb3Z1ay1saW5rYCBjbGFzc2VzLlxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1nbG9iYWwtc3R5bGVzOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvaW50ZXJuZXQtZXhwbG9yZXItOFxuLy8vL1xuXG4vLy8gV2hldGhlciB0aGUgc3R5bGVzaGVldCBiZWluZyBidWlsdCBpcyB0YXJnZXRpbmcgSW50ZXJuZXQgRXhwbG9yZXIgOC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaXMtaWU4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHRvIHVzZSBhcyB0aGUgdGFyZ2V0IHdoZW4gcmFzdGVyaXppbmcgbWVkaWFcbi8vLyBxdWVyaWVzXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaWU4LWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL21lZGlhLXF1ZXJpZXNcbi8vLy9cblxuLy8vIEJyZWFrcG9pbnQgZGVmaW5pdGlvbnNcbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1icmVha3BvaW50czogKFxuICBtb2JpbGU6ICAzMjBweCxcbiAgdGFibGV0OiAgNjQxcHgsXG4gIGRlc2t0b3A6IDc2OXB4XG4pICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBhY3RpdmUgYnJlYWtwb2ludCBpbiB0b3AtcmlnaHQgY29ybmVyLlxuLy8vXG4vLy8gT25seSB1c2UgdGhpcyBkdXJpbmcgbG9jYWwgZGV2ZWxvcG1lbnQuXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXNob3ctYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGltcG9ydCBcImNvbXBhdGliaWxpdHlcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgdmFsdWUtbGlzdC1tYXgtZW1wdHktbGluZXMgLS0gYWxsb3cgZW1wdHkgbGluZXMgaW4gbGlzdHNcbi8vIGluIHRoaXMgZmlsZSB0byBhbGxvdyBncm91cGluZ1xuXG4vLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL2NvbG91cnNcbi8vLy9cblxuLy8vIFVzZSAnbGVnYWN5JyBjb2xvdXIgcGFsZXR0ZVxuLy8vXG4vLy8gV2hldGhlciBvciBub3QgdG8gdXNlIHRoZSBjb2xvdXIgcGFsZXR0ZSBmcm9tIEdPVi5VSyBFbGVtZW50cyAvIEZyb250ZW5kXG4vLy8gVG9vbGtpdCwgZm9yIHRlYW1zIHRoYXQgYXJlIG1pZ3JhdGluZyB0byBHT1YuVUsgRnJvbnRlbmQgYW5kIG1heSBiZSB1c2luZ1xuLy8vIGNvbXBvbmVudHMgZnJvbSBib3RoIHBsYWNlcyBpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbi5cbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdXNlLWxlZ2FjeS1wYWxldHRlOiBpZihcbiAgKFxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZnJvbnRlbmR0b29sa2l0IG9yXG4gICAgJGdvdnVrLWNvbXBhdGliaWxpdHktZ292dWt0ZW1wbGF0ZSBvclxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrZWxlbWVudHNcbiAgKSxcbiAgdHJ1ZSxcbiAgZmFsc2VcbikgIWRlZmF1bHQ7XG5cbi8vLyBNb2Rlcm4gY29sb3VyIHBhbGV0dGVcbi8vL1xuLy8vIFRoaXMgZXhpc3RzIG9ubHkgYmVjYXVzZSB5b3UgY2Fubm90IGVhc2lseSBzZXQgYSAhZGVmYXVsdCB2YXJpYWJsZVxuLy8vIGNvbmRpdGlvbmFsbHkgKHRoYW5rcyB0byB0aGUgd2F5IHNjb3BlIHdvcmtzIGluIFNhc3MpIHNvIHdlIHNldFxuLy8vIGAkZ292dWstY29sb3VyLXBhbGV0dGVgIHVzaW5nIHRoZSBgaWZgIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbiRfZ292dWstY29sb3VyLXBhbGV0dGUtbW9kZXJuOiAoXG4gIFwicmVkXCI6ICNkNDM1MWMsXG4gIFwieWVsbG93XCI6ICNmZmRkMDAsXG4gIFwiZ3JlZW5cIjogIzAwNzAzYyxcbiAgXCJibHVlXCI6ICMxZDcwYjgsXG4gIFwiZGFyay1ibHVlXCI6ICMwMDMwNzgsXG4gIFwibGlnaHQtYmx1ZVwiOiAjNTY5NGNhLFxuICBcInB1cnBsZVwiOiAjNGMyYzkyLFxuXG4gIFwiYmxhY2tcIjogIzBiMGMwYyxcbiAgXCJkYXJrLWdyZXlcIjogIzUwNWE1ZixcbiAgXCJtaWQtZ3JleVwiOiAjYjFiNGI2LFxuICBcImxpZ2h0LWdyZXlcIjogI2YzZjJmMSxcbiAgXCJ3aGl0ZVwiOiAjZmZmZmZmLFxuXG4gIFwibGlnaHQtcHVycGxlXCI6ICM2ZjcyYWYsXG4gIFwiYnJpZ2h0LXB1cnBsZVwiOiAjOTEyYjg4LFxuICBcInBpbmtcIjogI2Q1Mzg4MCxcbiAgXCJsaWdodC1waW5rXCI6ICNmNDk5YmUsXG4gIFwib3JhbmdlXCI6ICNmNDc3MzgsXG4gIFwiYnJvd25cIjogI2I1ODg0MCxcbiAgXCJsaWdodC1ncmVlblwiOiAjODU5OTRiLFxuICBcInR1cnF1b2lzZVwiOiAjMjhhMTk3XG4pO1xuXG4vLy8gTGVnYWN5IGNvbG91ciBwYWxldHRlXG4vLy9cbi8vLyBUaGlzIGV4aXN0cyBvbmx5IGJlY2F1c2UgeW91IGNhbm5vdCBlYXNpbHkgc2V0IGEgIWRlZmF1bHQgdmFyaWFibGVcbi8vLyBjb25kaXRpb25hbGx5ICh0aGFua3MgdG8gdGhlIHdheSBzY29wZSB3b3JrcyBpbiBTYXNzKSBzbyB3ZSBzZXRcbi8vLyBgJGdvdnVrLWNvbG91ci1wYWxldHRlYCB1c2luZyB0aGUgYGlmYCBmdW5jdGlvbi5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG4kX2dvdnVrLWNvbG91ci1wYWxldHRlLWxlZ2FjeTogKFxuICBcInB1cnBsZVwiOiAjMmUzNThiLFxuICBcImxpZ2h0LXB1cnBsZVwiOiAjNmY3MmFmLFxuICBcImJyaWdodC1wdXJwbGVcIjogIzkxMmI4OCxcbiAgXCJwaW5rXCI6ICNkNTM4ODAsXG4gIFwibGlnaHQtcGlua1wiOiAjZjQ5OWJlLFxuICBcInJlZFwiOiAjYjEwZTFlLFxuICBcImJyaWdodC1yZWRcIjogI2RmMzAzNCxcbiAgXCJvcmFuZ2VcIjogI2Y0NzczOCxcbiAgXCJicm93blwiOiAjYjU4ODQwLFxuICBcInllbGxvd1wiOiAjZmZiZjQ3LFxuICBcImxpZ2h0LWdyZWVuXCI6ICM4NTk5NGIsXG4gIFwiZ3JlZW5cIjogIzAwNjQzNSxcbiAgXCJ0dXJxdW9pc2VcIjogIzI4YTE5NyxcbiAgXCJsaWdodC1ibHVlXCI6ICMyYjhjYzQsXG4gIFwiYmx1ZVwiOiAjMDA1ZWE1LFxuXG4gIFwiYmxhY2tcIjogIzBiMGMwYyxcbiAgXCJncmV5LTFcIjogIzZmNzc3YixcbiAgXCJncmV5LTJcIjogI2JmYzFjMyxcbiAgXCJncmV5LTNcIjogI2RlZTBlMixcbiAgXCJncmV5LTRcIjogI2Y4ZjhmOCxcbiAgXCJ3aGl0ZVwiOiAjZmZmZmZmXG4pO1xuXG4vLy8gQ29sb3VyIHBhbGV0dGVcbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vXG4vLy8gQHByb3AgJGNvbG91ciAtIFJlcHJlc2VudGF0aW9uIGZvciB0aGUgZ2l2ZW4gJGNvbG91ciwgd2hlcmUgJGNvbG91ciBpcyB0aGVcbi8vLyAgIGZyaWVuZGx5IG5hbWUgZm9yIHRoZSBjb2xvdXIgKGUuZy4gXCJyZWRcIjogI2ZmMDAwMCk7XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstY29sb3VyczogaWYoXG4gICRnb3Z1ay11c2UtbGVnYWN5LXBhbGV0dGUsXG4gICRfZ292dWstY29sb3VyLXBhbGV0dGUtbGVnYWN5LFxuICAkX2dvdnVrLWNvbG91ci1wYWxldHRlLW1vZGVyblxuKSAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvY29sb3Vyc1xuLy8vL1xuXG4vLy8gT3JnYW5pc2F0aW9uIGNvbG91cnNcbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vXG4vLy8gQHByb3AgJG9yZ2FuaXNhdGlvbi5jb2xvdXIgLSBDb2xvdXIgZm9yIHRoZSBnaXZlbiBgJG9yZ2FuaXNhdGlvbmBcbi8vLyBAcHJvcCAkb3JnYW5pc2F0aW9uLmNvbG91ci13ZWJzYWZlIC0gV2Vic2FmZSBjb2xvdXIgZm9yIHRoZSBnaXZlblxuLy8vICAgYCRvcmdhbmlzYXRpb25gLiBXZSB1c2UgYHdlYnNhZmVgIHRvIG1lYW4gc3Ryb25nIGVub3VnaCBjb250cmFzdCBhZ2FpbnN0XG4vLy8gICB3aGl0ZSB0byBiZSB1c2VkIGZvciBjb3B5IGFuZCBtZWV0IHRoZSBBQUEgKGxhcmdlIHRleHQpIGFuZCBBQSAoc21hbGxlclxuLy8vICAgY29weSkgV0NBRyBndWlkZWxpbmVzLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWNvbG91cnMtb3JnYW5pc2F0aW9uczogKFxuICBcImF0dG9ybmV5LWdlbmVyYWxzLW9mZmljZVwiOiAoXG4gICAgY29sb3VyOiAjOWYxODg4LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjYTAzYTg4XG4gICksXG4gIFwiY2FiaW5ldC1vZmZpY2VcIjogKFxuICAgIGNvbG91cjogIzAwNWFiYixcbiAgICBjb2xvdXItd2Vic2FmZTogIzM0N2RhNFxuICApLFxuICBcImNpdmlsLXNlcnZpY2VcIjogKFxuICAgIGNvbG91cjogI2FmMjkyZVxuICApLFxuICBcImRlcGFydG1lbnQtZm9yLWJ1c2luZXNzLWlubm92YXRpb24tc2tpbGxzXCI6IChcbiAgICBjb2xvdXI6ICMwMDM0NzksXG4gICAgY29sb3VyLXdlYnNhZmU6ICMzNDdkYTRcbiAgKSxcbiAgXCJkZXBhcnRtZW50LWZvci1jb21tdW5pdGllcy1hbmQtbG9jYWwtZ292ZXJubWVudFwiOiAoXG4gICAgY29sb3VyOiAjMDA5OTk5LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMzc4MzZlXG4gICksXG4gIFwiZGVwYXJ0bWVudC1mb3ItY3VsdHVyZS1tZWRpYS1zcG9ydFwiOiAoXG4gICAgY29sb3VyOiAjZDQwMDcyLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjYTAzMTU1XG4gICksXG4gIFwiZGVwYXJ0bWVudC1mb3ItZWR1Y2F0aW9uXCI6IChcbiAgICBjb2xvdXI6ICMwMDNhNjksXG4gICAgY29sb3VyLXdlYnNhZmU6ICMzNDdjYTlcbiAgKSxcbiAgXCJkZXBhcnRtZW50LWZvci1lbnZpcm9ubWVudC1mb29kLXJ1cmFsLWFmZmFpcnNcIjogKFxuICAgIGNvbG91cjogIzAwYTMzYixcbiAgICBjb2xvdXItd2Vic2FmZTogIzAwODkzOFxuICApLFxuICBcImRlcGFydG1lbnQtZm9yLWludGVybmF0aW9uYWwtZGV2ZWxvcG1lbnRcIjogKFxuICAgIGNvbG91cjogIzAwMjg3OCxcbiAgICBjb2xvdXItd2Vic2FmZTogIzQwNWU5YVxuICApLFxuICBcImRlcGFydG1lbnQtZm9yLWludGVybmF0aW9uYWwtdHJhZGVcIjogKFxuICAgIGNvbG91cjogI2NmMTAyZCxcbiAgICBjb2xvdXItd2Vic2FmZTogIzAwNWVhNVxuICApLFxuICBcImRlcGFydG1lbnQtZm9yLXRyYW5zcG9ydFwiOiAoXG4gICAgY29sb3VyOiAjMDA2YzU2LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMzk4MzczXG4gICksXG4gIFwiZGVwYXJ0bWVudC1mb3Itd29yay1wZW5zaW9uc1wiOiAoXG4gICAgY29sb3VyOiAjMDBiZWI3LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMzc4MDdiXG4gICksXG4gIFwiZGVwYXJ0bWVudC1vZi1lbmVyZ3ktY2xpbWF0ZS1jaGFuZ2VcIjogKFxuICAgIGNvbG91cjogIzAwOWRkYixcbiAgICBjb2xvdXItd2Vic2FmZTogIzJiN2NhY1xuICApLFxuICBcImRlcGFydG1lbnQtb2YtaGVhbHRoXCI6IChcbiAgICBjb2xvdXI6ICMwMGFkOTMsXG4gICAgY29sb3VyLXdlYnNhZmU6ICMzOTgzNmVcbiAgKSxcbiAgXCJmb3JlaWduLWNvbW1vbndlYWx0aC1kZXZlbG9wbWVudC1vZmZpY2VcIjogKFxuICAgIGNvbG91cjogIzAxMjE2OVxuICApLFxuICBcImZvcmVpZ24tY29tbW9ud2VhbHRoLW9mZmljZVwiOiAoXG4gICAgY29sb3VyOiAjMDAzZTc0LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjNDA2ZTk3XG4gICksXG4gIFwiZ292ZXJubWVudC1lcXVhbGl0aWVzLW9mZmljZVwiOiAoXG4gICAgY29sb3VyOiAgIzkzMjViMlxuICApLFxuICBcImhtLWdvdmVybm1lbnRcIjogKFxuICAgIGNvbG91cjogIzAwNzZjMCxcbiAgICBjb2xvdXItd2Vic2FmZTogIzM0N2RhNFxuICApLFxuICBcImhtLXJldmVudWUtY3VzdG9tc1wiOiAoXG4gICAgY29sb3VyOiAjMDA5MzkwLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMDA4NjcwXG4gICksXG4gIFwiaG0tdHJlYXN1cnlcIjogKFxuICAgIGNvbG91cjogI2FmMjkyZSxcbiAgICBjb2xvdXItd2Vic2FmZTogIzgzMjMyMlxuICApLFxuICBcImhvbWUtb2ZmaWNlXCI6IChcbiAgICBjb2xvdXI6ICM5MzI1YjIsXG4gICAgY29sb3VyLXdlYnNhZmU6ICM5NDQwYjJcbiAgKSxcbiAgXCJtaW5pc3RyeS1vZi1kZWZlbmNlXCI6IChcbiAgICBjb2xvdXI6ICM0ZDI5NDIsXG4gICAgY29sb3VyLXdlYnNhZmU6ICM1YTVjOTJcbiAgKSxcbiAgXCJtaW5pc3RyeS1vZi1qdXN0aWNlXCI6IChcbiAgICBjb2xvdXI6ICMyMzFmMjAsXG4gICAgY29sb3VyLXdlYnNhZmU6ICM1YTVjOTJcbiAgKSxcbiAgXCJub3J0aGVybi1pcmVsYW5kLW9mZmljZVwiOiAoXG4gICAgY29sb3VyOiAjMDAyNjYzLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjM2U1OThjXG4gICksXG4gIFwib2ZmaWNlLW9mLXRoZS1hZHZvY2F0ZS1nZW5lcmFsLWZvci1zY290bGFuZFwiOiAoXG4gICAgY29sb3VyOiAjMDAyNjYzLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMDA1ZWE1XG4gICksXG4gIFwib2ZmaWNlLW9mLXRoZS1sZWFkZXItb2YtdGhlLWhvdXNlLW9mLWNvbW1vbnNcIjogKFxuICAgIGNvbG91cjogIzMxNzAyMyxcbiAgICBjb2xvdXItd2Vic2FmZTogIzAwNWY4ZlxuICApLFxuICBcIm9mZmljZS1vZi10aGUtbGVhZGVyLW9mLXRoZS1ob3VzZS1vZi1sb3Jkc1wiOiAoXG4gICAgY29sb3VyOiAjOWMxMzJlLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjYzIzOTVkXG4gICksXG4gIFwic2NvdGxhbmQtb2ZmaWNlXCI6IChcbiAgICBjb2xvdXI6ICMwMDI2NjMsXG4gICAgY29sb3VyLXdlYnNhZmU6ICM0MDVjOGFcbiAgKSxcbiAgXCJ1ay1leHBvcnQtZmluYW5jZVwiOiAoXG4gICAgY29sb3VyOiAjMDA1NzQ3LFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMDA1ZWE1XG4gICksXG4gIFwidWstdHJhZGUtaW52ZXN0bWVudFwiOiAoXG4gICAgY29sb3VyOiAjYzgwNjUxLFxuICAgIGNvbG91ci13ZWJzYWZlOiAjMDA1ZWE1XG4gICksXG4gIFwid2FsZXMtb2ZmaWNlXCI6IChcbiAgICBjb2xvdXI6ICNhMzMwMzgsXG4gICAgY29sb3VyLXdlYnNhZmU6ICM3YTI0MmFcbiAgKVxuKSAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvY29sb3Vyc1xuLy8vL1xuXG5AaW1wb3J0IFwiLi4vaGVscGVycy9jb2xvdXJcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZW5lcmljXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEJyYW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJyYW5kLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpICFkZWZhdWx0O1xuXG4vLy8gQ2FudmFzIGJhY2tncm91bmQgY29sb3VyXG4vLy9cbi8vLyBVc2VkIGJ5IHRoZSBmb290ZXIgY29tcG9uZW50IGFuZCB0ZW1wbGF0ZSB0byBnaXZlIHRoZSBpbGx1c2lvbiBvZiBhIGxvbmdcbi8vLyBmb290ZXIuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpICFkZWZhdWx0O1xuXG4vLy8gQm9keSBiYWNrZ3JvdW5kIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvZHktYmFja2dyb3VuZC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvdXIgZm9yIHByaW50IG1lZGlhXG4vLy9cbi8vLyBVc2UgJ3RydWUgYmxhY2snIHRvIGF2b2lkIHByaW50ZXJzIHVzaW5nIGNvbG91ciBpbmsgdG8gcHJpbnQgYm9keSB0ZXh0XG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcHJpbnQtdGV4dC1jb2xvdXI6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vLyBTZWNvbmRhcnkgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgJ211dGVkJyB0ZXh0IGFuZCBoZWxwIHRleHQuXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIikgIWRlZmF1bHQ7XG5cbi8vLyBGb2N1cyBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIG91dGxpbmUgKGFuZCBiYWNrZ3JvdW5kLCB3aGVyZSBhcHByb3ByaWF0ZSkgd2hlbiBpbnRlcmFjdGl2ZVxuLy8vIGVsZW1lbnRzIChsaW5rcywgZm9ybSBjb250cm9scykgaGF2ZSBrZXlib2FyZCBmb2N1cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy1jb2xvdXI6IGdvdnVrLWNvbG91cihcInllbGxvd1wiKSAhZGVmYXVsdDtcblxuLy8vIEZvY3VzZWQgdGV4dCBjb2xvdXJcbi8vL1xuLy8vIEVuc3VyZSB0aGF0IHRoZSBjb250cmFzdCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG91ciBwYXNzZXNcbi8vLyBXQ0FHIExldmVsIEFBIGNvbnRyYXN0IHJlcXVpcmVtZW50cy5cbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBFcnJvciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgdG8gaGlnaGxpZ2h0IGVycm9yIG1lc3NhZ2VzIGFuZCBmb3JtIGNvbnRyb2xzIGluIGFuIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZXJyb3ItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIikgIWRlZmF1bHQ7XG5cbi8vLyBTdWNjZXNzIGNvbG91clxuLy8vXG4vLy8gVXNlZCB0byBoaWdobGlnaHQgc3VjY2VzcyBtZXNzYWdlcyBhbmQgYmFubmVyc1xuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXN1Y2Nlc3MtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgaW4gZm9yIGV4YW1wbGUgYm9yZGVycywgc2VwYXJhdG9ycywgcnVsZXMgYW5kIGtleWxpbmVzLlxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci1jb2xvdXI6IGdvdnVrLWNvbG91cihcIm1pZC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0yXCIpO1xuXG4vLy8gSW5wdXQgYm9yZGVyIGNvbG91clxuLy8vXG4vLy8gVXNlZCBmb3IgZm9ybSBpbnB1dHMgYW5kIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjogZ292dWstY29sb3VyKFwiYmxhY2tcIikgIWRlZmF1bHQ7XG5cbi8vLyBJbnB1dCBob3ZlciBjb2xvdXJcbi8vL1xuLy8vIFVzZWQgZm9yIGhvdmVyIHN0YXRlcyBvbiBmb3JtIGNvbnRyb2xzXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gTGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLWNvbG91cjogZ292dWstY29sb3VyKFwiYmx1ZVwiKSAhZGVmYXVsdDtcblxuLy8vIFZpc2l0ZWQgbGluayBjb2xvdXJcbi8vL1xuLy8vIEB0eXBlIENvbG91clxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1saW5rLXZpc2l0ZWQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJwdXJwbGVcIiwgJGxlZ2FjeTogIzRjMmM5MikgIWRlZmF1bHQ7XG5cbi8vLyBMaW5rIGhvdmVyIGNvbG91clxuLy8vXG4vLy8gQHR5cGUgQ29sb3VyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWJsdWVcIiwgJGxlZ2FjeTogXCJsaWdodC1ibHVlXCIpICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGxpbmsgY29sb3VyXG4vLy9cbi8vLyBAdHlwZSBDb2xvdXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbGluay1hY3RpdmUtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiLCAkbGVnYWN5OiBcImxpZ2h0LWJsdWVcIikgIWRlZmF1bHQ7XG4iLCJAaW1wb3J0IFwiLi4vc2V0dGluZ3MvY29tcGF0aWJpbGl0eVwiO1xuQGltcG9ydCBcIi4uL3NldHRpbmdzL2NvbG91cnMtcGFsZXR0ZVwiO1xuQGltcG9ydCBcIi4uL3NldHRpbmdzL2NvbG91cnMtb3JnYW5pc2F0aW9uc1wiO1xuXG4vLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvY29sb3VyXG4vLy8vXG5cbi8vLyBHZXQgY29sb3VyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNvbG91ciAtIE5hbWUgb2YgY29sb3VyIGZyb20gdGhlIGNvbG91ciBwYWxldHRlXG4vLy8gICAoYCRnb3Z1ay1jb2xvdXJzYClcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGxlZ2FjeSAtIEVpdGhlciB0aGUgbmFtZSBvZiBjb2xvdXIgZnJvbSB0aGUgbGVnYWN5IHBhbGV0dGVcbi8vLyAgIG9yIGEgY29sb3VyIGxpdGVyYWwsIHRvIHJldHVybiBpbnN0ZWFkIHdoZW4gaW4gJ2xlZ2FjeSBtb2RlJyAtIG1hdGNoaW5nXG4vLy8gICB0aGUgcGFsZXR0ZSBmcm9tIEdPVi5VSyBUZW1wbGF0ZSwgRWxlbWVudHMgb3IgRnJvbnRlbmQgVG9vbGtpdFxuLy8vIEByZXR1cm4ge0NvbG91cn0gUmVwcmVzZW50YXRpb24gb2YgbmFtZWQgY29sb3VyXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNpbmcgbGVnYWN5IGNvbG91cnMgZnJvbSB0aGUgcGFsZXR0ZVxuLy8vICAuZm9vIHtcbi8vLyAgICBiYWNrZ3JvdW5kLWNvbG91cjogZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTJcIik7XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2luZyBsZWdhY3kgY29sb3VyIGxpdGVyYWxzXG4vLy8gIC5mb28ge1xuLy8vICAgIGJhY2tncm91bmQtY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiLCAkbGVnYWN5OiAjQkFEQTU1KTtcbi8vLyAgfVxuLy8vXG4vLy8gQHRocm93IGlmIGAkY29sb3VyYCBpcyBub3QgYSBjb2xvdXIgZnJvbSB0aGUgY29sb3VyIHBhbGV0dGVcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstY29sb3VyKCRjb2xvdXIsICRsZWdhY3k6IGZhbHNlKSB7XG4gIEBpZiAoJGdvdnVrLXVzZS1sZWdhY3ktcGFsZXR0ZSBhbmQgJGxlZ2FjeSkge1xuICAgIEBpZiAodHlwZS1vZigkbGVnYWN5KSA9PSBcImNvbG9yXCIpIHtcbiAgICAgIEByZXR1cm4gJGxlZ2FjeTtcbiAgICB9XG4gICAgJGNvbG91cjogJGxlZ2FjeTtcbiAgfVxuXG4gICRjb2xvdXI6IHF1b3RlKCRjb2xvdXIpO1xuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGdvdnVrLWNvbG91cnMsICRjb2xvdXIpIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIGNvbG91ciBgI3skY29sb3VyfWBcIjtcbiAgfVxuXG4gIEByZXR1cm4gbWFwLWdldCgkZ292dWstY29sb3VycywgJGNvbG91cik7XG59XG5cbi8vLyBHZXQgdGhlIGNvbG91ciBmb3IgYSBnb3Zlcm5tZW50IG9yZ2FuaXNhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcmdhbmlzYXRpb24gLSBPcmdhbmlzYXRpb24gbmFtZSwgbG93ZXJjYXNlLCBoeXBoZW5hdGVkXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd2Vic2FmZSBbdHJ1ZV0gLSBCeSBkZWZhdWx0IGEgJ3dlYnNhZmUnIHZlcnNpb24gb2YgdGhlXG4vLy8gICBjb2xvdXIgd2lsbCBiZSByZXR1cm5lZCB3aGljaCBtZWV0cyBjb250cmFzdCByZXF1aXJlbWVudHMgLiBJZiB5b3Ugd2FudCB0b1xuLy8vICAgdXNlIHRoZSBub24td2Vic2FmZSB2ZXJzaW9uIHlvdSBjYW4gc2V0IHRoaXMgdG8gYGZhbHNlYCBidXQgeW91ciBzaG91bGRcbi8vLyAgIGVuc3VyZSB0aGF0IHlvdSBzdGlsbCBtZWV0cyBjb250cmFzdCByZXF1aXJlbWVudHMgZm9yIGFjY2Vzc2liaWxpdHkgLSBmb3Jcbi8vLyAgIGV4YW1wbGUsIGRvIG5vdCB1c2UgdGhlIG5vbi13ZWJzYWZlIHZlcnNpb24gZm9yIHRleHQuXG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvdXJ9IFJlcHJlc2VudGF0aW9uIG9mIGNvbG91ciBmb3Igb3JnYW5pc2F0aW9uXG4vLy8gQHRocm93IGlmIGAkb3JnYW5pc2F0aW9uYCBpcyBub3QgYSBrbm93biBvcmdhbmlzYXRpb25cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstb3JnYW5pc2F0aW9uLWNvbG91cigkb3JnYW5pc2F0aW9uLCAkd2Vic2FmZTogdHJ1ZSkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRnb3Z1ay1jb2xvdXJzLW9yZ2FuaXNhdGlvbnMsICRvcmdhbmlzYXRpb24pIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIG9yZ2FuaXNhdGlvbiBgI3skb3JnYW5pc2F0aW9ufWBcIjtcbiAgfVxuXG4gICRvcmctY29sb3VyOiBtYXAtZ2V0KCRnb3Z1ay1jb2xvdXJzLW9yZ2FuaXNhdGlvbnMsICRvcmdhbmlzYXRpb24pO1xuXG4gIEBpZiAoJHdlYnNhZmUgYW5kIG1hcC1oYXMta2V5KCRvcmctY29sb3VyLCBjb2xvdXItd2Vic2FmZSkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG9yZy1jb2xvdXIsIGNvbG91ci13ZWJzYWZlKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRvcmctY29sb3VyLCBjb2xvdXIpO1xuICB9XG59XG5cbi8vLyBNYWtlIGEgY29sb3VyIGRhcmtlciBieSBtaXhpbmcgaXQgd2l0aCBibGFja1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvdXJ9ICRjb2xvdXIgLSBjb2xvdXIgdG8gc2hhZGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3VyYCBpbiByZXR1cm5lZCBjb2xvdXJcbi8vLyBAcmV0dXJuIHtDb2xvdXJ9XG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLXNoYWRlKCRjb2xvdXIsICRwZXJjZW50YWdlKSB7XG4gIEByZXR1cm4gbWl4KCMwMDAwMDAsICRjb2xvdXIsICRwZXJjZW50YWdlKTtcbn1cblxuLy8vIE1ha2UgYSBjb2xvdXIgbGlnaHRlciBieSBtaXhpbmcgaXQgd2l0aCB3aGl0ZVxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvdXJ9ICRjb2xvdXIgLSBjb2xvdXIgdG8gdGludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyY2VudGFnZSAtIHBlcmNlbnRhZ2Ugb2YgYCRjb2xvdXJgIGluIHJldHVybmVkIGNvbG91clxuLy8vIEByZXR1cm4ge0NvbG91cn1cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstdGludCgkY29sb3VyLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peChnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKSwgJGNvbG91ciwgJHBlcmNlbnRhZ2UpO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy9zcGFjaW5nXG4vLy8vXG5cbi8vLyBTaW5nbGUgcG9pbnQgc3BhY2luZyB2YXJpYWJsZXMuIEFjY2VzcyB1c2luZyBgZ292dWstc3BhY2luZygpYFxuLy8vIChzZWUgYGhlbHBlcnMvc3BhY2luZ2ApLlxuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbiRnb3Z1ay1zcGFjaW5nLXBvaW50czogKFxuICAwOiAwLFxuICAxOiA1cHgsXG4gIDI6IDEwcHgsXG4gIDM6IDE1cHgsXG4gIDQ6IDIwcHgsXG4gIDU6IDI1cHgsXG4gIDY6IDMwcHgsXG4gIDc6IDQwcHgsXG4gIDg6IDUwcHgsXG4gIDk6IDYwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBSZXNwb25zaXZlIHNwYWNpbmcgbWFwc1xuLy8vXG4vLy8gVGhlc2UgZGVmaW5pdGlvbnMgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2l2ZSBzcGFjaW5nIHRoYXQgYWRhcHRzXG4vLy8gYWNjb3JkaW5nIHRvIHRoZSBicmVha3BvaW50cyAoc2VlICdoZWxwZXJzL3NwYWNpbmcnKS4gVGhlc2UgbWFwcyBzaG91bGQgYmVcbi8vLyB1c2VkIHdoZXJldmVyIHBvc3NpYmxlIHRvIHN0YW5kYXJkaXNlIHJlc3BvbnNpdmUgc3BhY2luZy5cbi8vL1xuLy8vIFlvdSBjYW4gZGVmaW5lIGRpZmZlcmVudCBiZWhhdmlvdXIgb24gdGFibGV0IGFuZCBkZXNrdG9wLiBUaGUgJ251bGwnXG4vLy8gYnJlYWtwb2ludCBpcyBmb3IgbW9iaWxlLlxuLy8vXG4vLy8gQWNjZXNzIHJlc3BvbnNpdmUgc3BhY2luZyB3aXRoIGBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbmAgb3Jcbi8vLyBgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nYCBtaXhpbnMgKHNlZSBgaGVscGVycy9zcGFjaW5nYCkuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZTogKFxuICAwOiAoXG4gICAgbnVsbDogMCxcbiAgICB0YWJsZXQ6IDBcbiAgKSxcbiAgMTogKFxuICAgIG51bGw6IDVweCxcbiAgICB0YWJsZXQ6IDVweFxuICApLFxuICAyOiAoXG4gICAgbnVsbDogMTBweCxcbiAgICB0YWJsZXQ6IDEwcHhcbiAgKSxcbiAgMzogKFxuICAgIG51bGw6IDE1cHgsXG4gICAgdGFibGV0OiAxNXB4XG4gICksXG4gIDQ6IChcbiAgICBudWxsOiAxNXB4LFxuICAgIHRhYmxldDogMjBweFxuICApLFxuICA1OiAoXG4gICAgbnVsbDogMTVweCxcbiAgICB0YWJsZXQ6IDI1cHhcbiAgKSxcbiAgNjogKFxuICAgIG51bGw6IDIwcHgsXG4gICAgdGFibGV0OiAzMHB4XG4gICksXG4gIDc6IChcbiAgICBudWxsOiAyNXB4LFxuICAgIHRhYmxldDogNDBweFxuICApLFxuICA4OiAoXG4gICAgbnVsbDogMzBweCxcbiAgICB0YWJsZXQ6IDUwcHhcbiAgKSxcbiAgOTogKFxuICAgIG51bGw6IDQwcHgsXG4gICAgdGFibGV0OiA2MHB4XG4gIClcbikgIWRlZmF1bHQ7XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHNldHRpbmdzL21lYXN1cmVtZW50c1xuLy8vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhZ2UgbGF5b3V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIFdpZHRoIG9mIG1haW4gY29udGFpbmVyXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstcGFnZS13aWR0aDogOTYwcHggIWRlZmF1bHQ7XG5cbi8vLyBNYXAgb2YgZ3JpZCBjb2x1bW4gd2lkdGhzXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstZ3JpZC13aWR0aHM6IChcbiAgb25lLXF1YXJ0ZXI6IDI1JSxcbiAgb25lLXRoaXJkOiAzMy4zMzMzJSxcbiAgb25lLWhhbGY6IDUwJSxcbiAgdHdvLXRoaXJkczogNjYuNjY2NiUsXG4gIHRocmVlLXF1YXJ0ZXJzOiA3NSUsXG4gIGZ1bGw6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXI6IDMwcHggIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBoYWxmIHRoZSBndXR0ZXIgYmV0d2VlbiBncmlkIGNvbHVtbnNcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ndXR0ZXItaGFsZjogJGdvdnVrLWd1dHRlciAvIDI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQm9yZGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBTdGFuZGFyZCBib3JkZXIgd2lkdGhcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGg6IDVweCAhZGVmYXVsdDtcblxuLy8vIFdpZGUgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLXdpZGU6IDEwcHggIWRlZmF1bHQ7XG5cbi8vLyBOYXJyb3cgYm9yZGVyIHdpZHRoXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdzogNHB4ICFkZWZhdWx0O1xuXG4vLy8gRm9ybSBjb250cm9sIGJvcmRlciB3aWR0aFxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ6IDJweCAhZGVmYXVsdDtcblxuLy8vIEZvcm0gY29udHJvbCBib3JkZXIgd2lkdGggd2hlbiBpbiBlcnJvciBzdGF0ZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAZGVwcmVjYXRlZCBVc2UgJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgaW5zdGVhZC4gVGhlcmUgc2hvdWxkIGJlIG5vXG4vLy8gICBkaWZmZXJlbmNlIGluIHRoaWNrbmVzcyBmb3IgaW5wdXRzIGluIHRoZSBlcnJvciBzdGF0ZSwgaW4gb3JkZXIgdG9cbi8vLyAgIG1haW50YWluIGEgZGlzdGluY3QgZm9jdXMgc3RhdGUuXG5cbiRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50LWVycm9yOiAycHggIWRlZmF1bHQ7XG5cbi8vLyBGb3JtIGdyb3VwIGJvcmRlciB3aWR0aCB3aGVuIGluIGVycm9yIHN0YXRlXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZ3JvdXAtZXJyb3I6ICRnb3Z1ay1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggb2YgZm9jdXMgb3V0bGluZVxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWZvY3VzLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG5cbi8vLyBIb3ZlciB3aWR0aCBmb3IgZm9ybSBjb250cm9scyB3aXRoIGEgaG92ZXIgc3RhdGVcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1ob3Zlci13aWR0aDogMTBweCAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvdHlwb2dyYXBoeVxuLy8vL1xuXG4vLy8gTGlzdCBvZiBmb250IGZhbWlsaWVzIHRvIHVzZSBpZiB1c2luZyBHRFMgVHJhbnNwb3J0ICh0aGUgZGVmYXVsdCBmb250XG4vLy8gJ3N0YWNrJyBmb3IgR09WLlVLKVxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb250LWZhbWlseS1nZHMtdHJhbnNwb3J0OiBcIkdEUyBUcmFuc3BvcnRcIiwgYXJpYWwsIHNhbnMtc2VyaWY7XG5cbi8vLyBMaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gdXNlIGlmIHVzaW5nIE5UQSAob2xkIGZvbnQgJ3N0YWNrJyBmb3Jcbi8vLyBHT1YuVUspXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAZGVwcmVjYXRlZCBUbyBiZSByZW1vdmVkIG9uY2Ugc3VwcG9ydCBmb3IgY29tcGF0aWJpbGl0eSBtb2RlIGlzIGRyb3BwZWRcblxuJGdvdnVrLWZvbnQtZmFtaWx5LW50YTogXCJudGFcIiwgYXJpYWwsIHNhbnMtc2VyaWY7XG5cbi8vLyBMaXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gdXNlIGlmIHVzaW5nIHRoZSAndGFidWxhciBudW1iZXJzJyBzdWJzZXQgb2YgTlRBXG4vLy8gKHRoZSBkZWZhdWx0IGZvbnQgJ3N0YWNrJyBmb3IgR09WLlVLKVxuLy8vXG4vLy8gQmVjYXVzZSBudGF0YWJ1bGFybnVtYmVycyBvbmx5IGluY2x1ZGVzIHRoZSBkaWdpdHMgMC0xMCwgYWxsIG90aGVyIGdseXBoc1xuLy8vIHdpbGwgJ2ZhbGwtdGhyb3VnaCcgdGhlIHN0YWNrIHRvIE5UQS5cbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgb25jZSBzdXBwb3J0IGZvciBjb21wYXRpYmlsaXR5IG1vZGUgaXMgZHJvcHBlZFxuXG4kZ292dWstZm9udC1mYW1pbHktbnRhLXRhYnVsYXI6IFwibnRhdGFidWxhcm51bWJlcnNcIiwgJGdvdnVrLWZvbnQtZmFtaWx5LW50YTtcbiIsIkBpbXBvcnQgXCJjb21wYXRpYmlsaXR5XCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS1mb250LWZhbWlsaWVzXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvdHlwb2dyYXBoeVxuLy8vL1xuXG4vLy8gVXNlICdsZWdhY3knIGZvbnRzXG4vLy9cbi8vLyBXaGV0aGVyIG9yIG5vdCB0byB1c2UgdjEgbnRhIGZvbnQgZnJvbSBHT1YuVUsgRWxlbWVudHMgLyBGcm9udGVuZFxuLy8vIFRvb2xraXQsIGZvciB0ZWFtcyB0aGF0IGFyZSBtaWdyYXRpbmcgdG8gR09WLlVLIEZyb250ZW5kIGFuZCBtYXkgYmUgdXNpbmdcbi8vLyBjb21wb25lbnRzIGZyb20gYm90aCBwbGFjZXMgaW4gYSBzaW5nbGUgYXBwbGljYXRpb24uXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXVzZS1sZWdhY3ktZm9udDogaWYoXG4gIChcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a2Zyb250ZW5kdG9vbGtpdCBvclxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrdGVtcGxhdGUgb3JcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a2VsZW1lbnRzXG4gICksXG4gIHRydWUsXG4gIGZhbHNlXG4pICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvbnQgZmFtaWxpZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gRm9udCBmYW1pbGllcyB0byB1c2UgZm9yIGFsbCB0eXBvZ3JhcGh5IG9uIHNjcmVlbiBtZWRpYVxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb250LWZhbWlseTogaWYoXG4gICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQsXG4gICRnb3Z1ay1mb250LWZhbWlseS1udGEsXG4gICRnb3Z1ay1mb250LWZhbWlseS1nZHMtdHJhbnNwb3J0XG4pICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbGllcyB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRhYnVsYXIgbnVtYmVyc1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyOiBpZihcbiAgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCxcbiAgJGdvdnVrLWZvbnQtZmFtaWx5LW50YS10YWJ1bGFyLFxuICBmYWxzZVxuKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWxpZXMgdG8gdXNlIGZvciBwcmludCBtZWRpYVxuLy8vXG4vLy8gV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSBzeXN0ZW0gZm9udHMgd2hlbiBwcmludGluZy4gVGhpcyB3aWxsIGF2b2lkIGlzc3Vlc1xuLy8vIHdpdGggc29tZSBwcmludGVyIGRyaXZlcnMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1mb250LWZhbWlseS1wcmludDogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIEluY2x1ZGUgdGhlIGRlZmF1bHQgQGZvbnQtZmFjZSBkZWNsYXJhdGlvbnNcbi8vL1xuLy8vIElmIHlvdSBoYXZlIHNldCAkZ292dWstZm9udC1mYW1pbHkgdG8gc29tZXRoaW5nIG90aGVyIHRoYW5cbi8vLyBgJGdvdnVrLWZvbnQtZmFtaWx5LWdkcy10cmFuc3BvcnRgIHRoaXMgb3B0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWluY2x1ZGUtZGVmYXVsdC1mb250LWZhY2U6IChcbiAgJGdvdnVrLWZvbnQtZmFtaWx5ID09ICRnb3Z1ay1mb250LWZhbWlseS1nZHMtdHJhbnNwb3J0XG4pICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvbnQgd2VpZ2h0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBGb250IHdlaWdodCBmb3IgcmVndWxhciB0eXBvZ3JhcGh5XG4vLy9cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAYWNjZXNzIHB1YmxpY1xuJGdvdnVrLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBib2xkIHR5cG9ncmFwaHlcbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG4kZ292dWstZm9udC13ZWlnaHQtYm9sZDogNzAwICFkZWZhdWx0O1xuIiwiQGltcG9ydCBcImNvbXBhdGliaWxpdHlcIjtcblxuLy8vL1xuLy8vIEBncm91cCBzZXR0aW5ncy90eXBvZ3JhcGh5XG4vLy8vXG5cbi8vLyBXaGV0aGVyIG9yIG5vdCB0byBkZWZpbmUgZm9udCBzaXplcyBpbiByZW0sIGltcHJvdmluZyBhY2Nlc3NpYmlsaXR5IGJ5XG4vLy8gYWxsb3dpbmcgdXNlcnMgdG8gYWRqdXN0IHRoZSBiYXNlIGZvbnQtc2l6ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsXG4vLy8gdW5sZXNzIGFueSBvZiB0aGUgY29tcGF0aWJpbGl0eSBtb2RlIHNldHRpbmdzIGFyZSBlbmFibGVkLlxuLy8vXG4vLy8gWW91IHNob3VsZCBtYWtlIHN1cmUgdGhhdCAkZ292dWstcm9vdC1mb250LXNpemUgaXMgc2V0IGNvcnJlY3RseSBmb3IgeW91clxuLy8vIHByb2plY3QuXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbTogaWYoXG4gIChcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a2Zyb250ZW5kdG9vbGtpdCBvclxuICAgICRnb3Z1ay1jb21wYXRpYmlsaXR5LWdvdnVrdGVtcGxhdGUgb3JcbiAgICAkZ292dWstY29tcGF0aWJpbGl0eS1nb3Z1a2VsZW1lbnRzXG4gICksXG4gIGZhbHNlLFxuICB0cnVlXG4pICFkZWZhdWx0O1xuXG4vLy8gUm9vdCBmb250IHNpemVcbi8vL1xuLy8vIFRoaXMgaXMgdXNlZCB0byBjYWxjdWxhdGUgcmVtIHNpemVzIGZvciB0aGUgdHlwb2dyYXBoeSwgYW5kIHNob3VsZCBtYXRjaCB0aGVcbi8vLyBfZWZmZWN0aXZlXyBmb250LXNpemUgb2YgeW91ciByb290IChvciBodG1sKSBlbGVtZW50LlxuLy8vXG4vLy8gSWRlYWxseSB5b3Ugc2hvdWxkIG5vdCBiZSBzZXR0aW5nIHRoZSBmb250LXNpemUgb24gdGhlIGh0bWwgb3Igcm9vdCBlbGVtZW50XG4vLy8gaW4gb3JkZXIgdG8gYWxsb3cgaXQgdG8gc2NhbGUgd2l0aCB1c2VyLXByZWZlcmVuY2UsIGluIHdoaWNoIGNhc2UgdGhpc1xuLy8vIHNob3VsZCBiZSBzZXQgdG8gMTZweC5cbi8vL1xuLy8vIElmIHlvdSBhcmUgaW50ZWdyYXRpbmcgRnJvbnRlbmQgaW50byBhbiBleGlzdGluZyBwcm9qZWN0IHRoYXQgYWxzbyB1c2VzXG4vLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgYW5kIHlvdSB3aXNoIHRvIGVuYWJsZSBgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbWBcbi8vLyB0aGVuIHlvdSBzaG91bGQgc2V0IHRoaXMgdG8gMTBweCB0byBtYXRjaCB0aGUgNjIuNSUgKDEwcHgpIGJhc2UgZm9udCBzaXplXG4vLy8gdGhhdCBnb3Z1a190ZW1wbGF0ZSBzZXRzIG9uIHRoZSA8aHRtbD4gZWxlbWVudC5cbi8vL1xuLy8vIEB0eXBlIE51bWJlclxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbiRnb3Z1ay1yb290LWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgdHlwb2dyYXBoeSBmb250IG1hcFxuLy8vXG4vLy8gVGhpcyBpcyB1c2VkIHRvIGdlbmVyYXRlIHJlc3BvbnNpdmUgdHlwb2dyYXBoeSB0aGF0IGFkYXB0cyBhY2NvcmRpbmcgdG8gdGhlXG4vLy8gYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBGb250IHNpemUgYW5kIGZvbnQgd2VpZ2h0IGNhbiBiZSBkZWZpbmVkIGZvciBlYWNoIGJyZWFrcG9pbnQuIFlvdSBjYW4gZGVmaW5lXG4vLy8gZGlmZmVyZW50IGJlaGF2aW91ciBvbiB0YWJsZXQgYW5kIGRlc2t0b3AuIFRoZSAnbnVsbCcgYnJlYWtwb2ludCBpcyBmb3Jcbi8vLyBtb2JpbGUuXG4vLy9cbi8vLyBMaW5lLWhlaWdodHMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbnZlcnRlZCBmcm9tIHBpeGVsIG1lYXN1cmVtZW50cyBpbnRvXG4vLy8gcmVsYXRpdmUgdmFsdWVzLiBGb3IgZXhhbXBsZSwgd2l0aCBhIGZvbnQtc2l6ZSBvZiAxNnB4IGFuZCBhIGxpbmUtaGVpZ2h0IG9mXG4vLy8gMjRweCwgdGhlIGxpbmUtaGVpZ2h0IHdpbGwgYmUgY29udmVydGVkIHRvIDEuNSBiZWZvcmUgb3V0cHV0LlxuLy8vXG4vLy8gWW91IGNhbiBhbHNvIHNwZWNpZnkgYSBzZXBhcmF0ZSBmb250IHNpemUgYW5kIGxpbmUgaGVpZ2h0IGZvciBwcmludCBtZWRpYS5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vXG4vLy8gQHByb3Age051bWJlcn0gJHBvaW50LiRicmVha3BvaW50LmZvbnQtc2l6ZSAtIEZvbnQgc2l6ZSBmb3IgYCRwb2ludGAgYXQgYCRicmVha3BvaW50YFxuLy8vIEBwcm9wIHtOdW1iZXJ9ICRwb2ludC4kYnJlYWtwb2ludC5saW5lLWhlaWdodCAtIExpbmUgaGVpZ2h0IGZvciBgJHBvaW50YCBhdCBgJGJyZWFrcG9pbnRgXG4vLy8gQHByb3Age051bWJlcn0gJHBvaW50LnByaW50LmZvbnQtc2l6ZSAtIEZvbnQgc2l6ZSBmb3IgYCRwb2ludGAgd2hlbiBwcmludGluZ1xuLy8vIEBwcm9wIHtOdW1iZXJ9ICRwb2ludC5wcmludC5saW5lLWhlaWdodCAtIExpbmUgaGVpZ2h0IGZvciBgJHBvaW50YCB3aGVuIHByaW50aW5nXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstdHlwb2dyYXBoeS1zY2FsZTogKFxuICA4MDogKFxuICAgIG51bGw6IChcbiAgICAgIGZvbnQtc2l6ZTogNTNweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiA1NXB4XG4gICAgKSxcbiAgICB0YWJsZXQ6IChcbiAgICAgIGZvbnQtc2l6ZTogODBweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiA4MHB4XG4gICAgKSxcbiAgICBwcmludDogKFxuICAgICAgZm9udC1zaXplOiA1M3B0LFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMVxuICAgIClcbiAgKSxcbiAgNDg6IChcbiAgICBudWxsOiAoXG4gICAgICBmb250LXNpemU6IDMycHgsXG4gICAgICBsaW5lLWhlaWdodDogMzVweFxuICAgICksXG4gICAgdGFibGV0OiAoXG4gICAgICBmb250LXNpemU6IDQ4cHgsXG4gICAgICBsaW5lLWhlaWdodDogNTBweFxuICAgICksXG4gICAgcHJpbnQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMzJwdCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1XG4gICAgKVxuICApLFxuICAzNjogKFxuICAgIG51bGw6IChcbiAgICAgIGZvbnQtc2l6ZTogMjRweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4XG4gICAgKSxcbiAgICB0YWJsZXQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMzZweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4XG4gICAgKSxcbiAgICBwcmludDogKFxuICAgICAgZm9udC1zaXplOiAyNHB0LFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMDVcbiAgICApXG4gICksXG4gIDI3OiAoXG4gICAgbnVsbDogKFxuICAgICAgZm9udC1zaXplOiAxOHB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDIwcHhcbiAgICApLFxuICAgIHRhYmxldDogKFxuICAgICAgZm9udC1zaXplOiAyN3B4LFxuICAgICAgbGluZS1oZWlnaHQ6IDMwcHhcbiAgICApLFxuICAgIHByaW50OiAoXG4gICAgICBmb250LXNpemU6IDE4cHQsXG4gICAgICBsaW5lLWhlaWdodDogMS4xNVxuICAgIClcbiAgKSxcbiAgMjQ6IChcbiAgICBudWxsOiAoXG4gICAgICBmb250LXNpemU6IDE4cHgsXG4gICAgICBsaW5lLWhlaWdodDogMjBweFxuICAgICksXG4gICAgdGFibGV0OiAoXG4gICAgICBmb250LXNpemU6IDI0cHgsXG4gICAgICBsaW5lLWhlaWdodDogMzBweFxuICAgICksXG4gICAgcHJpbnQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMThwdCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1XG4gICAgKVxuICApLFxuICAxOTogKFxuICAgIG51bGw6IChcbiAgICAgIGZvbnQtc2l6ZTogMTZweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4XG4gICAgKSxcbiAgICB0YWJsZXQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMTlweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4XG4gICAgKSxcbiAgICBwcmludDogKFxuICAgICAgZm9udC1zaXplOiAxNHB0LFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMTVcbiAgICApXG4gICksXG4gIDE2OiAoXG4gICAgbnVsbDogKFxuICAgICAgZm9udC1zaXplOiAxNHB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDE2cHhcbiAgICApLFxuICAgIHRhYmxldDogKFxuICAgICAgZm9udC1zaXplOiAxNnB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDIwcHhcbiAgICApLFxuICAgIHByaW50OiAoXG4gICAgICBmb250LXNpemU6IDE0cHQsXG4gICAgICBsaW5lLWhlaWdodDogMS4yXG4gICAgKVxuICApLFxuICAxNDogKFxuICAgIG51bGw6IChcbiAgICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4XG4gICAgKSxcbiAgICB0YWJsZXQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMTRweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4XG4gICAgKSxcbiAgICBwcmludDogKFxuICAgICAgZm9udC1zaXplOiAxMnB0LFxuICAgICAgbGluZS1oZWlnaHQ6IDEuMlxuICAgIClcbiAgKVxuKSAhZGVmYXVsdDtcbiIsIi8vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3MvbGlua3Ncbi8vLy9cblxuLy8vIEVuYWJsZSBuZXcgbGluayBzdHlsZXNcbi8vL1xuLy8vIElmIGVuYWJsZWQsIHRoZSBsaW5rIHN0eWxlcyB3aWxsIGNoYW5nZS4gVW5kZXJsaW5lcyB3aWxsOlxuLy8vXG4vLy8gLSBiZSBjb25zaXN0ZW50bHkgdGhpbm5lciBhbmQgYSBiaXQgZnVydGhlciBhd2F5IGZyb20gdGhlIGxpbmsgdGV4dFxuLy8vIC0gaGF2ZSBhIGNsZWFyZXIgaG92ZXIgc3RhdGUsIHdoZXJlIHRoZSB1bmRlcmxpbmUgZ2V0cyB0aGlja2VyIHRvIG1ha2UgdGhlXG4vLy8gICBsaW5rIHN0YW5kIG91dCB0byB1c2Vyc1xuLy8vXG4vLy8gWW91IHNob3VsZCBvbmx5IGVuYWJsZSB0aGUgbmV3IGxpbmsgc3R5bGVzIGlmIGJvdGg6XG4vLy9cbi8vLyAtIHlvdSd2ZSBtYWRlIHN1cmUgeW91ciB3aG9sZSBzZXJ2aWNlIHdpbGwgdXNlIHRoZSBuZXcgc3R5bGUgY29uc2lzdGVudGx5XG4vLy8gLSB5b3UgZG8gbm90IGhhdmUgbGlua3MgaW4gYSBtdWx0aS1jb2x1bW4gQ1NTIGxheW91dCAtIHRoZXJlJ3MgW2EgQ2hyb21pdW1cbi8vLyAgIGJ1ZyB0aGF0IGFmZmVjdHMgbGlua3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9nb3Z1ay1mcm9udGVuZC9pc3N1ZXMvMjIwNClcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG4kZ292dWstbmV3LWxpbmstc3R5bGVzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXNcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IHdpbGwgYmUgZWl0aGVyOlxuLy8vXG4vLy8gIC0gMXB4XG4vLy8gIC0gMC4wNjI1cmVtLCBpZiBpdCdzIHRoaWNrZXIgdGhhbiAxcHggYmVjYXVzZSB0aGUgdXNlciBoYXMgY2hhbmdlZCB0aGUgdGV4dFxuLy8vICAgIHNpemUgaW4gdGhlaXIgYnJvd3NlclxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgxcHgsIC4wNjI1cmVtKVwiKSAhZGVmYXVsdDtcblxuLy8vIE9mZnNldCBvZiBsaW5rIHVuZGVybGluZXMgZnJvbSB0ZXh0IGJhc2VsaW5lXG4vLy9cbi8vLyBTZXQgdGhpcyB2YXJpYWJsZSB0byBgZmFsc2VgIHRvIGF2b2lkIHNldHRpbmcgYW4gb2Zmc2V0LlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDogLjFlbSAhZGVmYXVsdDtcblxuLy8vIFRoaWNrbmVzcyBvZiBsaW5rIHVuZGVybGluZXMgaW4gaG92ZXIgc3RhdGVcbi8vL1xuLy8vIFRoZSBkZWZhdWx0IGZvciBlYWNoIGxpbmsgd2lsbCBiZSB0aGUgdGhpY2tlc3Qgb2YgdGhlIGZvbGxvd2luZzpcbi8vL1xuLy8vICAtIDNweFxuLy8vICAtIDAuMTg3NXJlbSwgaWYgaXQncyB0aGlja2VyIHRoYW4gM3B4IGJlY2F1c2UgdGhlIHVzZXIgaGFzIGNoYW5nZWQgdGhlIHRleHRcbi8vLyAgICBzaXplIGluIHRoZWlyIGJyb3dzZXJcbi8vLyAgLSAwLjEyZW0gKHJlbGF0aXZlIHRvIHRoZSBsaW5rJ3MgdGV4dCBzaXplKVxuLy8vXG4vLy8gU2V0IHRoaXMgdmFyaWFibGUgdG8gYGZhbHNlYCB0byBhdm9pZCBzZXR0aW5nIGEgdGhpY2tuZXNzLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzczogdW5xdW90ZShcIm1heCgzcHgsIC4xODc1cmVtLCAuMTJlbSlcIikgIWRlZmF1bHQ7XG4iLCJAaW1wb3J0IFwiY29tcGF0aWJpbGl0eVwiO1xuQGltcG9ydCBcImV4cG9ydHNcIjtcbkBpbXBvcnQgXCJmb250LXVybFwiO1xuQGltcG9ydCBcImllOFwiO1xuQGltcG9ydCBcImlmZlwiO1xuQGltcG9ydCBcImltYWdlLXVybFwiO1xuQGltcG9ydCBcInB4LXRvLWVtXCI7XG5AaW1wb3J0IFwicHgtdG8tcmVtXCI7XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHRvb2xzL2NvbXBhdGliaWxpdHktbW9kZVxuLy8vL1xuXG4vLy8gQ29uZGl0aW9uYWwgQ29tcGF0aWJpbGl0eSBNaXhpblxuLy8vXG4vLy8gU2VsZWN0aXZlbHkgb3V0cHV0IGEgYmxvY2sgKGF2YWlsYWJsZSB0byB0aGUgbWl4aW4gYXMgQGNvbnRlbnQpIGlmIGEgZ2l2ZW5cbi8vLyAkcHJvZHVjdCBpcyBhbHNvIGlkZW50aWZpZWQgYXMgYmVpbmcgdXNlZCBpbiB0aGUgcHJvamVjdC5cbi8vL1xuLy8vIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCB0byBpbmNsdWRlIHN0eWxlcyB0aGF0IGFyZSBvbmx5IG5lZWRlZCB0byBvdmVycmlkZVxuLy8vIHN0eWxlcyBwcm92aWRlZCBieSB0aG9zZSBvdGhlciBwcm9kdWN0cyAoZS5nLiB3aGVyZSBnb3Z1a190ZW1wbGF0ZSBoYXMgYVxuLy8vIHZlcnkgc3BlY2lmaWMgbGluayBzZWxlY3RvciB0aGF0IG90aGVyd2lzZSBhZmZlY3RzIGJ1dHRvbnMpLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLy8gT3ZlcnJpZGUgLm15LWNsYXNzIGlmIEdPVi5VSyBUZW1wbGF0ZSBpcyBhbHNvIGJlaW5nIHVzZWRcbi8vLyAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbi8vLyAgICAgLm15LWNsYXNzIHtcbi8vLyAgICAgICBjb2xvcjogaW5oZXJpdDtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9kdWN0IC0gTmFtZSBvZiBwcm9kdWN0IHRoYXQgd2UgYXJlICdkZWZlbmRpbmcnIGFnYWluc3QuXG4vLy8gQGNvbnRlbnQgUGFzc2VkIGNvbnRlbnQgaXMgb3V0cHV0dGVkIG9ubHkgaWYgRnJvbnRlbmQgaXMgYmVpbmcgdXNlZCB3aXRoXG4vLy8gICB0aGlzIHByb2R1Y3Rcbi8vLyBAdGhyb3cgRXJyb3JzIGlmIHByb2R1Y3QgbmFtZSBpcyBub3QgcmVjb2duaXNlZFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1jb21wYXRpYmlsaXR5KCRwcm9kdWN0KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkX2dvdnVrLWNvbXBhdGliaWxpdHksICRwcm9kdWN0KSB7XG4gICAgQGlmIG1hcC1nZXQoJF9nb3Z1ay1jb21wYXRpYmlsaXR5LCAkcHJvZHVjdCkgPT0gdHJ1ZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIk5vbiBleGlzdGVudCBwcm9kdWN0ICcjeyRwcm9kdWN0fSdcIjtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCB0b29sc1xuLy8vL1xuXG4vLy8gTGlzdCBvZiBtb2R1bGVzIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVuIGV4cG9ydGVkXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbiRfZ292dWstaW1wb3J0ZWQtbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5cbi8vLyBFeHBvcnQgbW9kdWxlXG4vLy9cbi8vLyBFbnN1cmUgdGhhdCB0aGUgbW9kdWxlcyBvZiBDU1MgdGhhdCB3ZSBkZWZpbmUgdGhyb3VnaG91dCBGcm9udGVuZCBhcmUgb25seVxuLy8vIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgQ1NTIG9uY2UsIG5vIG1hdHRlciBob3cgbWFueSB0aW1lcyB0aGV5IGFyZVxuLy8vIGltcG9ydGVkIGFjcm9zcyB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiBtb2R1bGUgLSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGNvZGViYXNlXG4vLy8gQGNvbnRlbnQgVGhlIHBhc3NlZCBjb250ZW50IHdpbGwgb25seSBiZSBvdXRwdXR0ZWQgaWYgYSBtb2R1bGUgb2YgdGhlIHNhbWVcbi8vLyAgICRuYW1lIGhhcyBub3QgYWxyZWFkeSBiZWVuIG91dHB1dHRlZFxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1leHBvcnRzKCRuYW1lKSB7XG4gIC8vIElmIHRoZSBtaXhpbiBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhbHJlYWR5IGV4cG9ydGVkLi4uXG4gIEBpZiAoaW5kZXgoJF9nb3Z1ay1pbXBvcnRlZC1tb2R1bGVzLCAkbmFtZSkgPT0gbnVsbCkge1xuICAgIC8vIC4uLiB0aGVuIGFkZCBpdCB0byB0aGUgbGlzdFxuICAgICRfZ292dWstaW1wb3J0ZWQtbW9kdWxlczogYXBwZW5kKCRfZ292dWstaW1wb3J0ZWQtbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgLy8gLi4uIGFuZCBvdXRwdXQgdGhlIENTUyBmb3IgdGhhdCBtb2R1bGVcbiAgICBAY29udGVudDtcbiAgfVxuICAvLyBUaGUgbmV4dCB0aW1lIGV4cG9ydHMgaXMgY2FsbGVkIGZvciB0aGUgbW9kdWxlIG9mIHRoZSBzYW1lIG5hbWUsIGl0IHdpbGwgYmVcbiAgLy8gZm91bmQgaW4gdGhlIGxpc3QgYW5kIHNvIG5vdGhpbmcgd2lsbCBiZSBvdXRwdXR0ZWQuXG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHRvb2xzL2Fzc2V0c1xuLy8vL1xuXG4vLy8gRm9udCBVUkxcbi8vL1xuLy8vIElmIGEgY3VzdG9tIGZvbnQtdXJsIGhhbmRsZXIgaXMgZGVmaW5lZCAoJGdvdnVrLWZvbnQtdXJsLWZ1bmN0aW9uKSB0aGVuXG4vLy8gaXQgd2lsbCBiZSBjYWxsZWQsIG90aGVyd2lzZSBhIHVybCB3aWxsIGJlIHJldHVybmVkIHdpdGggdGhlIGZpbGVuYW1lXG4vLy8gYXBwZW5kZWQgdG8gdGhlIGZvbnQgcGF0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZmlsZW5hbWUgLSBGb250IGZpbGVuYW1lXG4vLy8gQHJldHVybiB7U3RyaW5nfSBVUkwgZm9yIHRoZSBmaWxlbmFtZSwgd3JhcHBlZCBpbiBgdXJsKClgXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLWZvbnQtdXJsKCRmaWxlbmFtZSkge1xuICAkdXNlLWN1c3RvbS1mdW5jdGlvbjogdmFyaWFibGUtZXhpc3RzKFwiZ292dWstZm9udC11cmwtZnVuY3Rpb25cIilcbiAgICBhbmQgJGdvdnVrLWZvbnQtdXJsLWZ1bmN0aW9uXG4gICAgYW5kIGZ1bmN0aW9uLWV4aXN0cygkZ292dWstZm9udC11cmwtZnVuY3Rpb24pO1xuXG4gIEBpZiAoJHVzZS1jdXN0b20tZnVuY3Rpb24pIHtcbiAgICBAcmV0dXJuIGNhbGwoZ2V0LWZ1bmN0aW9uKCRnb3Z1ay1mb250LXVybC1mdW5jdGlvbiksICRmaWxlbmFtZSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsKCRnb3Z1ay1mb250cy1wYXRoICsgJGZpbGVuYW1lKTtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCB0b29scy9pbnRlcm5ldC1leHBsb3Jlci04XG4vLy8vXG5cbi8vLyBDb25kaXRpb25hbGx5IGluY2x1ZGUgcnVsZXMgb25seSBmb3IgSUU4XG4vLy9cbi8vLyBAY29udGVudCBQYXNzZWQgY29udGVudCBpcyBvbmx5IG91dHB1dHRlZCBpZiB3ZSdyZSBjb21waWxpbmcgYSBzdHlsZXNoZWV0XG4vLy8gICB0aGF0IHRhcmdldHMgSUU4IChpZiBgJGdvdnVrLWlzLWllOGAgaXMgdHJ1ZSlcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgbWluLXdpZHRoOiAxMDBweDtcbi8vLyAgICAgLy8gU3BlY2lmeSB3aWR0aCBmb3IgSUU4IG9ubHlcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbi8vLyAgICAgICB3aWR0aDogMTAwcHg7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1pZi1pZTgge1xuICBAaWYgJGdvdnVrLWlzLWllOCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIENvbmRpdGlvbmFsbHkgZXhjbHVkZSBydWxlcyBmb3IgSUU4XG4vLy9cbi8vLyBAY29udGVudCBQYXNzZWQgY29udGVudCBpcyBvbmx5IG91dHB1dHRlZCBpZiB3ZSdyZSBub3QgY29tcGlsaW5nIGFcbi8vLyAgIHN0eWxlc2hlZXQgdGhhdCB0YXJnZXRzIElFOCAoaWYgYCRnb3Z1ay1pcy1pZThgIGlzIGZhbHNlKVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBmb250LXdlaWdodDogYm9sZDtcbi8vL1xuLy8vICAgICAvLyBFbmhhbmNlIGZvbyBvbmx5IGZvciBtb2Rlcm4gYnJvd3NlcnMgKG5vdCBJRTgpXG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuLy8vICAgICAgIGZvbnQtZmFtaWx5OiBcIkNvbWljIFNhbnMgTVNcIiwgXCJDdXJseiBNVFwiIGN1cnNpdmUsIHNhbnMtc2VyaWY7XG4vLy8gICAgICAgY29sb3I6ICNGRjY5QjQ7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1ub3QtaWU4IHtcbiAgQGlmIG5vdCAkZ292dWstaXMtaWU4IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCB0b29sc1xuLy8vL1xuXG4vLy8gU3ludGFjdGljIHN1Z2FyIGFyb3VuZCBTYXNzJyBidWlsdC1pbiBgaWZgIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgcmVxdWlyZVxuLy8vIHlvdSB0byBwYXNzIGEgdmFsdWUgZm9yIGAkaWYtZmFsc2VgLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY29uZGl0aW9uIC0gV2hldGhlciB0byByZXR1cm4gdGhlIHZhbHVlIG9mIGAkaWYtdHJ1ZWBcbi8vLyBAcGFyYW0ge01peGVkfSAkaWYtdHJ1ZSAtIFZhbHVlIHRvIHJldHVybiBpZiBgJGNvbmRpdGlvbmAgaXMgdHJ1dGh5XG4vLy8gQHJldHVybiB7TWl4ZWR9IFZhbHVlIG9mIGAkaWYtdHJ1ZWAgaWYgYCRjb25kaXRpb25gIGlzIHRydXRoeSwgZWxzZSBudWxsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQGRlcHJlY2F0ZWQgV2Ugd2lsbCBiZSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGluIGEgZnV0dXJlIHJlbGVhc2UsIHVzZSBgaWYoJGNvbmRpdGlvbiwgJGlmLXRydWUsIG51bGwpO2AgaW5zdGVhZC5cblxuQGZ1bmN0aW9uIGlmZigkY29uZGl0aW9uLCAkaWYtdHJ1ZSkge1xuICBAd2FybiBcIlRoZSBgaWZmYCBmdW5jdGlvbiB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSwgdXNlIGBpZigkY29uZGl0aW9uLCAkaWYtdHJ1ZSwgbnVsbCk7YCBpbnN0ZWFkLlwiO1xuICBAcmV0dXJuIGlmKCRjb25kaXRpb24sICRpZi10cnVlLCBudWxsKTtcbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHMvYXNzZXRzXG4vLy8vXG5cbi8vLyBJbWFnZSBVUkxcbi8vL1xuLy8vIElmIGEgY3VzdG9tIGltYWdlLXVybCBoYW5kbGVyIGlzIGRlZmluZWQgKCRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb24pIHRoZW5cbi8vLyBpdCB3aWxsIGJlIGNhbGxlZCwgb3RoZXJ3aXNlIGEgdXJsIHdpbGwgYmUgcmV0dXJuZWQgd2l0aCB0aGUgZmlsZW5hbWVcbi8vLyBhcHBlbmRlZCB0byB0aGUgaW1hZ2UgcGF0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSBGaWxlbmFtZSBmb3IgdGhlIGltYWdlIHRvIGxvYWRcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IFVSTCBmb3IgdGhlIGZpbGVuYW1lLCB3cmFwcGVkIGluIGB1cmwoKWBcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstaW1hZ2UtdXJsKCRmaWxlbmFtZSkge1xuICAkdXNlLWN1c3RvbS1mdW5jdGlvbjogdmFyaWFibGUtZXhpc3RzKFwiZ292dWstaW1hZ2UtdXJsLWZ1bmN0aW9uXCIpXG4gICAgYW5kICRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb25cbiAgICBhbmQgZnVuY3Rpb24tZXhpc3RzKCRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb24pO1xuXG4gIEBpZiAoJHVzZS1jdXN0b20tZnVuY3Rpb24pIHtcbiAgICBAcmV0dXJuIGNhbGwoZ2V0LWZ1bmN0aW9uKCRnb3Z1ay1pbWFnZS11cmwtZnVuY3Rpb24pLCAkZmlsZW5hbWUpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybCgkZ292dWstaW1hZ2VzLXBhdGggKyAkZmlsZW5hbWUpO1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIHRvb2xzL3VuaXQtY29udmVyc2lvblxuLy8vL1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBMZW5ndGggaW4gcGl4ZWxzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb250ZXh0LWZvbnQtc2l6ZSAtIEZvbnQgc2l6ZSBvZiBlbGVtZW50XG4vLy8gQHJldHVybiB7TnVtYmVyfSBMZW5ndGggaW4gZW1zXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLWVtKCR2YWx1ZSwgJGNvbnRleHQtZm9udC1zaXplKSB7XG4gIEBpZiAodW5pdGxlc3MoJHZhbHVlKSkge1xuICAgICR2YWx1ZTogJHZhbHVlICogMXB4O1xuICB9XG4gIEBpZiAodW5pdGxlc3MoJGNvbnRleHQtZm9udC1zaXplKSkge1xuICAgICRjb250ZXh0LWZvbnQtc2l6ZTogJGNvbnRleHQtZm9udC1zaXplICogMXB4O1xuICB9XG4gIEByZXR1cm4gJHZhbHVlIC8gJGNvbnRleHQtZm9udC1zaXplICogMWVtO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCB0b29scy91bml0LWNvbnZlcnNpb25cbi8vLy9cblxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbVxuLy8vXG4vLy8gVGhlICRnb3Z1ay1yb290LWZvbnQtc2l6ZSAoZGVmaW5lZCBpbiBzZXR0aW5ncy9fdHlwb2dyYXBoeS1yZXNwb25zaXZlLnNjc3MpXG4vLy8gbXVzdCBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoZSBmb250LXNpemUgb2YgeW91ciByb290IChodG1sKSBlbGVtZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gTGVuZ3RoIGluIHBpeGVsc1xuLy8vIEByZXR1cm4ge051bWJlcn0gTGVuZ3RoIGluIHJlbXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AZnVuY3Rpb24gZ292dWstcHgtdG8tcmVtKCR2YWx1ZSkge1xuICBAaWYgKHVuaXRsZXNzKCR2YWx1ZSkpIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAqIDFweDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlIC8gJGdvdnVrLXJvb3QtZm9udC1zaXplICogMXJlbTtcbn1cbiIsIkBpbXBvcnQgXCJjbGVhcmZpeFwiO1xuQGltcG9ydCBcImNvbG91clwiO1xuQGltcG9ydCBcImRldmljZS1waXhlbHNcIjtcbkBpbXBvcnQgXCJmb2N1c2VkXCI7XG5AaW1wb3J0IFwiZm9udC1mYWNlc1wiO1xuQGltcG9ydCBcImdyaWRcIjtcbkBpbXBvcnQgXCJsaW5rc1wiO1xuQGltcG9ydCBcIm1lZGlhLXF1ZXJpZXNcIjtcbkBpbXBvcnQgXCJzaGFwZS1hcnJvd1wiO1xuQGltcG9ydCBcInNwYWNpbmdcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwidmlzdWFsbHktaGlkZGVuXCI7XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvbGF5b3V0XG4vLy8vXG5cbi8vLyBDbGVhciBmbG9hdGVkIGNvbnRlbnQgd2l0aGluIGEgY29udGFpbmVyIHVzaW5nIGEgcHNldWRvIGVsZW1lbnRcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1jbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVyc1xuLy8vL1xuXG4vLy8gTWVkaWEgcXVlcnkgZm9yIHJldGluYSBpbWFnZXMgKGRldmljZS1waXhlbC1yYXRpbylcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmF0aW8gWzJdIC0gRGV2aWNlIHBpeGVsIHJhdGlvXG4vLy8gQGNvbnRlbnQgUGFzc2VkIGNvbnRlbnQgd2lsbCBiZSBvdXRwdXR0ZWQgd2l0aGluIHRoZSBtZWRpYSBxdWVyeVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFByb3ZpZGluZyBhIEAyeCBpbWFnZSBmb3Igc2NyZWVucyB0aGF0IHN1cHBvcnQgaXRcbi8vLyAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLnBuZ1wiKTtcbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtMngucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzaW5nIGEgY3VzdG9tIHJhdGlvXG4vLy8gICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJteS1pbWFnZS5wbmdcIik7XG4vLy9cbi8vLyAgIEBpbmNsdWRlIGdvdnVrLWRldmljZS1waXhlbC1yYXRpbyB7XG4vLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IGdvdnVrLWltYWdlLXVybChcIm15LWltYWdlLTJ4LnBuZ1wiKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgZ292dWstZGV2aWNlLXBpeGVsLXJhdGlvKDMpIHtcbi8vLyAgICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwibXktaW1hZ2UtM3gucG5nXCIpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWRldmljZS1waXhlbC1yYXRpbygkcmF0aW86IDIpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgaW5kZW50YXRpb25cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7KCRyYXRpbyAqIDk2KX1kcGkpLFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9hY2Nlc3NpYmlsaXR5XG4vLy8vXG5cbi8vLyBGb2N1c2VkIHRleHRcbi8vL1xuLy8vIFByb3ZpZGVzIGFuIG91dGxpbmUgdG8gY2xlYXJseSBpbmRpY2F0ZSB3aGVuIHRoZSB0YXJnZXQgZWxlbWVudCBpcyBmb2N1c2VkLlxuLy8vIFVzZWQgZm9yIGludGVyYWN0aXZlIHRleHQtYmFzZWQgZWxlbWVudHMuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZm9jdXNlZC10ZXh0IHtcbiAgLy8gV2hlbiBjb2xvdXJzIGFyZSBvdmVycmlkZGVuLCBmb3IgZXhhbXBsZSB3aGVuIHVzZXJzIGhhdmUgYSBkYXJrIG1vZGUsXG4gIC8vIGJhY2tncm91bmRzIGFuZCBib3gtc2hhZG93cyBkaXNhcHBlYXIsIHNvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYVxuICAvLyB0cmFuc3BhcmVudCBvdXRsaW5lIHdoaWNoIHdpbGwgYmUgc2V0IHRvIGEgdmlzaWJsZSBjb2xvdXIuXG5cbiAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgOCBkb2VzIG5vdCBzdXBwb3J0IGJveC1zaGFkb3csIHdlIHdhbnQgdG8gZm9yY2UgdGhlXG4gIC8vIHVzZXItYWdlbnQgb3V0bGluZXNcbiAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG4gIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gIGJveC1zaGFkb3c6IDAgLTJweCAkZ292dWstZm9jdXMtY29sb3VyLCAwIDRweCAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIC8vIFdoZW4gbGluayBpcyBmb2N1c3NlZCwgaGlkZSB0aGUgZGVmYXVsdCB1bmRlcmxpbmUgc2luY2UgdGhlXG4gIC8vIGJveCBzaGFkb3cgYWRkcyB0aGUgXCJ1bmRlcmxpbmVcIlxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnNcbi8vLy9cblxuQGltcG9ydCBcIi4uL3Rvb2xzL2V4cG9ydHNcIjtcblxuLy8vIEZvbnQgRmFjZSAtIEdEUyBUcmFuc3BvcnRcbi8vL1xuLy8vIE91dHB1dHMgdGhlIGZvbnQtZmFjZSBkZWNsYXJhdGlvbiBmb3IgR0RTIFRyYW5zcG9ydCBhdCB0aGUgcm9vdCBvZiB0aGUgQ1NTIGRvY3VtZW50XG4vLy8gdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstZm9udC1mYWNlLWdkcy10cmFuc3BvcnQge1xuICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHsgLy8gSW4gSUU4LCB3aGljaCBjYW5ub3QgcmVuZGVyIFdPRkYgZm9ybWF0LCB3ZSBmYWxsIGJhY2sgdG8gc3lzdGVtIGZvbnRzXG4gICAgQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2hlbHBlcnMvZm9udC1mYWNlc1wiKSB7XG4gICAgICBAYXQtcm9vdCB7XG4gICAgICAgIC8qISBDb3B5cmlnaHQgKGMpIDIwMTEgYnkgTWFyZ2FyZXQgQ2FsdmVydCAmIEhlbnJpayBLdWJlbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhlIGZvbnQgaGFzIGJlZW4gY3VzdG9taXNlZCBmb3IgZXhjbHVzaXZlIHVzZSBvbiBnb3YudWsuIFRoaXMgY3V0IGlzIG5vdCBjb21tZXJjaWFsbHkgYXZhaWxhYmxlLiAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNjc3MvY29tbWVudC1uby1sb3VkICAqL1xuICAgICAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJHRFMgVHJhbnNwb3J0XCI7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgc3JjOlxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJsaWdodC05NGEwN2UwNmExLXYyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgZ292dWstZm9udC11cmwoXCJsaWdodC1mNTkxYjEzZjdkLXYyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICAgICAgICBmb250LWRpc3BsYXk6IGZhbGxiYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiR0RTIFRyYW5zcG9ydFwiO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBzcmM6XG4gICAgICAgICAgICBnb3Z1ay1mb250LXVybChcImJvbGQtYjU0MmJlYjI3NC12Mi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgICAgIGdvdnVrLWZvbnQtdXJsKFwiYm9sZC1hZmZhOTY1NzFkLXYyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICAgICAgICBmb250LWRpc3BsYXk6IGZhbGxiYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGhlbHBlcnMvbGF5b3V0XG4vLy8vXG5cbi8vLyBHcmlkIHdpZHRoIHBlcmNlbnRhZ2Vcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gTmFtZSBvZiBncmlkIHdpZHRoIChlLmcuIHR3by10aGlyZHMpXG4vLy8gQHJldHVybiB7TnVtYmVyfSBQZXJjZW50YWdlIHdpZHRoXG4vLy8gQHRocm93IGlmIGAka2V5YCBpcyBub3QgYSB2YWxpZCBncmlkIHdpZHRoXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLWdyaWQtd2lkdGgoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGdvdnVrLWdyaWQtd2lkdGhzLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRnb3Z1ay1ncmlkLXdpZHRocywgJGtleSk7XG4gIH1cblxuICBAZXJyb3IgXCJVbmtub3duIGdyaWQgd2lkdGggYCN7JGtleX1gXCI7XG59XG5cbi8vLyBHZW5lcmF0ZSBncmlkIGNvbHVtbiBzdHlsZXNcbi8vL1xuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiB3aXRoIHN0YW5kYXJkIGd1dHRlciBiZXR3ZWVuIHRoZSBjb2x1bW5zLlxuLy8vXG4vLy8gR3JpZCB3aWR0aHMgYXJlIGRlZmluZWQgaW4gdGhlIGAkZ292dWstZ3JpZC13aWR0aHNgIG1hcC5cbi8vL1xuLy8vIEJ5IGRlZmF1bHQgdGhlIGNvbHVtbiB3aWR0aCBjaGFuZ2VzIGZyb20gMTAwJSB0byBzcGVjaWZpZWQgd2lkdGggYXQgdGhlXG4vLy8gJ3RhYmxldCcgYnJlYWtwb2ludCwgYnV0IG90aGVyIGJyZWFrcG9pbnRzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGAkYXRgXG4vLy8gcGFyYW1ldGVyLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3aWR0aCBbZnVsbF0gbmFtZSBvZiBhIGdyaWQgd2lkdGggZnJvbSAkZ292dWstZ3JpZC13aWR0aHNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGZsb2F0IFtsZWZ0XSBsZWZ0IHwgcmlnaHRcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGF0IFt0YWJsZXRdIC0gbW9iaWxlIHwgdGFibGV0IHwgZGVza3RvcCB8IGFueSBjdXN0b20gYnJlYWtwb2ludFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERlZmF1bHRcbi8vLyAgIC5nb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4odHdvLXRoaXJkcylcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDdXN0b21pc2luZyB0aGUgYnJlYWtwb2ludCB3aGVyZSB3aWR0aCBwZXJjZW50YWdlIGlzIGFwcGxpZWRcbi8vLyAgIC5nb3Z1ay1ncmlkLWNvbHVtbi1vbmUtaGFsZi1hdC1kZXNrdG9wIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4ob25lLWhhbGYsICRhdDogZGVza3RvcCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3VzdG9taXNpbmcgdGhlIGZsb2F0IGRpcmVjdGlvblxuLy8vICAgLmdvdnVrLWdyaWQtY29sdW1uLW9uZS1oYWxmLXJpZ2h0IHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4odHdvLXRoaXJkcywgJGZsb2F0OiByaWdodCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstZ3JpZC1jb2x1bW4oJHdpZHRoOiBmdWxsLCAkZmxvYXQ6IGxlZnQsICRhdDogdGFibGV0KSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBpZiAkYXQgIT0gZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgcGFkZGluZzogMCAkZ292dWstZ3V0dGVyLWhhbGY7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiAkYXQpIHtcbiAgICB3aWR0aDogZ292dWstZ3JpZC13aWR0aCgkd2lkdGgpO1xuICAgIGZsb2F0OiAkZmxvYXQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9saW5rc1xuLy8vL1xuXG4vLy8gQ29tbW9uIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBQcm92aWRlcyB0aGUgdHlwb2dyYXBoeSBhbmQgZm9jdXMgc3RhdGUsIHJlZ2FyZGxlc3Mgb2YgbGluayBzdHlsZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLWNvbW1vbiB7XG4gIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICBAaW5jbHVkZSBnb3Z1ay1saW5rLWRlY29yYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICB9XG59XG5cbi8vLyBMaW5rIGRlY29yYXRpb25cbi8vL1xuLy8vIFByb3ZpZGVzIHRoZSB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLCBpbmNsdWRpbmcgdGhpY2tuZXNzIGFuZCB1bmRlcmxpbmVcbi8vLyBvZmZzZXQuIFVzZSB0aGlzIG1peGluIG9ubHkgaWYgeW91IGNhbm5vdCB1c2UgdGhlIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4uXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuQG1peGluIGdvdnVrLWxpbmstZGVjb3JhdGlvbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gIEBpZiAoJGdvdnVrLW5ldy1saW5rLXN0eWxlcykge1xuICAgIEBpZiAoJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcykge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGdvdnVrLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICB9XG5cbiAgICBAaWYgKCRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQpIHtcbiAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIExpbmsgaG92ZXIgZGVjb3JhdGlvblxuLy8vXG4vLy8gUHJvdmlkZXMgdGhlIHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MgaW4gdGhlaXIgaG92ZXIgc3RhdGUsIGZvciB5b3UgdG8gdXNlXG4vLy8gd2l0aGluIGEgYDpob3ZlcmAgcHNldWRvLXNlbGVjdG9yLiBVc2UgdGhpcyBtaXhpbiBvbmx5IGlmIHlvdSBjYW5ub3QgdXNlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4uXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uIHtcbiAgQGlmICgkZ292dWstbmV3LWxpbmstc3R5bGVzIGFuZCAkZ292dWstbGluay1ob3Zlci11bmRlcmxpbmUtdGhpY2tuZXNzKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGdvdnVrLWxpbmstaG92ZXItdW5kZXJsaW5lLXRoaWNrbmVzcztcbiAgICAvLyBEaXNhYmxlIGluayBza2lwcGluZyBvbiB1bmRlcmxpbmVzIG9uIGhvdmVyLiBCcm93c2VycyBoYXZlbid0XG4gICAgLy8gc3RhbmRhcmRpc2VkIG9uIHRoaXMgcGFydCBvZiB0aGUgc3BlYyB5ZXQsIHNvIHNldCBib3RoIHByb3BlcnRpZXNcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTsgLy8gQ2hyb21pdW0sIEZpcmVmb3hcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXNraXA6IG5vbmU7IC8vIFNhZmFyaVxuICB9XG59XG5cbi8vLyBEZWZhdWx0IGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIGRlZmF1bHQgdW52aXNpdGVkLCB2aXNpdGVkLCBob3ZlciBhbmQgYWN0aXZlIGNvbG91cnMuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1kZWZhdWx0IHtcbiAgJjpsaW5rIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICB9XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstdmlzaXRlZC1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGdvdnVrLWxpbmstaG92ZXItY29sb3VyO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1hY3RpdmUtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGluayAgcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gRXJyb3IgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgZXJyb3IgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzIGFjdGl2ZSBvciBhXG4vLy8gdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWVycm9yO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtZXJyb3Ige1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1lcnJvci1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogc2NhbGUtY29sb3IoJGdvdnVrLWVycm9yLWNvbG91ciwgJGxpZ2h0bmVzczogLTMwJSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1lcnJvci1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAvLyBkZXNpZ25lZCB0byBtYWtlIHVudmlzaXRlZCBsaW5rICBzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzIHNvXG4gIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdWNjZXNzIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB1c2UgdGhlIHN1Y2Nlc3MgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzIGFjdGl2ZSBvciBhXG4vLy8gdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXN1Y2Nlc3M7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1zdWNjZXNzIHtcbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZ292dWstc3VjY2Vzcy1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogc2NhbGUtY29sb3IoJGdvdnVrLXN1Y2Nlc3MtY29sb3VyLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJGdvdnVrLXN1Y2Nlc3MtY29sb3VyO1xuICB9XG5cbiAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgLy8gY29udHJhc3QgaXMgc3RpbGwgYWNjZXB0YWJsZVxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3JcbiAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGluayAgcyBhIHNsaWdodGx5IGRhcmtlciBibHVlIHdoZW4gZm9jdXNzZWQsIHNvXG4gIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gIC8vIHRleHQgd2hlbiBmb2N1c3NlZC5cbiAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICY6bGluazpmb2N1cyB7XG4gICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gTXV0ZWQgbGluayBzdHlsZXNcbi8vL1xuLy8vIE1ha2VzIGxpbmtzIHVzZSB0aGUgc2Vjb25kYXJ5IHRleHQgY29sb3VyLiBUaGUgbGluayB3aWxsIGRhcmtlbiBpZiBpdCdzXG4vLy8gYWN0aXZlIG9yIGEgdXNlciBob3ZlcnMgdGhlaXIgY3Vyc29yIG92ZXIgaXQuXG4vLy9cbi8vLyBJZiB5b3UgdXNlIHRoaXMgbWl4aW4gaW4gYSBjb21wb25lbnQsIHlvdSBtdXN0IGFsc28gaW5jbHVkZSB0aGVcbi8vLyBgZ292dWstbGluay1jb21tb25gIG1peGluIHRvIGdldCB0aGUgY29ycmVjdCBmb2N1cyBhbmQgaG92ZXIgc3RhdGVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLWNvbXBvbmVudF9fbGluayB7XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW11dGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtbXV0ZWQge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIFdoZW4gZm9jdXNzZWQsIHRoZSB0ZXh0IGNvbG91ciBuZWVkcyB0byBiZSBkYXJrZXIgdG8gZW5zdXJlIHRoYXQgY29sb3VyXG4gIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yIGRlc2lnbmVkXG4gIC8vIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc28gd2UgbmVlZCB0b1xuICAvLyBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVGV4dCBsaW5rIHN0eWxlc1xuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBwcmltYXJ5IHRleHQgY29sb3VyLCBpbiBhbGwgc3RhdGVzLiBVc2UgdGhpcyBtaXhpbiBmb3Jcbi8vLyBuYXZpZ2F0aW9uIGNvbXBvbmVudHMsIHN1Y2ggYXMgYnJlYWRjcnVtYnMgb3IgdGhlIGJhY2sgbGluay5cbi8vL1xuLy8vIElmIHlvdSB1c2UgdGhpcyBtaXhpbiBpbiBhIGNvbXBvbmVudCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIHRoZVxuLy8vIGBnb3Z1ay1saW5rLWNvbW1vbmAgbWl4aW4gdG8gZ2V0IHRoZSBjb3JyZWN0IGZvY3VzIGFuZCBob3ZlciBzdGF0ZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXN0eWxlLXRleHQge1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBGb3JjZSBhIGNvbG91ciBjaGFuZ2Ugb24gaG92ZXIgdG8gd29yayBhcm91bmQgYSBidWcgaW4gU2FmYXJpXG4gIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0ODNcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoJGdvdnVrLXRleHQtY29sb3VyLCAuOTkpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gYWxwaGFnb3YvZ292dWtfdGVtcGxhdGUgaW5jbHVkZXMgYSBzcGVjaWZpYyBhOmxpbms6Zm9jdXMgc2VsZWN0b3IgZGVzaWduZWRcbiAgLy8gdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzbyB3ZSBuZWVkIHRvXG4gIC8vIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMuXG4gIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnNlIGxpbmsgc3R5bGVzXG4vLy9cbi8vLyBNYWtlcyBsaW5rcyB3aGl0ZSwgaW4gYWxsIHN0YXRlcy4gVXNlIHRoaXMgbWl4aW4gaWYgeW91J3JlIGRpc3BsYXlpbmcgbGlua3Ncbi8vLyBhZ2FpbnN0IGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtaW52ZXJzZSB7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gIH1cblxuICAvLyBGb3JjZSBhIGNvbG91ciBjaGFuZ2Ugb24gaG92ZXIgdG8gd29yayBhcm91bmQgYSBidWcgaW4gU2FmYXJpXG4gIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0ODNcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKGdvdnVrLWNvbG91cihcIndoaXRlXCIpLCAuOTkpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRnb3Z1ay1mb2N1cy10ZXh0LWNvbG91cjtcbiAgfVxuXG4gIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yIGRlc2lnbmVkXG4gIC8vIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc28gd2UgbmVlZCB0b1xuICAvLyBvdmVycmlkZSB0aGUgdGV4dCBjb2xvdXIgZm9yIHRoYXQgY29tYmluYXRpb24gb2Ygc2VsZWN0b3JzLlxuICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBEZWZhdWx0IGxpbmsgc3R5bGVzLCB3aXRob3V0IGEgdmlzaXRlZCBzdGF0ZVxuLy8vXG4vLy8gTWFrZXMgbGlua3MgdXNlIHRoZSBkZWZhdWx0IHVudmlzaXRlZCwgaG92ZXIgYW5kIGFjdGl2ZSBjb2xvdXJzLCB3aXRoIG5vXG4vLy8gZGlzdGluY3QgdmlzaXRlZCBzdGF0ZS5cbi8vL1xuLy8vIFVzZSB0aGlzIG1peGluIHdoZW4gaXQncyBub3QgaGVscGZ1bCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHZpc2l0ZWQgYW5kXG4vLy8gbm9uLXZpc2l0ZWQgbGlua3MuIEZvciBleGFtcGxlLCB3aGVuIHlvdSBsaW5rIHRvIHBhZ2VzIHdpdGhcbi8vLyBmcmVxdWVudGx5LWNoYW5naW5nIGNvbnRlbnQsIHN1Y2ggYXMgdGhlIGRhc2hib2FyZCBmb3IgYW4gYWRtaW4gaW50ZXJmYWNlLlxuLy8vXG4vLy8gSWYgeW91IHVzZSB0aGlzIG1peGluIGluIGEgY29tcG9uZW50LCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgdGhlXG4vLy8gYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9jdXMgYW5kIGhvdmVyIHN0YXRlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5nb3Z1ay1jb21wb25lbnRfX2xpbmsge1xuLy8vICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWxpbmstc3R5bGUtbm8tdmlzaXRlZC1zdGF0ZSB7XG4gICY6bGluayB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgfVxuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWFjdGl2ZS1jb2xvdXI7XG4gIH1cblxuICAvLyBXaGVuIGZvY3Vzc2VkLCB0aGUgdGV4dCBjb2xvdXIgbmVlZHMgdG8gYmUgZGFya2VyIHRvIGVuc3VyZSB0aGF0IGNvbG91clxuICAvLyBjb250cmFzdCBpcyBzdGlsbCBhY2NlcHRhYmxlXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cbn1cblxuLy8vIFJlbW92ZSB1bmRlcmxpbmUgZnJvbSBsaW5rc1xuLy8vXG4vLy8gUmVtb3ZlIHVuZGVybGluZXMgZnJvbSBsaW5rcyB1bmxlc3MgdGhlIGxpbmsgaXMgYWN0aXZlIG9yIGEgdXNlciBob3ZlcnNcbi8vLyB0aGVpciBjdXJzb3Igb3ZlciBpdC4gVGhpcyBoYXMgbm8gZWZmZWN0IGluIEludGVybmV0IEV4cGxvcmVyIDggKElFOCksXG4vLy8gYmVjYXVzZSBJRTggZG9lcyBub3Qgc3VwcG9ydCBgOm5vdGAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZ292dWstY29tcG9uZW50X19saW5rIHtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4vLy8gICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbi8vLyAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmU7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmUge1xuICAmOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vLyBJbmNsdWRlIGxpbmsgZGVzdGluYXRpb24gd2hlbiBwcmludGluZyB0aGUgcGFnZVxuLy8vXG4vLy8gSWYgdGhlIHVzZXIgcHJpbnRzIHRoZSBwYWdlLCBhZGQgdGhlIGRlc3RpbmF0aW9uIFVSTCBhZnRlciB0aGUgbGluayB0ZXh0LCBpZlxuLy8vIHRoZSBVUkwgc3RhcnRzIHdpdGggYC9gLCBgaHR0cDovL2Agb3IgYGh0dHBzOi8vYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1saW5rLXByaW50LWZyaWVuZGx5IHtcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgJltocmVmXj1cIi9cIl0sXG4gICAgJltocmVmXj1cImh0dHA6Ly9cIl0sXG4gICAgJltocmVmXj1cImh0dHBzOi8vXCJdIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICAgICAgZm9udC1zaXplOiA5MCU7XG5cbiAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMcyBtYXkgYmUgdmVyeSBsb25nLCBlbnN1cmUgdGhhdCB0aGV5IG1heSBiZSBicm9rZW5cbiAgICAgICAgLy8gYXQgYXJiaXRyYXJ5IHBvaW50cyBpZiB0aGVyZSBhcmUgbm8gb3RoZXJ3aXNlIGFjY2VwdGFibGUgYnJlYWtcbiAgICAgICAgLy8gcG9pbnRzIGluIHRoZSBsaW5lXG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9sYXlvdXRcbi8vLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBXcmFuZ2xlIHNhc3MtbXEgY29uZmlnLi4uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUGFzcyBvdXIgYnJlYWtwb2ludHMgYW5kIHN0YXRpYyBicmVha3BvaW50IGRlZmluaXRpb25zIHRocm91Z2ggdG8gc2Fzcy1tcS5cbiRtcS1icmVha3BvaW50czogaWYodmFyaWFibGUtZXhpc3RzKGdvdnVrLWJyZWFrcG9pbnRzKSwgJGdvdnVrLWJyZWFrcG9pbnRzLCAoKSk7XG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGlmKHZhcmlhYmxlLWV4aXN0cyhnb3Z1ay1pZTgtYnJlYWtwb2ludCksICRnb3Z1ay1pZTgtYnJlYWtwb2ludCwgZGVza3RvcCk7XG5cbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKTtcblxuQGlmICh2YXJpYWJsZS1leGlzdHMoZ292dWstc2hvdy1icmVha3BvaW50cykgYW5kICRnb3Z1ay1zaG93LWJyZWFrcG9pbnRzKSB7XG4gICRtcS1zaG93LWJyZWFrcG9pbnRzOiBtYXAta2V5cygkZ292dWstYnJlYWtwb2ludHMpO1xufVxuXG4vLyBXaGVuIGJ1aWxkaW5nIGEgc3R5bGVzaGVldCBmb3IgSUU4LCBzZXQgJG1xLXJlc3BvbnNpdmUgdG8gZmFsc2UgaW4gb3JkZXIgdG9cbi8vICdyYXN0ZXJpemUnIGFueSBtZWRpYSBxdWVyaWVzLlxuXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZTtcbkBpZiAodmFyaWFibGUtZXhpc3RzKGdvdnVrLWlzLWllOCkgYW5kICRnb3Z1ay1pcy1pZTgpIHtcbiAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xufVxuXG4vLyBUaGlzIGlzIGEgaG9ycmlibGUsIGhvcnJpYmxlIGhhY2sgdG8gcHJldmVudCB0aGUgJ2RldiBtb2RlJyBDU1MgdG8gZGlzcGxheVxuLy8gdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBmcm9tIGJlaW5nIGluY2x1ZGVkIG11bHRpcGxlIHRpbWVzLlxuLy9cbi8vIFdlIGNhbid0IHVzZSB0aGUgYGV4cG9ydHNgIG1peGluIGZvciB0aGlzIGJlY2F1c2UgaW1wb3J0IGRpcmVjdGl2ZXMgY2Fubm90IGJlXG4vLyB1c2VkIHdpdGhpbiBjb250cm9sIGRpcmVjdGl2ZXMg8J+YoFxuJHNhc3MtbXEtYWxyZWFkeS1pbmNsdWRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAkc2Fzcy1tcS1hbHJlYWR5LWluY2x1ZGVkIHtcbiAgJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpO1xufVxuXG5AaW1wb3J0IFwiLi4vdmVuZG9yL3Nhc3MtbXFcIjtcblxuJHNhc3MtbXEtYWxyZWFkeS1pbmNsdWRlZDogdHJ1ZTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIE1lZGlhIFF1ZXJ5XG4vLy9cbi8vLyBUaGlzIGlzIGEgY3VycmVudGx5IGEgd3JhcHBlciBmb3Igc2Fzcy1tcSAtIGFic3RyYWN0ZWQgc28gdGhhdCB3ZSBjYW5cbi8vLyByZXBsYWNlIGl0IGluIHRoZSBmdXR1cmUgaWYgd2Ugc28gY2hvb3NlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSBbZmFsc2VdIC0gT25lIG9mICRnb3Z1ay1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIFtmYWxzZV0gLSBPbmUgb2YgJGdvdnVrLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkYW5kIFtmYWxzZV0gLSBBZGRpdGlvbmFsIG1lZGlhIHF1ZXJ5IHBhcmFtZXRlcnNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgW2FsbF0gLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXG4vLy9cbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBtcSBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgWyRnb3Z1ay1icmVha3BvaW50c11cbi8vLyBAaWdub3JlIEBwYXJhbSB7U3RyaW5nfSAkc3RhdGljLWJyZWFrcG9pbnQgWyRnb3Z1ay1pZTgtYnJlYWtwb2ludF1cbi8vLyBAaWdub3JlIEBwYXJhbSB7Qm9vbGVhbn0gJHJlc3BvbnNpdmUgWyRnb3Z1ay1pcy1pZThdXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogbW9iaWxlKSB7XG4vLy8gICAgICBjb2xvcjogcmVkO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KG1vYmlsZSwgdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogZ3JlZW47XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XG4vLy8gICAgICBjb2xvcjogdGVhbDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoOTUwcHgpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLW1lZGlhLXF1ZXJ5KCRhcmdzLi4uKSB7XG4gIEBpbmNsdWRlIG1xKCRhcmdzLi4uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIG1xKCkgdjQuMC4yXG4vLyBzYXNzLW1xL3Nhc3MtbXFcblxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYW5kICRtZWRpYS10eXBlICE9ICdwcmludCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgQGVsc2Uge1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIFF1aWNrIHNvcnRcbi8vL1xuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XG4gICAgJGxlc3M6ICAoKTtcbiAgICAkZXF1YWw6ICgpO1xuICAgICRsYXJnZTogKCk7XG5cbiAgICBAaWYgbGVuZ3RoKCRsaXN0KSA+IDEge1xuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XG5cbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcbiAgICAgICAgICAgICAgICAkbGFyZ2U6IGFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXG5AZnVuY3Rpb24gX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtYXApIHtcbiAgICAkbWFwLXNvcnRlZDogKCk7XG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcbiAgICAkbWFwLXZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcblxuICAgIC8vIFJlb3JkZXIga2V5L3ZhbHVlIHBhaXJzIGJhc2VkIG9uIGtleSB2YWx1ZXNcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcbiAgICAgICAgJGtleTogbnRoKCRtYXAta2V5cywgJGluZGV4KTtcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xuXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3NoYXBlc1xuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgYW4gZXF1aWxhdGVyYWwgdHJpYW5nbGVcbi8vL1xuLy8vIE11bHRpcGx5aW5nIGhhbGYgdGhlIGxlbmd0aCBvZiB0aGUgYmFzZSBvZiBhbiBlcXVpbGF0ZXJhbCB0cmlhbmdsZSBieSB0aGVcbi8vLyBzcXVhcmUgcm9vdCBvZiB0aHJlZSBnaXZlcyB1cyBpdHMgaGVpZ2h0LiBXZSB1c2UgMS43MzIgYXMgYW4gYXBwcm94aW1hdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIExlbmd0aCBvZiB0aGUgYmFzZSBvZiB0aGUgdHJpYW5nbGVcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IENhbGN1bGF0ZWQgaGVpZ2h0IG9mIHRoZSB0cmlhbmdsZVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2dvdnVrLWVxdWlsYXRlcmFsLWhlaWdodCgkYmFzZSkge1xuICAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU6IDEuNzMyO1xuXG4gIEByZXR1cm4gKCRiYXNlIC8gMikgKiAkc3F1YXJlLXJvb3Qtb2YtdGhyZWU7XG59XG5cbi8vLyBBcnJvdyBtaXhpblxuLy8vXG4vLy8gR2VuZXJhdGUgQXJyb3dzICh0cmlhbmdsZXMpIGJ5IHVzaW5nIGEgbWl4IG9mIHRyYW5zcGFyZW50ICgxKSBhbmQgY29sb3VyZWRcbi8vLyBib3JkZXJzLiBUaGUgY29sb3VyZWQgYm9yZGVycyBpbmhlcml0IHRoZSB0ZXh0IGNvbG91ciBvZiB0aGUgZWxlbWVudCAoMikuXG4vLy9cbi8vLyBFbnN1cmUgdGhlIGFycm93IGlzIHJlbmRlcmVkIGNvcnJlY3RseSBpZiBicm93c2VyIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4gYnlcbi8vLyBwcm92aWRpbmcgYSBjbGlwIHBhdGggKDMpLiBXaXRob3V0IHRoaXMgdGhlIHRyYW5zcGFyZW50IGJvcmRlcnMgYXJlXG4vLy8gb3ZlcnJpZGRlbiB0byBiZWNvbWUgdmlzaWJsZSB3aGljaCByZXN1bHRzIGluIGEgc3F1YXJlLlxuLy8vXG4vLy8gV2UgbmVlZCBib3RoIGJlY2F1c2Ugb2xkZXIgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgY2xpcC1wYXRoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gLSBEaXJlY3Rpb24gZm9yIGFycm93OiB1cCwgcmlnaHQsIGRvd24sIGxlZnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gTGVuZ3RoIG9mIHRoZSB0cmlhbmdsZSAnYmFzZScgc2lkZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFtudWxsXSAtIEhlaWdodCBvZiB0cmlhbmdsZS4gT21pdCBmb3IgZXF1aWxhdGVyYWwuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja10gLSBDU1MgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgYXJyb3dcbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uLCAkYmFzZSwgJGhlaWdodDogbnVsbCwgJGRpc3BsYXk6IGJsb2NrKSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuXG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gMVxuXG4gICRwZXJwZW5kaWN1bGFyOiAkYmFzZSAvIDI7XG5cbiAgQGlmICgkaGVpZ2h0ID09IG51bGwpIHtcbiAgICAkaGVpZ2h0OiBfZ292dWstZXF1aWxhdGVyYWwtaGVpZ2h0KCRiYXNlKTtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09IFwidXBcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAlLCAwJSAxMDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAwJSwgMCUgMTAwJSwgMTAwJSAxMDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAwICRwZXJwZW5kaWN1bGFyICRoZWlnaHQgJHBlcnBlbmRpY3VsYXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaW5oZXJpdDsgLy8gMlxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICAtd2Via2l0LWNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgMTAwJSA1MCUsIDAlIDEwMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDUwJSwgMCUgMTAwJSk7IC8vIDNcblxuICAgIGJvcmRlci13aWR0aDogJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhciAkaGVpZ2h0O1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImRvd25cIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDUwJSAxMDAlLCAxMDAlIDAlKTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAwJSwgNTAlIDEwMCUsIDEwMCUgMCUpOyAvLyAzXG5cbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHBlcnBlbmRpY3VsYXIgMCAkcGVycGVuZGljdWxhcjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHBvbHlnb24oMCUgNTAlLCAxMDAlIDEwMCUsIDEwMCUgMCUpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDUwJSwgMTAwJSAxMDAlLCAxMDAlIDAlKTsgLy8gM1xuXG4gICAgYm9yZGVyLXdpZHRoOiAkcGVycGVuZGljdWxhciAkaGVpZ2h0ICRwZXJwZW5kaWN1bGFyIDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcIkludmFsaWQgYXJyb3cgZGlyZWN0aW9uOiBleHBlY3RlZCBgdXBgLCBgcmlnaHRgLCBgZG93bmAgb3IgYGxlZnRgLCBnb3QgYCN7JGRpcmVjdGlvbn1gXCI7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgaGVscGVycy9zcGFjaW5nXG4vLy8vXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGluZGVudGF0aW9uXG5cbi8vLyBTaW5nbGUgcG9pbnQgc3BhY2luZ1xuLy8vXG4vLy8gUmV0dXJucyBtZWFzdXJlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGFjaW5nIHBvaW50IHJlcXVlc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZy1wb2ludCAtIFBvaW50IG9uIHRoZSBzcGFjaW5nIHNjYWxlIChzZXQgaW4gYHNldHRpbmdzL19zcGFjaW5nLnNjY3NgKVxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gU3BhY2luZyBNZWFzdXJlbWVudCBlZy4gMTBweFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDUpO1xuLy8vICAgICB0b3A6IGdvdnVrLXNwYWNpbmcoMikgIWltcG9ydGFudDsgLy8gaWYgYCFpbXBvcnRhbnRgIGlzIHJlcXVpcmVkXG4vLy8gICB9XG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQGZ1bmN0aW9uIGdvdnVrLXNwYWNpbmcoJHNwYWNpbmctcG9pbnQpIHtcblxuICAkYWN0dWFsLWlucHV0LXR5cGU6IHR5cGUtb2YoJHNwYWNpbmctcG9pbnQpO1xuICBAaWYgJGFjdHVhbC1pbnB1dC10eXBlICE9IFwibnVtYmVyXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiXG4gICAgKyBcIiN7JGFjdHVhbC1pbnB1dC10eXBlfS5cIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGdvdnVrLXNwYWNpbmctcG9pbnRzLCAkc3BhY2luZy1wb2ludCkge1xuICAgIEBlcnJvciBcIlVua25vd24gc3BhY2luZyB2YXJpYWJsZSBgI3skc3BhY2luZy1wb2ludH1gLiBNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBhIHBvaW50IGZyb20gdGhlIHNwYWNpbmcgc2NhbGUgaW4gYF9zZXR0aW5ncy9zcGFjaW5nLnNjc3NgLlwiO1xuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRnb3Z1ay1zcGFjaW5nLXBvaW50cywgJHNwYWNpbmctcG9pbnQpO1xufVxuXG4vLy8gUmVzcG9uc2l2ZSBzcGFjaW5nXG4vLy9cbi8vLyBBZGRzIHJlc3BvbnNpdmUgc3BhY2luZyAoZWl0aGVyIHBhZGRpbmcgb3IgbWFyZ2luLCBkZXBlbmRpbmcgb24gYCRwcm9wZXJ0eWApXG4vLy8gYnkgZmV0Y2hpbmcgYSAnc3BhY2luZyBtYXAnIGZyb20gdGhlIHJlc3BvbnNpdmUgc3BhY2luZyBzY2FsZSwgd2hpY2ggZGVmaW5lc1xuLy8vIGRpZmZlcmVudCBzcGFjaW5nIHZhbHVlcyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBUbyBnZW5lcmF0ZSByZXNwb25zaXZlIHNwYWNpbmcsIHVzZSAnZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4nIG9yXG4vLy8gJ2dvdnVrLXJlc3BvbnNpdmUtcGFkZGluZycgbWl4aW5zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCAtIFBvaW50IG9uIHRoZSByZXNwb25zaXZlIHNwYWNpbmdcbi8vLyAgIHNjYWxlLCBjb3JyZXNwb25kcyB0byBhIG1hcCBvZiBicmVha3BvaW50cyBhbmQgc3BhY2luZyB2YWx1ZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5IC0gUHJvcGVydHkgdG8gYWRkIHNwYWNpbmcgdG8gKGUuZy4gJ21hcmdpbicpXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2FsbF0gLSBEaXJlY3Rpb24gdG8gYWRkIHNwYWNpbmcgdG9cbi8vLyAgIChgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIGBsZWZ0YCwgYGFsbGApXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhZGp1c3RtZW50IFtmYWxzZV0gLSBPZmZzZXQgdG8gYWRqdXN0IHNwYWNpbmcgYnlcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZygkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCAkcHJvcGVydHksICRkaXJlY3Rpb246IFwiYWxsXCIsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYWRqdXN0bWVudDogZmFsc2UpIHtcblxuICAkYWN0dWFsLWlucHV0LXR5cGU6IHR5cGUtb2YoJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCk7XG4gIEBpZiAkYWN0dWFsLWlucHV0LXR5cGUgIT0gXCJudW1iZXJcIiB7XG4gICAgQGVycm9yIFwiRXhwZWN0ZWQgYSBudW1iZXIgKGludGVnZXIpLCBidXQgZ290IGEgXCIgKyBcIiN7JGFjdHVhbC1pbnB1dC10eXBlfS5cIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZSwgJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCkge1xuICAgIEBlcnJvciBcIlVua25vd24gc3BhY2luZyBwb2ludCBgI3skcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50fWAuIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgcG9pbnQgZnJvbSB0aGUgXCJcbiAgICArIFwicmVzcG9uc2l2ZSBzcGFjaW5nIHNjYWxlIGluIGBfc2V0dGluZ3Mvc3BhY2luZy5zY3NzYC5cIjtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm4gdmFsdWUgZnJvbSBgX3NldHRpbmdzL3NwYWNpbmcuc2Nzc2AgaXMgYSBtYXAuXG4gICRzY2FsZS1tYXA6IG1hcC1nZXQoJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZSwgJHJlc3BvbnNpdmUtc3BhY2luZy1wb2ludCk7XG4gICRhY3R1YWwtbWFwLXR5cGU6IHR5cGUtb2YoJHNjYWxlLW1hcCk7XG4gIEBpZiAkYWN0dWFsLW1hcC10eXBlICE9IFwibWFwXCIge1xuICAgIEBlcnJvciBcIkV4cGVjdGVkIGEgbnVtYmVyIChpbnRlZ2VyKSwgYnV0IGdvdCBhIFwiXG4gICAgKyBcIiN7JGFjdHVhbC1tYXAtdHlwZX0uIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgbWFwIHRvIHNldCB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nIGluIGBfc2V0dGluZ3Mvc3BhY2luZy5zY3NzYClcIjtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAZWFjaCAkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnQtdmFsdWUgaW4gJHNjYWxlLW1hcCB7XG5cbiAgICBAaWYgKCRhZGp1c3RtZW50KSB7XG4gICAgICAkYnJlYWtwb2ludC12YWx1ZTogJGJyZWFrcG9pbnQtdmFsdWUgKyAkYWRqdXN0bWVudDtcbiAgICB9XG5cbiAgICAvLyBUaGUgJ251bGwnIGJyZWFrcG9pbnQgaXMgZm9yIG1vYmlsZS5cbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG5cbiAgICAgIEBpZiAkZGlyZWN0aW9uID09IGFsbCB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJGJyZWFrcG9pbnQtdmFsdWUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgI3skcHJvcGVydHl9LSN7JGRpcmVjdGlvbn06ICRicmVha3BvaW50LXZhbHVlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206ICRicmVha3BvaW50KSB7XG4gICAgICAgIEBpZiAkZGlyZWN0aW9uID09IGFsbCB7XG4gICAgICAgICAgI3skcHJvcGVydHl9OiAkYnJlYWtwb2ludC12YWx1ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgI3skcHJvcGVydHl9LSN7JGRpcmVjdGlvbn06ICRicmVha3BvaW50LXZhbHVlIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZXNwb25zaXZlIG1hcmdpblxuLy8vXG4vLy8gQWRkcyByZXNwb25zaXZlIG1hcmdpbiBieSBmZXRjaGluZyBhICdzcGFjaW5nIG1hcCcgZnJvbSB0aGUgcmVzcG9uc2l2ZVxuLy8vIHNwYWNpbmcgc2NhbGUsIHdoaWNoIGRlZmluZXMgZGlmZmVyZW50IHNwYWNpbmcgdmFsdWVzIGF0IGRpZmZlcmVudFxuLy8vIGJyZWFrcG9pbnRzLiBXcmFwcGVyIGZvciB0aGUgYF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdgIG1peGluLlxuLy8vXG4vLy8gQHNlZSB7bWl4aW59IF9nb3Z1ay1yZXNwb25zaXZlLXNwYWNpbmdcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50IC0gUG9pbnQgb24gdGhlIHJlc3BvbnNpdmUgc3BhY2luZ1xuLy8vIHNjYWxlLCBjb3JyZXNwb25kcyB0byBhIG1hcCBvZiBicmVha3BvaW50cyBhbmQgc3BhY2luZyB2YWx1ZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbYWxsXSAtIERpcmVjdGlvbiB0byBhZGQgc3BhY2luZyB0b1xuLy8vICAgKGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgYGxlZnRgLCBgYWxsYClcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBhcyBgIWltcG9ydGFudGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJGFkanVzdG1lbnQgW2ZhbHNlXSAtIE9mZnNldCB0byBhZGp1c3Qgc3BhY2luZyBieVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJsZWZ0XCIsICRhZGp1c3RtZW50OiAxcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQsICRkaXJlY3Rpb246IFwiYWxsXCIsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYWRqdXN0bWVudDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZygkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCBcIm1hcmdpblwiLCAkZGlyZWN0aW9uLCAkaW1wb3J0YW50LCAkYWRqdXN0bWVudCk7XG59XG5cbi8vLyBSZXNwb25zaXZlIHBhZGRpbmdcbi8vL1xuLy8vIEFkZHMgcmVzcG9uc2l2ZSBwYWRkaW5nIGJ5IGZldGNoaW5nIGEgJ3NwYWNpbmcgbWFwJyBmcm9tIHRoZSByZXNwb25zaXZlXG4vLy8gc3BhY2luZyBzY2FsZSwgd2hpY2ggZGVmaW5lcyBkaWZmZXJlbnQgc3BhY2luZyB2YWx1ZXMgYXQgZGlmZmVyZW50XG4vLy8gYnJlYWtwb2ludHMuIFdyYXBwZXIgZm9yIHRoZSBgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZ2AgbWl4aW4uXG4vLy9cbi8vLyBAc2VlIHttaXhpbn0gX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZ1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQgLSBQb2ludCBvbiB0aGUgcmVzcG9uc2l2ZSBzcGFjaW5nXG4vLy8gICBzY2FsZSwgY29ycmVzcG9uZHMgdG8gYSBtYXAgb2YgYnJlYWtwb2ludHMgYW5kIHNwYWNpbmcgdmFsdWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gW2FsbF0gLSBEaXJlY3Rpb24gdG8gYWRkIHNwYWNpbmcgdG9cbi8vLyAgIChgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIGBsZWZ0YCwgYGFsbGApXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgYXMgYCFpbXBvcnRhbnRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhZGp1c3RtZW50IFtmYWxzZV0gLSBPZmZzZXQgdG8gYWRqdXN0IHNwYWNpbmdcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg2LCBcImxlZnRcIiwgJGFkanVzdG1lbnQ6IDFweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKCRyZXNwb25zaXZlLXNwYWNpbmctcG9pbnQsICRkaXJlY3Rpb246IFwiYWxsXCIsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYWRqdXN0bWVudDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2dvdnVrLXJlc3BvbnNpdmUtc3BhY2luZygkcmVzcG9uc2l2ZS1zcGFjaW5nLXBvaW50LCBcInBhZGRpbmdcIiwgJGRpcmVjdGlvbiwgJGltcG9ydGFudCwgJGFkanVzdG1lbnQpO1xufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL3R5cG9ncmFwaHlcbi8vLy9cblxuQGltcG9ydCBcIi4uL3Rvb2xzL3B4LXRvLXJlbVwiO1xuXG4vLy8gJ0NvbW1vbiB0eXBvZ3JhcGh5JyBoZWxwZXJcbi8vL1xuLy8vIFNldHMgdGhlIGZvbnQgZmFtaWx5IGFuZCBhc3NvY2lhdGVkIHByb3BlcnRpZXMsIHN1Y2ggYXMgZm9udCBzbW9vdGhpbmcuIEFsc29cbi8vLyBvdmVycmlkZXMgdGhlIGZvbnQgZm9yIHByaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkZm9udC1mYW1pbHkgWyRnb3Z1ay1mb250LWZhbWlseV0gRm9udCBmYW1pbHkgdG8gdXNlXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uKCRmb250LWZhbWlseTogJGdvdnVrLWZvbnQtZmFtaWx5KSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8vIElmIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBkZWZhdWx0IEdEUyBUcmFuc3BvcnQgZm9udCB3ZSBuZWVkIHRvIGluY2x1ZGVcbiAgLy8gdGhlIGZvbnQtZmFjZSBkZWNsYXJhdGlvbnMuXG4gIC8vXG4gIC8vIFdlIGRvIG5vdCBuZWVkIHRvIGluY2x1ZGUgdGhlIEdEUyBUcmFuc3BvcnQgZm9udC1mYWNlIGRlY2xhcmF0aW9ucyBpZlxuICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpcyBiZWluZyB1c2VkIHNpbmNlIG50YSB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgYnlcbiAgLy8gZGVmYXVsdC5cbiAgQGlmICgkZ292dWstaW5jbHVkZS1kZWZhdWx0LWZvbnQtZmFjZSkge1xuICAgIEBpbmNsdWRlIF9nb3Z1ay1mb250LWZhY2UtZ2RzLXRyYW5zcG9ydDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIGZvbnQtZmFtaWx5OiAkZ292dWstZm9udC1mYW1pbHktcHJpbnQ7XG4gIH1cbn1cblxuLy8vIFRleHQgY29sb3VyIGhlbHBlclxuLy8vXG4vLy8gU2V0cyB0aGUgdGV4dCBjb2xvdXIsIGluY2x1ZGluZyBhIHN1aXRhYmxlIG92ZXJyaWRlIGZvciBwcmludC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10ZXh0LWNvbG91ciB7XG4gIGNvbG9yOiAkZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJG1lZGlhLXR5cGU6IHByaW50KSB7XG4gICAgY29sb3I6ICRnb3Z1ay1wcmludC10ZXh0LWNvbG91cjtcbiAgfVxufVxuXG4vLy8gUmVndWxhciBmb250IHdlaWdodCBoZWxwZXJcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGltcG9ydGFudCBbZmFsc2VdIC0gV2hldGhlciB0byBtYXJrIGRlY2xhcmF0aW9ucyBhc1xuLy8vICAgYCFpbXBvcnRhbnRgLiBHZW5lcmFsbHkgVXNlZCB0byBjcmVhdGUgb3ZlcnJpZGUgY2xhc3Nlcy5cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtcmVndWxhcigkaW1wb3J0YW50OiBmYWxzZSkge1xuICBmb250LXdlaWdodDogJGdvdnVrLWZvbnQtd2VpZ2h0LXJlZ3VsYXIgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG59XG5cbi8vLyBCb2xkIGZvbnQgd2VpZ2h0IGhlbHBlclxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIHRvIG1hcmsgZGVjbGFyYXRpb25zIGFzXG4vLy8gICBgIWltcG9ydGFudGAuIEdlbmVyYWxseSBVc2VkIHRvIGNyZWF0ZSBvdmVycmlkZSBjbGFzc2VzLlxuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkKCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIGZvbnQtd2VpZ2h0OiAkZ292dWstZm9udC13ZWlnaHQtYm9sZCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIENvbnZlcnQgbGluZS1oZWlnaHRzIHNwZWNpZmllZCBpbiBwaXhlbHMgaW50byBhIHJlbGF0aXZlIHZhbHVlLCB1bmxlc3Ncbi8vLyB0aGV5IGFyZSBhbHJlYWR5IHVuaXQtbGVzcyAoYW5kIHRodXMgYWxyZWFkeSB0cmVhdGVkIGFzIHJlbGF0aXZlIHZhbHVlcylcbi8vLyBvciB0aGUgdW5pdHMgZG8gbm90IG1hdGNoIHRoZSB1bml0cyB1c2VkIGZvciB0aGUgZm9udCBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsaW5lLWhlaWdodCBMaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIEZvbnQgc2l6ZVxuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGxpbmUgaGVpZ2h0IGFzIGVpdGhlciBhIHJlbGF0aXZlIHZhbHVlIG9yIHVubW9kaWZpZWRcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2dvdnVrLWxpbmUtaGVpZ2h0KCRsaW5lLWhlaWdodCwgJGZvbnQtc2l6ZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRsaW5lLWhlaWdodCkgYW5kIHVuaXQoJGxpbmUtaGVpZ2h0KSA9PSB1bml0KCRmb250LXNpemUpIHtcbiAgICAkbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAvICRmb250LXNpemU7XG4gIH1cblxuICBAcmV0dXJuICRsaW5lLWhlaWdodDtcbn1cblxuLy8vIFJlc3BvbnNpdmUgdHlwb2dyYXBoeSBoZWxwZXJcbi8vL1xuLy8vIFRha2VzIGEgJ2ZvbnQgbWFwJyBhcyBhbiBhcmd1bWVudCBhbmQgdXNlcyBpdCB0byBjcmVhdGUgZm9udC1zaXplIGFuZFxuLy8vIGxpbmUtaGVpZ2h0IGRlY2xhcmF0aW9ucyBmb3IgZGlmZmVyZW50IGJyZWFrcG9pbnRzLCBhbmQgZm9yIHByaW50LlxuLy8vXG4vLy8gRXhhbXBsZSBmb250IG1hcDpcbi8vL1xuLy8vICRteS1mb250LW1hcDogKFxuLy8vICAgbnVsbDogKFxuLy8vICAgICBmb250LXNpemU6IDE2cHgsXG4vLy8gICAgIGxpbmUtaGVpZ2h0OiAyMHB4XG4vLy8gICApLFxuLy8vICAgdGFibGV0OiAoXG4vLy8gICAgIGZvbnQtc2l6ZTogMTlweCxcbi8vLyAgICAgbGluZS1oZWlnaHQ6IDI1cHhcbi8vLyAgICksXG4vLy8gICBwcmludDogKFxuLy8vICAgICBmb250LXNpemU6IDE0cHQsXG4vLy8gICAgIGxpbmUtaGVpZ2h0OiAxLjE1XG4vLy8gICApXG4vLy8gKTtcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkZm9udC1tYXAgLSBGb250IG1hcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3ZlcnJpZGUtbGluZS1oZWlnaHQgW2ZhbHNlXSAtIE5vbiByZXNwb25zaXZlIGN1c3RvbSBsaW5lXG4vLy8gICBoZWlnaHQuIE9taXQgdG8gdXNlIHRoZSBsaW5lIGhlaWdodCBmcm9tIHRoZSBmb250IG1hcC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbWFyayBkZWNsYXJhdGlvbnMgYXNcbi8vLyAgIGAhaW1wb3J0YW50YC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG5cbkBtaXhpbiBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemUsICRvdmVycmlkZS1saW5lLWhlaWdodDogZmFsc2UsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkZ292dWstdHlwb2dyYXBoeS1zY2FsZSwgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJVbmtub3duIGZvbnQgc2l6ZSBgI3skc2l6ZX1gIC0gZXhwZWN0ZWQgYSBwb2ludCBmcm9tIHRoZSB0eXBvZ3JhcGh5IHNjYWxlLlwiO1xuICB9XG5cbiAgJGZvbnQtbWFwOiBtYXAtZ2V0KCRnb3Z1ay10eXBvZ3JhcGh5LXNjYWxlLCAkc2l6ZSk7XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRicmVha3BvaW50LW1hcCBpbiAkZm9udC1tYXAge1xuICAgICRmb250LXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnQtbWFwLCBcImZvbnQtc2l6ZVwiKTtcbiAgICAkZm9udC1zaXplLXJlbTogZ292dWstcHgtdG8tcmVtKCRmb250LXNpemUpO1xuXG4gICAgJGxpbmUtaGVpZ2h0OiBfZ292dWstbGluZS1oZWlnaHQoXG4gICAgICAkbGluZS1oZWlnaHQ6IGlmKFxuICAgICAgICAkb3ZlcnJpZGUtbGluZS1oZWlnaHQsXG4gICAgICAgICRvdmVycmlkZS1saW5lLWhlaWdodCxcbiAgICAgICAgbWFwLWdldCgkYnJlYWtwb2ludC1tYXAsIFwibGluZS1oZWlnaHRcIilcbiAgICAgICksXG4gICAgICAkZm9udC1zaXplOiAkZm9udC1zaXplXG4gICAgKTtcblxuICAgIC8vIE1hcmsgcnVsZXMgYXMgIWltcG9ydGFudCBpZiAkaW1wb3J0YW50IGlzIHRydWUgLSB0aGlzIHdpbGwgcmVzdWx0IGluXG4gICAgLy8gdGhlc2UgdmFyaWFibGVzIGJlY29taW5nIHN0cmluZ3MsIHNvIHRoaXMgbmVlZHMgdG8gaGFwcGVuICphZnRlciogdGhleVxuICAgIC8vIGFyZSB1c2VkIGluIGNhbGN1bGF0aW9uc1xuICAgICRmb250LXNpemU6ICRmb250LXNpemUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgJGZvbnQtc2l6ZS1yZW06ICRmb250LXNpemUtcmVtIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgQGlmICRicmVha3BvaW50ID09IG51bGwge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtcmVtO1xuICAgICAgfVxuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwicHJpbnRcIiB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206ICRicmVha3BvaW50KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1yZW07XG4gICAgICAgIH1cbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEZvbnQgaGVscGVyXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBTaXplIG9mIHRoZSBmb250IGFzIGl0IHdvdWxkIGFwcGVhciBvbiBkZXNrdG9wIC1cbi8vLyAgIHVzZXMgdGhlIHJlc3BvbnNpdmUgZm9udCBzaXplIG1hcFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd2VpZ2h0IFtyZWd1bGFyXSAtIFdlaWdodDogYGJvbGRgIG9yIGByZWd1bGFyYFxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHRhYnVsYXIgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gdXNlIHRhYnVsYXIgbnVtYmVycyBvciBub3Rcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxpbmUtaGVpZ2h0IFtmYWxzZV0gLSBMaW5lLWhlaWdodCwgaWYgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLWZvbnQoJHNpemUsICR3ZWlnaHQ6IHJlZ3VsYXIsICR0YWJ1bGFyOiBmYWxzZSwgJGxpbmUtaGVpZ2h0OiBmYWxzZSkge1xuICBAaWYgJHRhYnVsYXIge1xuICAgIC8vIGlmIGdvdnVrLWZvbnQtZmFtaWx5LXRhYnVsYXIgaXMgc2V0IHVzZSAkZ292dWstZm9udC1mYW1pbHktdGFidWxhclxuICAgIEBpZiAkZ292dWstZm9udC1mYW1pbHktdGFidWxhciB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbigkZm9udC1mYW1pbHk6ICRnb3Z1ay1mb250LWZhbWlseS10YWJ1bGFyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiIDE7XG4gICAgICAgICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCIgMTtcblxuICAgICAgQHN1cHBvcnRzIChmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zKSB7XG4gICAgICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LWNvbW1vbjtcbiAgfVxuXG4gIEBpZiAkd2VpZ2h0ID09IHJlZ3VsYXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LXJlZ3VsYXI7XG4gIH0gQGVsc2UgaWYgJHdlaWdodCA9PSBib2xkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICB9XG5cbiAgQGlmICRzaXplIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXJlc3BvbnNpdmUoJHNpemUsICRvdmVycmlkZS1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0KTtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBoZWxwZXJzL2FjY2Vzc2liaWxpdHlcbi8vLy9cblxuLy8vIEhpZGUgYW4gZWxlbWVudCB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyc1xuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbi8vLyAgIC0gSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHksIEpvbmF0aGFuIFNub29rLCBGZWJydWFyeSAyMDExXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi85ZjEzNjk1ZDIxZmY5MmM1NWM3OGRmYTlmMTZiYjAyYTFiNmU5MTFmL3NyYy9jc3MvbWFpbi5jc3MjTDEyMS1MMTU4XG4vLy8gICAtIGg1YnAvaHRtbDUtYm9pbGVycGxhdGUgLSBUaGFua3MhXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW3RydWVdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXZpc3VhbGx5LWhpZGRlbigkaW1wb3J0YW50OiB0cnVlKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICB3aWR0aDogMXB4IGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBoZWlnaHQ6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgLy8gSWYgbWFyZ2luIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIGl0IGNhbiBjYXVzZSB0ZXh0IHRvIGJlIGFubm91bmNlZCBpblxuICAvLyB0aGUgd3Jvbmcgb3JkZXIgaW4gVm9pY2VPdmVyIGZvciBPU1hcbiAgbWFyZ2luOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBwYWRkaW5nOiAwIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gIG92ZXJmbG93OiBoaWRkZW4gaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICBib3JkZXI6IDAgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgLy8gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAgLy8gY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVycyB3aGlsc3Rcbi8vLyBhbGxvd2luZyB0aGUgZWxlbWVudCB0byBiZSBmb2N1c2VkIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQgKGUuZy5cbi8vLyBmb3IgdGhlIHNraXAgbGluaylcbi8vL1xuLy8vIFRoaXMgaXMgc2xpZ2h0bHkgbGVzcyBvcGluaW9uYXRlZCBhYm91dCBib3JkZXJzIGFuZCBwYWRkaW5nIHRvIG1ha2UgaXRcbi8vLyBlYXNpZXIgdG8gc3R5bGUgdGhlIGZvY3Vzc2VkIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbXBvcnRhbnQgW3RydWVdIC0gV2hldGhlciB0byBtYXJrIGFzIGAhaW1wb3J0YW50YFxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcblxuQG1peGluIGdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGUoJGltcG9ydGFudDogdHJ1ZSkge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgd2lkdGg6IDFweCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgaGVpZ2h0OiAxcHggaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIC8vIElmIG1hcmdpbiBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSBpdCBjYW4gY2F1c2UgdGV4dCB0byBiZSBhbm5vdW5jZWQgaW5cbiAgLy8gdGhlIHdyb25nIG9yZGVyIGluIFZvaWNlT3ZlciBmb3IgT1NYXG4gIG1hcmdpbjogMCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICBvdmVyZmxvdzogaGlkZGVuIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICBjbGlwOiByZWN0KDAgMCAwIDApIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSkgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgLy8gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAgLy8gY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gIC8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYyBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcblxuICAgIHdpZHRoOiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIGhlaWdodDogYXV0byBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICBtYXJnaW46IGluaGVyaXQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG5cbiAgICBvdmVyZmxvdzogdmlzaWJsZSBpZigkaW1wb3J0YW50LCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICBjbGlwOiBhdXRvIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBub25lIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBub25lIGlmKCRpbXBvcnRhbnQsICFpbXBvcnRhbnQsIG51bGwpO1xuXG4gICAgd2hpdGUtc3BhY2U6IGluaGVyaXQgaWYoJGltcG9ydGFudCwgIWltcG9ydGFudCwgbnVsbCk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJsaW5rc1wiO1xuQGltcG9ydCBcImxpc3RzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwic2VjdGlvbi1icmVha1wiO1xuQGltcG9ydCBcImdsb2JhbC1zdHlsZXNcIjtcbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS9saW5rc1wiKSB7XG5cbiAgJWdvdnVrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZGVmYXVsdDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXByaW50LWZyaWVuZGx5O1xuICB9XG5cbiAgLmdvdnVrLWxpbmsge1xuICAgIEBleHRlbmQgJWdvdnVrLWxpbms7XG4gIH1cblxuICAvLyBWYXJpYW50IGNsYXNzZXMgc2hvdWxkIGFsd2F5cyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIC5nb3Z1ay1saW5rXG4gIC8vIGNsYXNzLCBzbyB3ZSBkbyBub3QgbmVlZCB0aGUgY29tbW9uIGxpbmsgc3R5bGVzIGFzIHRoZXkgd2lsbCBiZSBpbmhlcml0ZWQuXG5cbiAgLmdvdnVrLWxpbmstLW11dGVkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLW11dGVkO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLXRleHQtY29sb3VyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gIH1cblxuICAuZ292dWstbGluay0taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuICB9XG5cbiAgLmdvdnVrLWxpbmstLW5vLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby11bmRlcmxpbmU7XG4gIH1cblxuICAuZ292dWstbGluay0tbm8tdmlzaXRlZC1zdGF0ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvbGlzdHNcIikge1xuXG4gICVnb3Z1ay1saXN0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgLy8gQWRkIGEgdG9wIG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gICAgJWdvdnVrLWxpc3Qge1xuICAgICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gIH1cblxuICAlZ292dWstbGlzdCA+IGxpIHtcbiAgICAvLyBMaXN0cyB3aXRob3V0IG51bWJlcnMgb3IgYnVsbGV0cyBzaG91bGQgYWx3YXlzIGhhdmUgZXh0cmEgc3BhY2UgYmV0d2VlblxuICAgIC8vIGxpc3QgaXRlbXMuIExpc3RzIHdpdGggbnVtYmVycyBvciBidWxsZXRzIG9ubHkgaGF2ZSB0aGlzIGV4dHJhIHNwYWNlIG9uXG4gICAgLy8gdGFibGV0IGFuZCBhYm92ZVxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAuZ292dWstbGlzdCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdDtcbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1idWxsZXQge1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIH1cblxuICAlZ292dWstbGlzdC0tbnVtYmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgJWdvdnVrLWxpc3QtLWJ1bGxldCA+IGxpLFxuICAlZ292dWstbGlzdC0tbnVtYmVyID4gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gICVnb3Z1ay1saXN0LS1zcGFjZWQgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWxpc3QtLWJ1bGxldCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tYnVsbGV0O1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLW51bWJlciB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tbnVtYmVyO1xuICB9XG5cbiAgLmdvdnVrLWxpc3QtLXNwYWNlZCB7XG4gICAgQGV4dGVuZCAlZ292dWstbGlzdC0tc3BhY2VkO1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBjb3JlIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvcmUvdGVtcGxhdGVcIikge1xuXG4gIC8vIEFwcGxpZWQgdG8gdGhlIDxodG1sPiBlbGVtZW50XG4gIC5nb3Z1ay10ZW1wbGF0ZSB7XG4gICAgLy8gU2V0IHRoZSBvdmVyYWxsIHBhZ2UgYmFja2dyb3VuZCBjb2xvdXIgdG8gdGhlIHNhbWUgY29sb3VyIGFzIHVzZWQgYnkgdGhlXG4gICAgLy8gZm9vdGVyIHRvIGdpdmUgdGhlIGlsbHVzaW9uIG9mIGEgbG9uZyBmb290ZXIuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWNhbnZhcy1iYWNrZ3JvdW5kLWNvbG91cjtcblxuICAgIC8vIFByZXZlbnQgYXV0b21hdGljIHRleHQgc2l6aW5nLCBhcyB3ZSBhbHJlYWR5IGNhdGVyIGZvciBzbWFsbCBkZXZpY2VzIGFuZFxuICAgIC8vIHdvdWxkIGxpa2UgdGhlIGJyb3dzZXIgdG8gc3RheSBvbiAxMDAlIHRleHQgem9vbSBieSBkZWZhdWx0LlxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuXG4gICAgLy8gRm9yY2UgdGhlIHNjcm9sbGJhciB0byBhbHdheXMgZGlzcGxheSBpbiBJRSwgdG8gcHJldmVudCBob3Jpem9udGFsIHBhZ2VcbiAgICAvLyBqdW1wcyBhcyBjb250ZW50IGhlaWdodCBjaGFuZ2VzIChlLmcuIGF1dG9jb21wbGV0ZSByZXN1bHRzIG9wZW4pLlxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB9XG4gIH1cblxuICAvLyBBcHBsaWVkIHRvIHRoZSA8Ym9keT4gZWxlbWVudFxuICAuZ292dWstdGVtcGxhdGVfX2JvZHkge1xuICAgIC8vIFRoZSBkZWZhdWx0IG1hcmdpbnMgc2V0IGJ5IHVzZXItYWdlbnRzIGFyZSBub3QgcmVxdWlyZWQgc2luY2Ugd2UgaGF2ZSBvdXJcbiAgICAvLyBvd24gY29udGFpbmVycy5cbiAgICBtYXJnaW46IDA7XG4gICAgLy8gU2V0IHRoZSBvdmVyYWxsIGJvZHkgb2YgdGhlIHBhZ2UgYmFjayB0byB0aGUgdHlwaWNhbCBiYWNrZ3JvdW5kIGNvbG91ci5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYm9keS1iYWNrZ3JvdW5kLWNvbG91cjtcbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgY29yZSBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb3JlL3R5cG9ncmFwaHlcIikge1xuXG4gIC8vIEhlYWRpbmdzXG5cbiAgJWdvdnVrLWhlYWRpbmcteGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDQ4LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkaW5nLXhsIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1oZWFkaW5nLXhsO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1sO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctbSB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctbSB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1tO1xuICB9XG5cbiAgJWdvdnVrLWhlYWRpbmctcyB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRpbmctcyB7XG4gICAgQGV4dGVuZCAlZ292dWstaGVhZGluZy1zO1xuICB9XG5cbiAgLy8gQ2FwdGlvbnMgdG8gYmUgdXNlZCBpbnNpZGUgaGVhZGluZ3NcblxuICAuZ292dWstY2FwdGlvbi14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjcpO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstY2FwdGlvbi1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1jYXB0aW9uLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG4gIH1cblxuICAvLyBCb2R5IChwYXJhZ3JhcGhzKVxuXG4gICVnb3Z1ay1ib2R5LWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstYm9keS1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LWw7XG4gIH1cblxuICAlZ292dWstYm9keS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHktbSB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1tO1xuICB9XG5cbiAgJWdvdnVrLWJvZHktcyB7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1ib2R5LXMge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktcztcbiAgfVxuXG4gICVnb3Z1ay1ib2R5LXhzIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNCk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLWJvZHkteHMge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHkteHM7XG4gIH1cblxuICAvLyBVc2FnZSBhbGlhc2VzXG5cbiAgLy8gVXNpbmcgZXh0ZW5kIHRvIGFsaWFzIG1lYW5zIHdlIGFsc28gaW5oZXJpdCBhbnkgY29udGV4dHVhbCBhZGp1c3RtZW50cyB0aGF0XG4gIC8vIHJlZmVyIHRvIHRoZSAnb3JpZ2luYWwnIGNsYXNzIG5hbWVcblxuICAuZ292dWstYm9keS1sZWFkIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1ib2R5LWw7XG4gIH1cblxuICAuZ292dWstYm9keSB7XG4gICAgQGV4dGVuZCAlZ292dWstYm9keS1tO1xuICB9XG5cbiAgLy8gQ29udGV4dHVhbCBhZGp1c3RtZW50c1xuICAvLyBBZGQgdG9wIHBhZGRpbmcgdG8gaGVhZGluZ3MgdGhhdCBhcHBlYXIgZGlyZWN0bHkgYWZ0ZXIgcGFyYWdyYXBocy5cblxuICAlZ292dWstYm9keS1sICArICVnb3Z1ay1oZWFkaW5nLWwge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICB9XG5cbiAgJWdvdnVrLWJvZHktbSAgKyAlZ292dWstaGVhZGluZy1sLFxuICAlZ292dWstYm9keS1zICArICVnb3Z1ay1oZWFkaW5nLWwsXG4gICVnb3Z1ay1saXN0ICsgJWdvdnVrLWhlYWRpbmctbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1wYWRkaW5nKDQsIFwidG9wXCIpO1xuICB9XG5cbiAgJWdvdnVrLWJvZHktbSArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1ib2R5LXMgKyAlZ292dWstaGVhZGluZy1tLFxuICAlZ292dWstbGlzdCArICVnb3Z1ay1oZWFkaW5nLW0sXG4gICVnb3Z1ay1ib2R5LW0gKyAlZ292dWstaGVhZGluZy1zLFxuICAlZ292dWstYm9keS1zICsgJWdvdnVrLWhlYWRpbmctcyxcbiAgJWdvdnVrLWxpc3QgKyAlZ292dWstaGVhZGluZy1zIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygxKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgY29yZSBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb3JlL3NlY3Rpb24tYnJlYWtcIikge1xuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgLy8gZml4IGRvdWJsZS13aWR0aCBzZWN0aW9uIGJyZWFrIGFuZCBmb3JjZWQgdmlzaWJsZSBzZWN0aW9uIGJyZWFrXG4gICAgLy8gd2hlbiBjb21iaW5lZCB3aXRoIHN0eWxlcyBmcm9tIGFscGhhZ292L2VsZW1lbnRzXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a19lbGVtZW50cykge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zZWN0aW9uLWJyZWFrIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrO1xuICB9XG5cbiAgLy8gU2l6ZXNcblxuICAlZ292dWstc2VjdGlvbi1icmVhay0teGwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXhsIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS14bDtcbiAgfVxuXG4gICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcInRvcFwiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zZWN0aW9uLWJyZWFrLS1sIHtcbiAgICBAZXh0ZW5kICVnb3Z1ay1zZWN0aW9uLWJyZWFrLS1sO1xuICB9XG5cbiAgJWdvdnVrLXNlY3Rpb24tYnJlYWstLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwidG9wXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDQsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLW0ge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLW07XG4gIH1cblxuICAvLyBWaXNpYmxlIHZhcmlhbnRcblxuICAlZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGUge1xuICAgIEBleHRlbmQgJWdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGU7XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIGNvcmUgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW1wb3J0IFwibGlua3NcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5cbkBtaXhpbiBnb3Z1ay1nbG9iYWwtc3R5bGVzIHtcbiAgYSB7XG4gICAgQGV4dGVuZCAlZ292dWstbGluaztcbiAgfVxuXG4gIHAge1xuICAgIEBleHRlbmQgJWdvdnVrLWJvZHktbTtcbiAgfVxufVxuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29yZS9nbG9iYWwtc3R5bGVzXCIpIHtcblxuICBAaWYgJGdvdnVrLWdsb2JhbC1zdHlsZXMgPT0gdHJ1ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZ2xvYmFsLXN0eWxlcztcbiAgfVxufVxuIiwiQGltcG9ydCBcImJ1dHRvbi1ncm91cFwiO1xuQGltcG9ydCBcImZvcm0tZ3JvdXBcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5AaW1wb3J0IFwibWFpbi13cmFwcGVyXCI7XG5AaW1wb3J0IFwid2lkdGgtY29udGFpbmVyXCI7XG4iLCJAaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb2JqZWN0cy9idXR0b24tZ3JvdXBcIikge1xuICAvLyBCdXR0b24gZ3JvdXBzIGNhbiBiZSB1c2VkIHRvIGdyb3VwIGJ1dHRvbnMgYW5kIGxpbmtzIHRvZ2V0aGVyIGFzIGEgZ3JvdXAuXG4gIC8vXG4gIC8vIFdpdGhpbiBhIGJ1dHRvbiBncm91cDpcbiAgLy9cbiAgLy8gLSBsaW5rcyBhcmUgc3R5bGVkIHRvIGxpbmUgdXAgdmlzdWFsbHkgd2l0aCB0aGUgYnV0dG9ucywgaW5jbHVkaW5nIGJlaW5nXG4gIC8vICAgY2VudHJlLWFsaWduZWQgb24gbW9iaWxlXG4gIC8vIC0gc3BhY2luZyBiZXR3ZWVuIHRoZSBidXR0b25zIGFuZCBsaW5rcyBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHksIGluY2x1ZGluZ1xuICAvLyAgIHdoZW4gdGhleSB3cmFwIGFjcm9zcyBtdWx0aXBsZSBsaW5lc1xuICAuZ292dWstYnV0dG9uLWdyb3VwIHtcbiAgICAkaG9yaXpvbnRhbC1nYXA6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgJHZlcnRpY2FsLWdhcDogZ292dWstc3BhY2luZygzKTtcblxuICAgIC8vIFRoZXNlIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIGJ1dHRvbiBjb21wb25lbnQncyBzdHlsZXNcbiAgICAkYnV0dG9uLXBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgJGJ1dHRvbi1zaGFkb3ctc2l6ZTogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG5cbiAgICAkbGluay1zcGFjaW5nOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIiwgJGFkanVzdG1lbnQ6ICR2ZXJ0aWNhbC1nYXAgKiAtMSk7XG5cbiAgICAvLyBGbGV4Ym94IGlzIHVzZWQgdG8gY2VudGVyLWFsaWduIGxpbmtzIG9uIG1vYmlsZSwgYWxpZ24gZXZlcnl0aGluZyBhbG9uZ1xuICAgIC8vIHRoZSBiYXNlbGluZSBvbiB0YWJsZXQgYW5kIGFib3ZlLCBhbmQgdG8gcmVtb3ZlcyBleHRyYSB3aGl0ZXNwYWNlIHRoYXRcbiAgICAvLyB3ZSdkIGdldCBiZXR3ZWVuIHRoZSBidXR0b25zIGFuZCBsaW5rcyBiZWNhdXNlIHRoZXkncmUgaW5saW5lLWJsb2Nrcy5cbiAgICAvL1xuICAgIC8vIElkZWFsbHkgd2UnZCB1c2UgYGdhcGAgd2l0aCBmbGV4Ym94IHJhdGhlciB0aGFuIGhhdmluZyB0byBkbyBpdCBhbGwgd2l0aFxuICAgIC8vIG1hcmdpbnMsIGJ1dCB1bmZvcnR1bmF0ZWx5IHRoZSBzdXBwb3J0IGlzbid0IHRoZXJlICh5ZXQpIGFuZCBAc3VwcG9ydHNcbiAgICAvLyBkb2Vzbid0IHBsYXkgbmljZWx5IHdpdGggaXRcbiAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzM1NTkpXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvLyBHaXZlIGxpbmtzIHdpdGhpbiB0aGUgYnV0dG9uIGdyb3VwIHRoZSBzYW1lIGZvbnQtc2l6ZSBhbmQgbGluZS1oZWlnaHRcbiAgICAvLyBhcyBidXR0b25zLlxuICAgIC8vXG4gICAgLy8gQmVjYXVzZSB3ZSB3YW50IHRoZSBmb2N1cyBzdGF0ZSB0byBiZSB0aWdodCBhcm91bmQgdGhlIGxpbmsgdGV4dCwgd2UgdXNlXG4gICAgLy8gbWFyZ2lucyB3aGVyZSB0aGUgYnV0dG9ucyB3b3VsZCB1c2UgcGFkZGluZy5cbiAgICAuZ292dWstbGluayB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxOXB4KTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIC8vIFByZXZlbnQgbGlua3Mgb3ZlcmZsb3dpbmcgdGhlaXIgY29udGFpbmVyIGluIElFMTAvMTEgYmVjYXVzZSBvZiBidWdcbiAgICAgIC8vIHdpdGggYWxpZ24taXRlbXM6IGNlbnRlclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogJGxpbmstc3BhY2luZztcbiAgICAgIG1hcmdpbi1ib3R0b206ICRsaW5rLXNwYWNpbmcgKyAkdmVydGljYWwtZ2FwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIFJlZHVjZSB0aGUgYm90dG9tIG1hcmdpbiB0byB0aGUgc2l6ZSBvZiB0aGUgdmVydGljYWwgZ2FwIChhY2NvbW1vZGF0aW5nXG4gICAgLy8gdGhlIGJ1dHRvbiBzaGFkb3cpIOKAkyB0aGUgJ2xvc3QnIG1hcmdpbiBpcyBtb3ZlZCB0byB0aGUgYnV0dG9uLWdyb3VwLlxuICAgIC5nb3Z1ay1idXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHZlcnRpY2FsLWdhcCArICRidXR0b24tc2hhZG93LXNpemU7XG4gICAgfVxuXG4gICAgLy8gT24gdGFibGV0IGFuZCBhYm92ZSwgd2UgYWxzbyBpbnRyb2R1Y2UgYSAnY29sdW1uIGdhcCcgYmV0d2VlbiB0aGVcbiAgICAvLyBidXR0b25zIGFuZCBsaW5rcyBpbiBlYWNoIHJvdyBhbmQgbGVmdCBhbGlnbiBsaW5rc1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC8vIENhbmNlbCBvdXQgdGhlIGNvbHVtbiBnYXAgZm9yIHRoZSBsYXN0IGl0ZW0gaW4gZWFjaCByb3dcbiAgICAgIG1hcmdpbi1yaWdodDogKCRob3Jpem9udGFsLWdhcCAqIC0xKTtcblxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcblxuICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZTtcbiAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXG4gICAgICAuZ292dWstYnV0dG9uLFxuICAgICAgLmdvdnVrLWxpbmsge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRob3Jpem9udGFsLWdhcDtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLWxpbmsge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL29iamVjdHMvZm9ybS1ncm91cFwiKSB7XG4gIC5nb3Z1ay1mb3JtLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIC5nb3Z1ay1mb3JtLWdyb3VwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBSZW1vdmUgbWFyZ2luIGZyb20gbGFzdCBpdGVtIGluIG5lc3RlZCBncm91cHNcbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9ybS1ncm91cC0tZXJyb3Ige1xuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZygzKTtcbiAgICBib3JkZXItbGVmdDogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWdyb3VwLWVycm9yIHNvbGlkICRnb3Z1ay1lcnJvci1jb2xvdXI7XG5cbiAgICAuZ292dWstZm9ybS1ncm91cCB7XG4gICAgICAvLyBSZXNldCBlcnJvciBzdHlsZXMgaW4gbmVzdGVkIGZvcm0gZ3JvdXBzIHRoYXQgbWlnaHQgaGF2ZSBlcnJvciBjbGFzc1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL2dyaWRcIikge1xuICAuZ292dWstZ3JpZC1yb3cge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIG1hcmdpbi1yaWdodDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgICBtYXJnaW4tbGVmdDogLSAoJGdvdnVrLWd1dHRlci1oYWxmKTtcbiAgfVxuXG4gIEBlYWNoICR3aWR0aCBpbiBtYXAta2V5cygkZ292dWstZ3JpZC13aWR0aHMpIHtcbiAgICAuZ292dWstZ3JpZC1jb2x1bW4tI3skd2lkdGh9IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWdyaWQtY29sdW1uKCR3aWR0aCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2UgKm11c3QqIGJlIGRlZmluZWQgaW4gYSBzZXBhcmF0ZSBsb29wIGFzIHRoZXkgaGF2ZSB0aGUgc2FtZVxuICAvLyBzcGVjaWZpY2l0eSBhcyB0aGUgbm9uLWJyZWFrcG9pbnQgc3BlY2lmaWMgY2xhc3Nlcywgc28gbmVlZCB0byBhcHBlYXIgYWZ0ZXJcbiAgLy8gdGhlbSBpbiB0aGUgb3V0cHV0dGVkIENTU1xuICBAZWFjaCAkd2lkdGggaW4gbWFwLWtleXMoJGdvdnVrLWdyaWQtd2lkdGhzKSB7XG4gICAgLmdvdnVrLWdyaWQtY29sdW1uLSN7JHdpZHRofS1mcm9tLWRlc2t0b3Age1xuICAgICAgQGluY2x1ZGUgZ292dWstZ3JpZC1jb2x1bW4oJHdpZHRoLCAkYXQ6IGRlc2t0b3ApO1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8vL1xuLy8vIEBncm91cCBvYmplY3RzL2xheW91dFxuLy8vL1xuXG4vLyBFeGFtcGxlIHVzYWdlIHdpdGggQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3M6XG4vLyA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4vLyAgIDwhLS0gQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3MgYXJlIHBsYWNlZCBpbiBoZXJlLiAtLT5cbi8vICAgPGRpdiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlclwiPlxuLy8gICAgICAgPCEtLSBXcmFwcGVyIGZvciB0aGUgbWFpbiBjb250ZW50IG9mIHlvdXIgcGFnZSB3aGljaCBhcHBsaWVzIHBhZGRpbmdcbi8vICAgICAgICAgICAgdG8gdGhlIHRvcCAvIGJvdHRvbSAtLT5cbi8vICAgPC9kaXY+XG4vLyA8L2Rpdj5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlIHdpdGhvdXQgQnJlYWRjcnVtYnMsIHBoYXNlIGJhbm5lcnMsIGJhY2sgbGlua3M6XG4vLyA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4vLyAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1tYWluLXdyYXBwZXIgZ292dWstbWFpbi13cmFwcGVyLS1sXCI+XG4vLyAgICAgICA8IS0tIFdyYXBwZXIgZm9yIHRoZSBtYWluIGNvbnRlbnQgb2YgeW91ciBwYWdlIHdoaWNoIGFwcGxpZXMgcGFkZGluZ1xuLy8gICAgICAgICAgICB0byB0aGUgdG9wIC8gYm90dG9tIC0tPlxuLy8gICA8L2Rpdj5cbi8vIDwvZGl2PlxuXG4vLy8gQGRlcHJlY2F0ZWQgUmVwbGFjZSB0aGlzIG1peGluIHdpdGggbW9yZSBkaXJlY3QgcmVmZXJlbmNlcyB0byB0aGUgW3NwYWNpbmdcbi8vLyBtaXhpbnNdKGh0dHBzOi8vZGVzaWduLXN5c3RlbS5zZXJ2aWNlLmdvdi51ay9zdHlsZXMvc3BhY2luZy8jc3BhY2luZy1vbi1jdXN0b20tY29tcG9uZW50cykuXG5AbWl4aW4gZ292dWstbWFpbi13cmFwcGVyIHtcbiAgLy8gSW4gSUUxMSB0aGUgYG1haW5gIGVsZW1lbnQgY2FuIGJlIHVzZWQsIGJ1dCBpcyBub3QgcmVjb2duaXplZCAg4oCTXG4gIC8vIG1lYW5pbmcgaXQncyBub3QgZGVmaW5lZCBpbiBJRSdzIGRlZmF1bHQgc3R5bGUgc2hlZXQsXG4gIC8vIHNvIGl0IHVzZXMgQ1NTIGluaXRpYWwgdmFsdWUsIHdoaWNoIGlzIGlubGluZS5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZyg0KTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgLy8gVGhpcyBzcGFjaW5nIGlzIG1hbnVhbGx5IGFkanVzdGVkIHRvIHJlcGxpY2F0ZSB0aGUgbWFyZ2luIG9mXG4gICAgLy8gZ292dWstaGVhZGluZy14bCAoNTBweCkgbWludXMgdGhlIHNwYWNpbmcgb2YgYmFjayBsaW5rIGFuZFxuICAgIC8vIGJyZWFkY3J1bWJzICgxMHB4KVxuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDcpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDcpO1xuICB9XG59XG5cbi8vLyBVc2UgZ292dWstbWFpbi13cmFwcGVyLS1sIHdoZW4geW91IHBhZ2UgZG9lcyBub3QgaGF2ZSBCcmVhZGNydW1icywgcGhhc2Vcbi8vLyBiYW5uZXJzIG9yIGJhY2sgbGlua3MuXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCBSZXBsYWNlIHRoaXMgbWl4aW4gd2l0aCBtb3JlIGRpcmVjdCByZWZlcmVuY2VzIHRvIHRoZSBbc3BhY2luZ1xuLy8vIG1peGluc10oaHR0cHM6Ly9kZXNpZ24tc3lzdGVtLnNlcnZpY2UuZ292LnVrL3N0eWxlcy9zcGFjaW5nLyNzcGFjaW5nLW9uLWN1c3RvbS1jb21wb25lbnRzKS5cbkBtaXhpbiBnb3Z1ay1tYWluLXdyYXBwZXItLWwge1xuICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoOCwgXCJ0b3BcIik7XG59XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL21haW4td3JhcHBlclwiKSB7XG4gIC5nb3Z1ay1tYWluLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1haW4td3JhcHBlcjtcbiAgfVxuXG4gIC8vIFVzaW5nIHRoZSBgLmdvdnVrLW1haW4td3JhcHBlci0tYXV0by1zcGFjaW5nYCBtb2RpZmllciBzaG91bGQgYXBwbHkgdGhlXG4gIC8vIGNvcnJlY3Qgc3BhY2luZyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZSBhcmUgYW55IGVsZW1lbnRzXG4gIC8vIChzdWNoIHRoZSBiYWNrIGxpbmssIGJyZWFkY3J1bWJzIG9yIHBoYXNlIGJhbm5lciBjb21wb25lbnRzKSBiZWZvcmUgdGhlXG4gIC8vIGAuZ292dWstbWFpbi13cmFwcGVyYCBpbiB0aGUgYGdvdnVrLXdpZHRoLWNvbnRhaW5lcmAuXG4gIC8vXG4gIC8vIElmIHlvdSBuZWVkIHRvIGNvbnRyb2wgdGhlIHNwYWNpbmcgbWFudWFsbHksIHVzZSB0aGVcbiAgLy8gYGdvdnVrLW1haW4td3JhcHBlci0tbGAgbW9kaWZpZXIgaW5zdGVhZC5cbiAgLmdvdnVrLW1haW4td3JhcHBlci0tYXV0by1zcGFjaW5nOmZpcnN0LWNoaWxkLFxuICAuZ292dWstbWFpbi13cmFwcGVyLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tYWluLXdyYXBwZXItLWw7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2JqZWN0cy9sYXlvdXRcbi8vLy9cblxuLy8vIFdpZHRoIGNvbnRhaW5lciBtaXhpblxuLy8vXG4vLy8gVXNlZCB0byBjcmVhdGUgcGFnZSB3aWR0aCBhbmQgY3VzdG9tIHdpZHRoIGNvbnRhaW5lciBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3aWR0aCBbJGdvdnVrLXBhZ2Utd2lkdGhdIC0gV2lkdGggaW4gcGl4ZWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRpbmcgYSAxMjAwcHggd2lkZSBjb250YWluZXIgY2xhc3Ncbi8vLyAgLmFwcC13aWR0aC1jb250YWluZXItLXdpZGUge1xuLy8vICAgIEBpbmNsdWRlIGdvdnVrLXdpZHRoLWNvbnRhaW5lcigxMjAwcHgpO1xuLy8vICB9XG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuXG5AbWl4aW4gZ292dWstd2lkdGgtY29udGFpbmVyKCR3aWR0aDogJGdvdnVrLXBhZ2Utd2lkdGgpIHtcblxuICAvLyBCeSBkZWZhdWx0LCBsaW1pdCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciB0byB0aGUgcGFnZSB3aWR0aFxuICBtYXgtd2lkdGg6ICR3aWR0aDtcblxuICAvLyBPbiBtb2JpbGUsIGFkZCBoYWxmIHdpZHRoIGd1dHRlcnNcbiAgbWFyZ2luLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gIG1hcmdpbi1sZWZ0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG5cbiAgLy8gUmVzcGVjdCAnZGlzcGxheSBjdXRvdXQnIHNhZmUgYXJlYSAoYXZvaWRzIG5vdGNoZXMgYW5kIHJvdW5kZWQgY29ybmVycylcbiAgQHN1cHBvcnRzIChtYXJnaW46IHVucXVvdGUoXCJtYXgoY2FsYygwcHgpKVwiKSkge1xuICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiBjYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAkZ3V0dGVyLXNhZmUtYXJlYS1sZWZ0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcblxuICAgIC8vIFVzZSBtYXgoKSB0byBwaWNrIGxhcmdlc3QgbWFyZ2luLCBkZWZhdWx0IG9yIHdpdGggc2FmZSBhcmVhXG4gICAgLy8gRXNjYXBlZCBkdWUgdG8gU2FzcyBtYXgoKSB2cy4gQ1NTIG5hdGl2ZSBtYXgoKVxuICAgIG1hcmdpbi1yaWdodDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXItaGFsZn0sICN7JGd1dHRlci1zYWZlLWFyZWEtcmlnaHR9KVwiKTtcbiAgICBtYXJnaW4tbGVmdDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXItaGFsZn0sICN7JGd1dHRlci1zYWZlLWFyZWEtbGVmdH0pXCIpO1xuICB9XG5cbiAgLy8gT24gdGFibGV0LCBhZGQgZnVsbCB3aWR0aCBndXR0ZXJzXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXI7XG4gICAgbWFyZ2luLWxlZnQ6ICRnb3Z1ay1ndXR0ZXI7XG5cbiAgICAvLyBSZXNwZWN0ICdkaXNwbGF5IGN1dG91dCcgc2FmZSBhcmVhIChhdm9pZHMgbm90Y2hlcyBhbmQgcm91bmRlZCBjb3JuZXJzKVxuICAgIEBzdXBwb3J0cyAobWFyZ2luOiB1bnF1b3RlKFwibWF4KGNhbGMoMHB4KSlcIikpIHtcbiAgICAgICRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0OiAtd2Via2l0LWNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtcmlnaHQ6IGNhbGMoI3skZ292dWstZ3V0dGVyLWhhbGZ9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogLXdlYmtpdC1jYWxjKCN7JGdvdnVrLWd1dHRlci1oYWxmfSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgJGd1dHRlci1zYWZlLWFyZWEtbGVmdDogY2FsYygjeyRnb3Z1ay1ndXR0ZXItaGFsZn0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcblxuICAgICAgLy8gVXNlIG1heCgpIHRvIHBpY2sgbGFyZ2VzdCBtYXJnaW4sIGRlZmF1bHQgb3Igd2l0aCBzYWZlIGFyZWFcbiAgICAgIC8vIEVzY2FwZWQgZHVlIHRvIFNhc3MgbWF4KCkgdnMuIENTUyBuYXRpdmUgbWF4KClcbiAgICAgIG1hcmdpbi1yaWdodDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXJ9LCAjeyRndXR0ZXItc2FmZS1hcmVhLXJpZ2h0fSlcIik7XG4gICAgICBtYXJnaW4tbGVmdDogdW5xdW90ZShcIm1heCgjeyRnb3Z1ay1ndXR0ZXJ9LCAjeyRndXR0ZXItc2FmZS1hcmVhLWxlZnR9KVwiKTtcbiAgICB9XG4gIH1cblxuICAvLyBBcyBzb29uIGFzIHRoZSB2aWV3cG9ydCBpcyBncmVhdGVyIHRoYW4gdGhlIHdpZHRoIG9mIHRoZSBwYWdlIHBsdXMgdGhlXG4gIC8vIGd1dHRlcnMsIGp1c3QgY2VudHJlIHRoZSBjb250ZW50IGluc3RlYWQgb2YgYWRkaW5nIGd1dHRlcnMuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRhbmQ6IFwiKG1pbi13aWR0aDogI3soJHdpZHRoICsgJGdvdnVrLWd1dHRlciAqIDIpfSlcIikge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIC8vIFNpbmNlIGEgc2FmZSBhcmVhIG1heSBoYXZlIHByZXZpb3VzbHkgYmVlbiBzZXQgYWJvdmUsXG4gICAgLy8gd2UgbmVlZCB0byBkdXBsaWNhdGUgdGhpcyBtYXJnaW4gdGhhdCBjZW50ZXJzIHRoZSBwYWdlLlxuICAgIEBzdXBwb3J0cyAobWFyZ2luOiB1bnF1b3RlKFwibWF4KGNhbGMoMHB4KSlcIikpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICAvLyBTaW5jZSBtZWRpYSBxdWVyaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIElFOCxcbiAgICAvLyB3ZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGlzIG1hcmdpbiB0aGF0IGNlbnRlcnMgdGhlIHBhZ2UuXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vYmplY3RzL3dpZHRoLWNvbnRhaW5lclwiKSB7XG4gIC5nb3Z1ay13aWR0aC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLXdpZHRoLWNvbnRhaW5lcjtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGltcG9ydCBcImFjY29yZGlvbi9pbmRleFwiO1xuQGltcG9ydCBcImJhY2stbGluay9pbmRleFwiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJzL2luZGV4XCI7XG5AaW1wb3J0IFwiYnV0dG9uL2luZGV4XCI7XG5AaW1wb3J0IFwiY2hlY2tib3hlcy9pbmRleFwiO1xuQGltcG9ydCBcImNoYXJhY3Rlci1jb3VudC9pbmRleFwiO1xuQGltcG9ydCBcImNvb2tpZS1iYW5uZXIvaW5kZXhcIjtcbkBpbXBvcnQgXCJzdW1tYXJ5LWxpc3QvaW5kZXhcIjtcbkBpbXBvcnQgXCJkYXRlLWlucHV0L2luZGV4XCI7XG5AaW1wb3J0IFwiZGV0YWlscy9pbmRleFwiO1xuQGltcG9ydCBcImVycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCJlcnJvci1zdW1tYXJ5L2luZGV4XCI7XG5AaW1wb3J0IFwiZmllbGRzZXQvaW5kZXhcIjtcbkBpbXBvcnQgXCJmaWxlLXVwbG9hZC9pbmRleFwiO1xuQGltcG9ydCBcImZvb3Rlci9pbmRleFwiO1xuQGltcG9ydCBcImhpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCJoZWFkZXIvaW5kZXhcIjtcbkBpbXBvcnQgXCJpbnB1dC9pbmRleFwiO1xuQGltcG9ydCBcImluc2V0LXRleHQvaW5kZXhcIjtcbkBpbXBvcnQgXCJsYWJlbC9pbmRleFwiO1xuQGltcG9ydCBcIm5vdGlmaWNhdGlvbi1iYW5uZXIvaW5kZXhcIjtcbkBpbXBvcnQgXCJwYW5lbC9pbmRleFwiO1xuQGltcG9ydCBcInBoYXNlLWJhbm5lci9pbmRleFwiO1xuQGltcG9ydCBcInRhYnMvaW5kZXhcIjtcbkBpbXBvcnQgXCJ0YWcvaW5kZXhcIjtcbkBpbXBvcnQgXCJyYWRpb3MvaW5kZXhcIjtcbkBpbXBvcnQgXCJzZWxlY3QvaW5kZXhcIjtcbkBpbXBvcnQgXCJza2lwLWxpbmsvaW5kZXhcIjtcbkBpbXBvcnQgXCJ0YWJsZS9pbmRleFwiO1xuQGltcG9ydCBcInRleHRhcmVhL2luZGV4XCI7XG5AaW1wb3J0IFwid2FybmluZy10ZXh0L2luZGV4XCI7XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2FjY29yZGlvblwiKSB7XG4gIC5nb3Z1ay1hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLy8gQm9yZGVycyBiZXR3ZWVuIGFjY29yZGlvbiBzZWN0aW9uc1xuICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24taGVhZGluZyB7XG4gICAgLy8gT3ZlcnJpZGUgYnJvd3NlciBkZWZhdWx0cyB0byBlbnN1cmUgY29uc2lzdGVudCBlbGVtZW50IGhlaWdodFxuICAgIC8vIEZvbnQgc2l6ZSBpcyBzZXQgaW4gLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b25cbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KDI0KTtcblxuICAgIG1hcmdpbi10b3A6IDA7IC8vIE92ZXJyaWRlIGJyb3dzZXIgZGVmYXVsdFxuICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGJyb3dzZXIgZGVmYXVsdFxuICB9XG5cbiAgLy8gQnV0dG9ucyB3aXRoaW4gdGhlIHNlY3Rpb25zIGRvbuKAmXQgbmVlZCBkZWZhdWx0IHN0eWxpbmdcbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tc3VtbWFyeSB7XG4gICAgbWFyZ2luLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3R0b20gbWFyZ2luIGZyb20gdGhlIGxhc3QgaXRlbSBpbnNpZGUgdGhlIGNvbnRlbnRcbiAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBKYXZhU2NyaXB0IGVuYWJsZWRcbiAgLmpzLWVuYWJsZWQge1xuICAgIC5nb3Z1ay1hY2NvcmRpb24ge1xuICAgICAgLy8gQm9yZGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIHdob2xlIGFjY29yZGlvblxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJvcmRlcnMgYmV0d2VlbiBhY2NvcmRpb24gc2VjdGlvbnNcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIC8vIEhpZGUgdGhlIGJvZHkgb2YgY29sbGFwc2VkIHNlY3Rpb25zXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoMywgXCJ0b3BcIik7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoMywgXCJib3R0b21cIik7XG4gICAgfVxuXG4gICAgLy8gU2hvdyB0aGUgYm9keSBvZiBleHBhbmRlZCBzZWN0aW9uc1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tLWV4cGFuZGVkIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHN0eWxlZCB0byBsb29rIGxpa2UgYSBsaW5rIG5vdCBhIGJ1dHRvblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX29wZW4tYWxsIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xuXG4gICAgICAvLyBSZW1vdmUgZGVmYXVsdCBidXR0b24gZm9jdXMgb3V0bGluZSBpbiBGaXJlZm94XG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlY3Rpb24gaGVhZGVycyBoYXZlIGEgcG9pbnRlciBjdXJzb3IgYXMgYW4gYWRkaXRpb25hbCBhZmZvcmRhbmNlXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi1oZWFkZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gU2FmZSBhcmVhIG9uIHRoZSByaWdodCB0byBhdm9pZCBjbGFzaGluZyB3aXRoIGljb25cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLy8gQnV0dG9ucyB3aXRoaW4gdGhlIGhlYWRlcnMgZG9u4oCZdCBuZWVkIGRlZmF1bHQgc3R5bGluZ1xuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBmb2N1cyBvdXRsaW5lIGluIEZpcmVmb3hcbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXh0ZW5kIHRoZSB0b3VjaCBhcmVhIG9mIHRoZSBidXR0b24gdG8gc3BhbiB0aGUgc2VjdGlvbiBoZWFkZXJcbiAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX3NlY3Rpb24tYnV0dG9uOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgLy8gVGhpcyBuZWVkcyB0byBjb21lIGFmdGVyIHRoZSB0ZXh0LWRlY29yYXRpb24gcHJvcGVydHkgb3RoZXJ3aXNlXG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb24sIGFzIGEgc2hvcnRoYW5kIHByb3BlcnR5LCByZXNldHMgaXQgdG8gYXV0b1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0O1xuICAgIH1cblxuICAgIC8vIEZvciBkZXZpY2VzIHRoYXQgY2FuJ3QgaG92ZXIgc3VjaCBhcyB0b3VjaCBkZXZpY2VzLFxuICAgIC8vIHJlbW92ZSBob3ZlciBzdGF0ZSBhcyBpdCBjYW4gYmUgc3R1Y2sgaW4gdGhhdCBzdGF0ZSAoaU9TKS5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAuZ292dWstYWNjb3JkaW9uX19zZWN0aW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19jb250cm9scyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAvLyBEaXNwbGF5IGFuIGljb24gdG8gdGhlIHJpZ2h0IG9mIGVhY2ggaGVhZGVyIHRvIGluZGljYXRlIG9wZW4vY2xvc2VkIHN0YXR1cyxcbiAgICAvLyBhbmQgYXMgYW4gYWRkaXRpb25hbCBhZmZvcmRhbmNlLlxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMTVweDtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyLFxuICAgIC5nb3Z1ay1hY2NvcmRpb25fX2ljb246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGhlaWdodDogMjUlO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuZ292dWstYWNjb3JkaW9uX19pY29uOmFmdGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBiYXIgc2hvdWxkIGJlIGhpZGRlbiB3aGVuIHNlY3Rpb24gaXMgb3BlbiwgdG8gZGlzcGxheSBhICctJyBpY29uXG4gICAgLmdvdnVrLWFjY29yZGlvbl9fc2VjdGlvbi0tZXhwYW5kZWQgLmdvdnVrLWFjY29yZGlvbl9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JhY2stbGlua1wiKSB7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIChleGNsdWRpbmcgYm9yZGVyKVxuICAkY2hldnJvbi1zaXplOiA3cHg7XG5cbiAgLy8gU2l6ZSBvZiBjaGV2cm9uIGJvcmRlclxuICAkY2hldnJvbi1ib3JkZXItd2lkdGg6IDFweDtcblxuICAvLyBDb2xvdXIgb2YgY2hldnJvblxuICAkY2hldnJvbi1ib3JkZXItY29sb3VyOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuXG4gIC5nb3Z1ay1iYWNrLWxpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktcmVzcG9uc2l2ZSgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBBbGxvdyBzcGFjZSBmb3IgdGhlIGFycm93XG4gICAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICB9XG5cbiAgLy8gUHJlcGVuZCBsZWZ0IHBvaW50aW5nIGNoZXZyb25cbiAgLmdvdnVrLWJhY2stbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAvLyBWZXJ0aWNhbGx5IGFsaWduIHdpdGggdGhlIHBhcmVudCBlbGVtZW50XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gQmVnaW4gYWRqdXN0bWVudHMgZm9yIGZvbnQgYmFzZWxpbmUgb2Zmc2V0XG4gICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgbGVmdDogM3B4O1xuXG4gICAgd2lkdGg6ICRjaGV2cm9uLXNpemU7XG4gICAgaGVpZ2h0OiAkY2hldnJvbi1zaXplO1xuXG4gICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG5cbiAgICBib3JkZXI6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGNoZXZyb24tYm9yZGVyLXdpZHRoICRjaGV2cm9uLWJvcmRlci13aWR0aCAwIDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGEgbGVzcyB0aGFuIHNpZ24gZm9yIElFOFxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBjb250ZW50OiBcIlxcMDAzY1wiOyAvLyBMZXNzIHRoYW4gc2lnbiAoPClcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRjaGV2cm9uLWJvcmRlci1jb2xvdXI7XG5cbiAgICAgIC8vIElFOCBkb2Vzbid0IHNlZW0gdG8gbGlrZSByZW5kZXJpbmcgcHNldWRvLWVsZW1lbnRzIHVzaW5nIEBmb250LWZhY2VzLFxuICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmZvY3VzOmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gIH1cblxuICAuZ292dWstYmFjay1saW5rOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xNHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTE0cHg7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXRcbiAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgIC5nb3Z1ay1iYWNrLWxpbms6YmVmb3JlIHtcbiAgICAgICRvZmZzZXQ6IDFweDtcblxuICAgICAgdG9wOiAkb2Zmc2V0ICogLTE7XG4gICAgICBib3R0b206ICRvZmZzZXQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2JyZWFkY3J1bWJzXCIpIHtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gKGV4Y2x1ZGluZyBib3JkZXIpXG4gICRjaGV2cm9uLXNpemU6IDdweDtcblxuICAvLyBTaXplIG9mIGNoZXZyb24gYm9yZGVyXG4gICRjaGV2cm9uLWJvcmRlci13aWR0aDogMXB4O1xuXG4gIC8vIENvbG91ciBvZiBjaGV2cm9uXG4gICRjaGV2cm9uLWJvcmRlci1jb2xvdXI6ICRnb3Z1ay1zZWNvbmRhcnktdGV4dC1jb2xvdXI7XG5cbiAgLy8gQ2FsY3VsYXRlZCBhbHRpdHVkZSAo4paz4oaVKSBvZiB0aGUgcmlnaHQtYW5nbGVkIGlzb3NjZWxlcyBjaGV2cm9uIHdpdGggc2lkZXNcbiAgLy8gb2YgbGVuZ3RoIDggKDdweCArIDFweCBib3JkZXIpOlxuICAvL1xuICAvLyDiiJooOMKyICsgOMKyKSAqIDAuNSDiiYUgNS42NTVcbiAgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDogNS42NTVweDtcblxuICAuZ292dWstYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcblxuICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbSB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcblxuICAgIC8vIEFkZCBib3RoIG1hcmdpbiBhbmQgcGFkZGluZyBzdWNoIHRoYXQgdGhlIGNoZXZyb24gYXBwZWFycyBjZW50cmFsbHlcbiAgICAvLyBiZXR3ZWVuIGVhY2ggYnJlYWRjcnVtYiBpdGVtXG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpICsgJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZDtcblxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gQ3JlYXRlIGEgY2hldnJvbiB1c2luZyBhIGJveCB3aXRoIGJvcmRlcnMgb24gdHdvIHNpZGVzLCByb3RhdGVkIDQ1ZGVnLlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJGdvdnVrLXVzZS1sZWdhY3ktZm9udCB7XG4gICAgICAgIC8vIEJlZ2luIGFkanVzdG1lbnRzIGZvciBmb250IGJhc2VsaW5lIG9mZnNldFxuICAgICAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIGxlZ2FjeSBmb250IHN1cHBvcnQgaXMgZHJvcHBlZFxuICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXQgYnkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIG5vbi1yb3RhdGVkIHNxdWFyZVxuICAgICAgLy8gYW5kIGl0cyB3aWR0aCB3aGVuIHJvdGF0ZWRcbiAgICAgIGxlZnQ6ICgoJGNoZXZyb24tYWx0aXR1ZGUtY2FsY3VsYXRlZCAqIC0yKSArICRjaGV2cm9uLXNpemUgKyAkY2hldnJvbi1ib3JkZXItd2lkdGgpO1xuXG4gICAgICB3aWR0aDogJGNoZXZyb24tc2l6ZTtcbiAgICAgIGhlaWdodDogJGNoZXZyb24tc2l6ZTtcblxuICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6ICRjaGV2cm9uLWJvcmRlci13aWR0aCAkY2hldnJvbi1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY2hldnJvbi1ib3JkZXItY29sb3VyO1xuXG4gICAgICAvLyBGYWxsIGJhY2sgdG8gYSBncmVhdGVyIHRoYW4gc2lnbiBmb3IgSUU4XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBjb250ZW50OiBcIlxcMDAzZVwiOyAvLyBHcmVhdGVyIHRoYW4gc2lnbiAoPilcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJGNoZXZyb24tYm9yZGVyLWNvbG91cjtcblxuICAgICAgICAvLyBJRTggZG9lc24ndCBzZWVtIHRvIGxpa2UgcmVuZGVyaW5nIHBzZXVkby1lbGVtZW50cyB1c2luZyBAZm9udC1mYWNlcyxcbiAgICAgICAgLy8gc28gZmFsbCBiYWNrIHRvIHVzaW5nIGFub3RoZXIgc2Fucy1zZXJpZiBmb250IHRvIHJlbmRlciB0aGUgY2hldnJvbi5cbiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtdGV4dDtcbiAgfVxuXG4gIC5nb3Z1ay1icmVhZGNydW1icy0tY29sbGFwc2Utb24tbW9iaWxlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvYnV0dG9uXCIpIHtcbiAgJGdvdnVrLWJ1dHRvbi1jb2xvdXI6IGdvdnVrLWNvbG91cihcImdyZWVuXCIsICRsZWdhY3k6ICMwMDgyM2IpO1xuICAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjogZ292dWstc2hhZGUoJGdvdnVrLWJ1dHRvbi1jb2xvdXIsIDYwJSk7XG4gICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIFNlY29uZGFyeSBidXR0b24gdmFyaWFibGVzXG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjogZ292dWstY29sb3VyKFwibGlnaHQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1jb2xvdXIsIDEwJSk7XG4gICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXNoYWRvdy1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91ciwgNDAlKTtcbiAgJGdvdnVrLXNlY29uZGFyeS1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuXG4gIC8vIFdhcm5pbmcgYnV0dG9uIHZhcmlhYmxlc1xuICAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJyZWRcIik7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1ob3Zlci1jb2xvdXI6IGdvdnVrLXNoYWRlKCRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXIsIDIwJSk7XG4gICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyOiBnb3Z1ay1zaGFkZSgkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyLCA2MCUpO1xuICAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuXG4gIC8vIEJlY2F1c2UgdGhlIHNoYWRvdyAoczApIGlzIHZpc3VhbGx5ICdwYXJ0IG9mJyB0aGUgYnV0dG9uLCB3ZSBuZWVkIHRvIHJlZHVjZVxuICAvLyB0aGUgaGVpZ2h0IG9mIHRoZSBidXR0b24gdG8gY29tcGVuc2F0ZSBieSBhZGp1c3RpbmcgaXRzIHBhZGRpbmcgKHMxKSBhbmRcbiAgLy8gaW5jcmVhc2UgdGhlIGJvdHRvbSBtYXJnaW4gdG8gaW5jbHVkZSBpdCAoczIpLlxuICAkYnV0dG9uLXNoYWRvdy1zaXplOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAuZ292dWstYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxOXB4KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiLCAkYWRqdXN0bWVudDogJGJ1dHRvbi1zaGFkb3ctc2l6ZSk7IC8vIHMyXG4gICAgcGFkZGluZzogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCkgZ292dWstc3BhY2luZygyKSAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSk7IC8vIHMxXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRidXR0b24tc2hhZG93LXNpemUgc29saWQgJGdvdnVrLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGF0IGFueSBnbG9iYWwgbGluayBzdHlsZXMgYXJlIG92ZXJyaWRkZW5cbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gRml4IHVud2FudGVkIGJ1dHRvbiBwYWRkaW5nIGluIEZpcmVmb3hcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWhvdmVyLWNvbG91cjtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAvLyBCdW1wIHRoZSBidXR0b24gZG93biBzbyBpdCBsb29rcyBsaWtlIGl0cyBiZWluZyBwcmVzc2VkIGluXG4gICAgICB0b3A6ICRidXR0b24tc2hhZG93LXNpemU7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gdXNlcnMgaGF2ZSBhIGRhcmsgbW9kZSxcbiAgICAgIC8vIGJhY2tncm91bmRzIGFuZCBib3gtc2hhZG93cyBkaXNhcHBlYXIsIHNvIHdlIG5lZWQgdG8gZW5zdXJlIHRoZXJlJ3MgYVxuICAgICAgLy8gdHJhbnNwYXJlbnQgb3V0bGluZSB3aGljaCB3aWxsIGJlIHNldCB0byBhIHZpc2libGUgY29sb3VyLlxuICAgICAgLy8gU2luY2UgSW50ZXJuZXQgRXhwbG9yZXIgOCBkb2VzIG5vdCBzdXBwb3J0IGJveC1zaGFkb3csIHdlIHdhbnQgdG8gZm9yY2UgdGhlIHVzZXItYWdlbnQgb3V0bGluZXNcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAvLyBTaW5jZSBJbnRlcm5ldCBFeHBsb3JlciBkb2VzIG5vdCBzdXBwb3J0IGA6bm90KClgIHdlIHNldCBhIGNsZWFyZXIgZm9jdXMgc3R5bGUgdG8gbWF0Y2ggdXNlci1hZ2VudCBvdXRsaW5lcy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIGNvbG9yOiAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggMCAkZ292dWstZm9jdXMtdGV4dC1jb2xvdXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBhZGp1c3RtZW50cyBkbyBub3Qgd29yayBmb3IgPGlucHV0IHR5cGU9XCJidXR0b25cIj4gYXNcbiAgICAvLyBub24tY29udGFpbmVyIGVsZW1lbnRzIGNhbm5vdCBpbmNsdWRlIHBzZXVkbyBlbGVtZW50cyAoaS5lLiA6OmJlZm9yZSkuXG5cbiAgICAvLyBVc2UgYSBwc2V1ZG8gZWxlbWVudCB0byBleHBhbmQgdGhlIGNsaWNrIHRhcmdldCBhcmVhIHRvIGluY2x1ZGUgdGhlXG4gICAgLy8gYnV0dG9uJ3Mgc2hhZG93IGFzIHdlbGwsIGluIGNhc2UgdXNlcnMgdHJ5IHRvIGNsaWNrIGl0LlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICB0b3A6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcbiAgICAgIHJpZ2h0OiAtJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQ7XG4gICAgICBib3R0b206IC0oJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgKyAkYnV0dG9uLXNoYWRvdy1zaXplKTtcbiAgICAgIGxlZnQ6IC0kZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgYnV0dG9uIGlzIGFjdGl2ZSBpdCBpcyBzaGlmdGVkIGRvd24gYnkgJGJ1dHRvbi1zaGFkb3ctc2l6ZSB0b1xuICAgIC8vIGRlbm90ZSBhICdwcmVzc2VkJyBzdGF0ZS4gSWYgdGhlIHVzZXIgaGFwcGVuZWQgdG8gY2xpY2sgYXQgdGhlIHZlcnkgdG9wXG4gICAgLy8gb2YgdGhlIGJ1dHRvbiwgdGhlaXIgbW91c2UgaXMgbm8gbG9uZ2VyIG92ZXIgdGhlIGJ1dHRvbiAoYmVjYXVzZSBpdCBoYXNcbiAgICAvLyAnbW92ZWQgYmVuZWF0aCB0aGVtJykgYW5kIHNvIHRoZSBjbGljayBldmVudCBpcyBub3QgZmlyZWQuXG4gICAgLy9cbiAgICAvLyBUaGlzIGNvcnJlY3RzIHRoYXQgYnkgc2hpZnRpbmcgdGhlIHRvcCBvZiB0aGUgcHNldWRvIGVsZW1lbnQgc28gdGhhdCBpdFxuICAgIC8vIGNvbnRpbnVlcyB0byBjb3ZlciB0aGUgYXJlYSB0aGF0IHRoZSB1c2VyIG9yaWdpbmFsbHkgY2xpY2tlZCwgd2hpY2ggbWVhbnNcbiAgICAvLyB0aGUgY2xpY2sgZXZlbnQgaXMgc3RpbGwgZmlyZWQuXG4gICAgLy9cbiAgICAvLyDwn46JXG4gICAgJjphY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRvcDogLSgkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCArICRidXR0b24tc2hhZG93LXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1idXR0b24tLWRpc2FibGVkLFxuICAuZ292dWstYnV0dG9uW2Rpc2FibGVkPVwiZGlzYWJsZWRcIl0sXG4gIC5nb3Z1ay1idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAoLjUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstYnV0dG9uLWNvbG91cjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstYnV0dG9uLXNoYWRvdy1jb2xvdXI7IC8vIHMwXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYnV0dG9uLXNoYWRvdy1zaXplIHNvbGlkICRnb3Z1ay1idXR0b24tc2hhZG93LWNvbG91cjsgLy8gczBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICBib3gtc2hhZG93OiAwICRidXR0b24tc2hhZG93LXNpemUgMCAkZ292dWstc2Vjb25kYXJ5LWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgIH1cblxuICAgIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gICAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAgIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycyBzb1xuICAgIC8vIHNvIHRoYXQgdW52aXNpdGVkIGxpbmtzIHN0eWxlZCBhcyBidXR0b25zIGRvIG5vdCBlbmQgdXAgd2l0aCBkYXJrIGJsdWVcbiAgICAvLyB0ZXh0IHdoZW4gZm9jdXNzZWQuXG4gICAgQGluY2x1ZGUgZ292dWstY29tcGF0aWJpbGl0eShnb3Z1a190ZW1wbGF0ZSkge1xuICAgICAgJjpsaW5rOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXNlY29uZGFyeS1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1zZWNvbmRhcnktYnV0dG9uLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstYnV0dG9uLS13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tY29sb3VyO1xuICAgIGJveC1zaGFkb3c6IDAgJGJ1dHRvbi1zaGFkb3ctc2l6ZSAwICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1zaGFkb3ctY29sb3VyO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi10ZXh0LWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBhbHBoYWdvdi9nb3Z1a190ZW1wbGF0ZSBpbmNsdWRlcyBhIHNwZWNpZmljIGE6bGluazpmb2N1cyBzZWxlY3RvclxuICAgIC8vIGRlc2lnbmVkIHRvIG1ha2UgdW52aXNpdGVkIGxpbmtzIGEgc2xpZ2h0bHkgZGFya2VyIGJsdWUgd2hlbiBmb2N1c3NlZCwgc29cbiAgICAvLyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSB0ZXh0IGNvbG91ciBmb3IgdGhhdCBjb21iaW5hdGlvbiBvZiBzZWxlY3RvcnMgc29cbiAgICAvLyBzbyB0aGF0IHVudmlzaXRlZCBsaW5rcyBzdHlsZWQgYXMgYnV0dG9ucyBkbyBub3QgZW5kIHVwIHdpdGggZGFyayBibHVlXG4gICAgLy8gdGV4dCB3aGVuIGZvY3Vzc2VkLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfdGVtcGxhdGUpIHtcbiAgICAgICY6bGluazpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24tdGV4dC1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ292dWstd2FybmluZy1idXR0b24taG92ZXItY29sb3VyO1xuXG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay13YXJuaW5nLWJ1dHRvbi1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbi0tc3RhcnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1yZXNwb25zaXZlKCRzaXplOiAyNCwgJG92ZXJyaWRlLWxpbmUtaGVpZ2h0OiAxKTtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG5cbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmdvdnVrLWJ1dHRvbl9fc3RhcnQtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgfVxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIC8vIFdvcmsgYXJvdW5kIFNWR3Mgbm90IGluaGVyaXRpbmcgY29sb3IgZnJvbSBwYXJlbnQgaW4gZm9yY2VkIGNvbG9yIG1vZGVcbiAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzYzMTApXG4gICAgZm9yY2VkLWNvbG9yLWFkanVzdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXQgd2hlbiB1c2luZyB2MSBvZiBudGFcbiAgICAkb2Zmc2V0OiAyO1xuXG4gICAgLmdvdnVrLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nLXRvcDogKGdvdnVrLXNwYWNpbmcoMikgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAtICgkYnV0dG9uLXNoYWRvdy1zaXplIC8gMikgKyAkb2Zmc2V0KTsgLy8gczFcbiAgICAgIHBhZGRpbmctYm90dG9tOiAoZ292dWstc3BhY2luZygyKSAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IC0gKCRidXR0b24tc2hhZG93LXNpemUgLyAyKSAtICRvZmZzZXQgKyAxKTsgLy8gczFcbiAgICB9XG5cbiAgICAuZ292dWstYnV0dG9uX19zdGFydC1pY29uIHtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2ZpZWxkc2V0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvY2hlY2tib3hlc1wiKSB7XG5cbiAgJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplOiA0NHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1zaXplOiA0MHB4O1xuICAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplOiAyNHB4O1xuICAkZ292dWstY2hlY2tib3hlcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG5cbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZTtcblxuICAgIGNsZWFyOiBsZWZ0O1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1jaGlsZCxcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAkaW5wdXQtb2Zmc2V0OiAoJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSkgLyAyO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4IGRvZXNu4oCZdCBzdXBwb3J0IHBzZXVkby1lbGVtZW50cywgc28gd2UgZG9u4oCZdCB3YW50IHRvIGhpZGUgbmF0aXZlXG4gICAgLy8gZWxlbWVudHMgdGhlcmUuXG4gICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcblxuICAgICAgd2lkdGg6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIGhlaWdodDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstY2hlY2tib3hlcy1zaXplIC8gLTI7XG4gICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtc2l6ZSAvIC0yO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIC8vIGFkZCBmb2N1cyBvdXRsaW5lIHRvIGlucHV0XG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiA4cHggJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHJlbW92ZSAzMDBtcyBwYXVzZSBvbiBtb2JpbGVcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB9XG5cbiAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgLy8gWyBdIENoZWNrIGJveFxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBoZWlnaHQ6ICRnb3Z1ay1jaGVja2JveGVzLXNpemU7XG4gICAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBUaGUgY2hlY2sgbWFyayBpcyBhIGJveCB3aXRoIGEgYm9yZGVyIG9uIHRoZSBsZWZ0IGFuZCBib3R0b20gc2lkZSAo4pSU4pSA4pSAKSxcbiAgICAvLyByb3RhdGVkIDQ1IGRlZ3JlZXNcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTFweDtcbiAgICAgIGxlZnQ6IDlweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgYm9yZGVyOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDVweCA1cHg7XG4gICAgICAvLyBGaXggYnVnIGluIElFMTEgY2F1c2VkIGJ5IHRyYW5zZm9ybSByb3RhdGUgKC00NWRlZykuXG4gICAgICAvLyBTZWU6IGFscGhhZ292L2dvdnVrX2VsZW1lbnRzL2lzc3Vlcy81MThcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstY2hlY2tib3hlc19faGludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1yaWdodDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICB9XG5cbiAgLy8gRm9jdXNlZCBzdGF0ZVxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6Zm9jdXMgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICBib3JkZXItd2lkdGg6IDRweDtcblxuICAgIC8vIFdoZW4gY29sb3VycyBhcmUgb3ZlcnJpZGRlbiwgdGhlIHllbGxvdyBib3gtc2hhZG93IGJlY29tZXMgaW52aXNpYmxlXG4gICAgLy8gd2hpY2ggbWVhbnMgdGhlIGZvY3VzIHN0YXRlIGlzIGxlc3Mgb2J2aW91cy4gQnkgYWRkaW5nIGEgdHJhbnNwYXJlbnRcbiAgICAvLyBvdXRsaW5lLCB3aGljaCBiZWNvbWVzIHNvbGlkICh0ZXh0LWNvbG91cmVkKSBpbiB0aGF0IGNvbnRleHQsIHdlIGVuc3VyZVxuICAgIC8vIHRoZSBmb2N1cyByZW1haW5zIGNsZWFybHkgdmlzaWJsZS5cbiAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcblxuICAgIC8vIFdoZW4gaW4gYW4gZXhwbGljaXQgZm9yY2VkLWNvbG9yIG1vZGUsIHdlIGNhbiB1c2UgdGhlIEhpZ2hsaWdodCBzeXN0ZW1cbiAgICAvLyBjb2xvciBmb3IgdGhlIG91dGxpbmUgdG8gYmV0dGVyIG1hdGNoIGZvY3VzIHN0YXRlcyBvZiBuYXRpdmUgY29udHJvbHNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgfVxuXG4gIC8vIFNlbGVjdGVkIHN0YXRlXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpjaGVja2VkICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmRpc2FibGVkLFxuICAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6ZGlzYWJsZWQgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpkaXNhYmxlZCArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbCB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGl2aWRlcnMgKCdvcicpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19kaXZpZGVyIHtcbiAgICAkZ292dWstZGl2aWRlci1zaXplOiAkZ292dWstY2hlY2tib3hlcy1zaXplICFkZWZhdWx0O1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogJGdvdnVrLWRpdmlkZXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb25kaXRpb25hbCByZXZlYWxzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFRoZSBuYXJyb3cgYm9yZGVyIGlzIHVzZWQgaW4gdGhlIGNvbmRpdGlvbmFsIHJldmVhbHMgYmVjYXVzZSB0aGUgYm9yZGVyIGhhc1xuICAvLyB0byBiZSBhbiBldmVuIG51bWJlciBpbiBvcmRlciB0byBiZSBjZW50cmVkIHVuZGVyIHRoZSA0MHB4IGNoZWNrYm94IG9yIHJhZGlvLlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLW5hcnJvdztcbiAgLy8gQ2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgcGFkZGluZyBuZWVkZWQgdG8ga2VlcCB0aGUgYm9yZGVyIGNlbnRlcmVkIGFnYWluc3QgdGhlIGNoZWNrYm94LlxuICAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc6ICgkZ292dWstY2hlY2tib3hlcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAvLyBNb3ZlIHRoZSBib3JkZXIgY2VudGVyZWQgd2l0aCB0aGUgY2hlY2tib3hcbiAgJGNvbmRpdGlvbmFsLW1hcmdpbi1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmc7XG4gIC8vIE1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb25kaXRpb25hbCBpbmxpbmUgd2l0aCB0aGUgbGFiZWxcbiAgJGNvbmRpdGlvbmFsLXBhZGRpbmctbGVmdDogJGNvbmRpdGlvbmFsLWJvcmRlci1wYWRkaW5nICsgJGdvdnVrLWNoZWNrYm94ZXMtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuXG4gIC5nb3Z1ay1jaGVja2JveGVzX19jb25kaXRpb25hbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgbWFyZ2luLWxlZnQ6ICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgICAuanMtZW5hYmxlZCAmLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU21hbGwgY2hlY2tib3hlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstY2hlY2tib3hlcy0tc21hbGwge1xuXG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUpIC8gMjtcbiAgICAkbGFiZWwtb2Zmc2V0OiAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemUgLSAkaW5wdXQtb2Zmc2V0O1xuXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC8vIFNoaWZ0IHRoZSB0b3VjaCB0YXJnZXQgaW50byB0aGUgbGVmdCBtYXJnaW4gc28gdGhhdCB0aGUgdmlzaWJsZSBlZGdlIG9mXG4gICAgLy8gdGhlIGNvbnRyb2wgaXMgYWxpZ25lZFxuICAgIC8vXG4gICAgLy8gICDilIZXaGF0IGNvbG91cnMgZG8geW91IGxpa2U/XG4gICAgLy8gIOKUjOKUhuKUgOKUgOKUgOKUkFxuICAgIC8vICDilILilIZbXSDilIIgUHVycGxlXG4gICAgLy8gIOKUlOKUhuKWsuKUgOKUgOKUmFxuICAgIC8vICDilrLilIbilJTilIAgQ2hlY2sgYm94IHBzZXVkbyBlbGVtZW50LCBhbGlnbmVkIHdpdGggbWFyZ2luXG4gICAgLy8gIOKUlOKUgOKUgOKUgCBUb3VjaCB0YXJnZXQgKGludmlzaWJsZSBpbnB1dCksIHNoaWZ0ZWQgaW50byB0aGUgbWFyZ2luXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBsZWZ0OiAkaW5wdXQtb2Zmc2V0ICogLTE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstc21hbGwtY2hlY2tib3hlcy1zaXplICogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgbGFiZWwuXG4gICAgLy9cbiAgICAvLyBVbmxpa2UgbGFyZ2VyIGNoZWNrYm94ZXMsIHdlIGFsc28gaGF2ZSB0byBmbG9hdCB0aGUgbGFiZWwgaW4gb3JkZXIgdG9cbiAgICAvLyAnc2hyaW5rJyBpdCwgcHJldmVudGluZyB0aGUgaG92ZXIgc3RhdGUgZnJvbSBraWNraW5nIGluIGFjcm9zcyB0aGUgZnVsbFxuICAgIC8vIHdpZHRoIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWwge1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIHBhZGRpbmc6IDEzcHggZ292dWstc3BhY2luZygzKSAxM3B4IDFweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDExcHggZ292dWstc3BhY2luZygzKSAxMHB4IDFweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBbIF0gQ2hlY2sgYm94XG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIGJveCBbMV0sIHZlcnRpY2FsbHkgY2VudGVyIGl0IHdpdGhpbiB0aGVcbiAgICAvLyB0b3VjaCB0YXJnZXQgWzJdXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgLSAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDsgLy8gMlxuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemU7IC8vIDFcbiAgICAgIGhlaWdodDogJGdvdnVrLXNtYWxsLWNoZWNrYm94ZXMtc2l6ZTsgLy8gMVxuICAgIH1cblxuICAgIC8vIOKclCBDaGVjayBtYXJrXG4gICAgLy9cbiAgICAvLyBSZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGNoZWNrIG1hcmsgYW5kIHJlLWFsaWduIHdpdGhpbiB0aGUgY2hlY2tib3hcbiAgICAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YWZ0ZXIge1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgbGVmdDogNnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDYuNXB4O1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgM3B4IDNweDtcbiAgICB9XG5cbiAgICAvLyBGaXggcG9zaXRpb24gb2YgaGludCB3aXRoIHNtYWxsIGNoZWNrYm94ZXNcbiAgICAvL1xuICAgIC8vIERvIG5vdCB1c2UgaGludHMgd2l0aCBzbWFsbCBjaGVja2JveGVzIOKAkyBiZWNhdXNlIHRoZXkncmUgd2l0aGluIHRoZSBpbnB1dFxuICAgIC8vIHdyYXBwZXIgdGhleSB0cmlnZ2VyIHRoZSBob3ZlciBzdGF0ZSwgYnV0IGNsaWNraW5nIHRoZW0gZG9lc24ndCBhY3R1YWxseVxuICAgIC8vIGFjdGl2YXRlIHRoZSBjb250cm9sLlxuICAgIC8vXG4gICAgLy8gKElmIHlvdSBkbyB1c2UgdGhlbSwgdGhleSB3b24ndCBsb29rIGNvbXBsZXRlbHkgYnJva2VuLi4uIGJ1dCBzZXJpb3VzbHksXG4gICAgLy8gZG9uJ3QgdXNlIHRoZW0pXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2hpbnQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC8vIEFsaWduIGNvbmRpdGlvbmFsIHJldmVhbHMgd2l0aCBzbWFsbCBjaGVja2JveGVzXG4gICAgLmdvdnVrLWNoZWNrYm94ZXNfX2NvbmRpdGlvbmFsIHtcbiAgICAgICRtYXJnaW4tbGVmdDogKCRnb3Z1ay1zbWFsbC1jaGVja2JveGVzLXNpemUgLyAyKSAtICgkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi1sZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkbGFiZWwtb2Zmc2V0IC0gKCRtYXJnaW4tbGVmdCArICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGgpO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdGUgZm9yIHNtYWxsIGNoZWNrYm94ZXMuXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgYSBob3ZlciBzdGF0ZSBmb3Igc21hbGwgY2hlY2tib3hlcyBiZWNhdXNlIHRoZSB0b3VjaCB0YXJnZXQgc2l6ZVxuICAgIC8vIGlzIHNvIG11Y2ggbGFyZ2VyIHRoYW4gdGhlaXIgdmlzaWJsZSBzaXplLCBhbmQgc28gd2UgbmVlZCB0byBwcm92aWRlXG4gICAgLy8gZmVlZGJhY2sgdG8gdGhlIHVzZXIgYXMgdG8gd2hpY2ggY2hlY2tib3ggdGhleSB3aWxsIHNlbGVjdCB3aGVuIHRoZWlyXG4gICAgLy8gY3Vyc29yIGlzIG91dHNpZGUgb2YgdGhlIHZpc2libGUgYXJlYS5cbiAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1ob3Zlci13aWR0aCAkZ292dWstaG92ZXItY29sb3VyO1xuICAgIH1cblxuICAgIC8vIEJlY2F1c2Ugd2UndmUgb3ZlcnJpZGRlbiB0aGUgYm9yZGVyLXNoYWRvdyBwcm92aWRlZCBieSB0aGUgZm9jdXMgc3RhdGUsXG4gICAgLy8gd2UgbmVlZCB0byByZWRlZmluZSB0aGF0IHRvby5cbiAgICAvL1xuICAgIC8vIFdlIHVzZSB0d28gYm94IHNoYWRvd3MsIG9uZSB0aGF0IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb2N1cyBzdGF0ZSBbMV1cbiAgICAvLyBhbmQgYW5vdGhlciB0aGF0IHRoZW4gYXBwbGllcyB0aGUgaG92ZXIgc3RhdGUgWzJdLlxuICAgIC5nb3Z1ay1jaGVja2JveGVzX19pdGVtOmhvdmVyIC5nb3Z1ay1jaGVja2JveGVzX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1jaGVja2JveGVzX19sYWJlbDpiZWZvcmUge1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgJGdvdnVrLWZvY3VzLXdpZHRoICRnb3Z1ay1mb2N1cy1jb2xvdXIsIC8vIDFcbiAgICAgICAgMCAwIDAgJGdvdnVrLWhvdmVyLXdpZHRoICRnb3Z1ay1ob3Zlci1jb2xvdXI7IC8vIDJcbiAgICB9XG5cbiAgICAvLyBGb3IgZGV2aWNlcyB0aGF0IGV4cGxpY2l0bHkgZG9uJ3Qgc3VwcG9ydCBob3ZlciwgZG9uJ3QgcHJvdmlkZSBhIGhvdmVyXG4gICAgLy8gc3RhdGUgKGUuZy4gb24gdG91Y2ggZGV2aWNlcyBsaWtlIGlPUykuXG4gICAgLy9cbiAgICAvLyBXZSBjYW4ndCB1c2UgYEBtZWRpYSAoaG92ZXI6IGhvdmVyKWAgYmVjYXVzZSB3ZSB3b3VsZG4ndCBnZXQgdGhlIGhvdmVyXG4gICAgLy8gc3RhdGUgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGBAbWVkaWEgKGhvdmVyKWAgKGxpa2UgSW50ZXJuZXRcbiAgICAvLyBFeHBsb3Jlcikg4oCTIHNvIHdlIGhhdmUgdG8gJ3VuZG8nIHRoZSBob3ZlciBzdGF0ZSBpbnN0ZWFkLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAuZ292dWstY2hlY2tib3hlc19faXRlbTpob3ZlciAuZ292dWstY2hlY2tib3hlc19faW5wdXQ6bm90KDpkaXNhYmxlZCkgKyAuZ292dWstY2hlY2tib3hlc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLWNoZWNrYm94ZXNfX2l0ZW06aG92ZXIgLmdvdnVrLWNoZWNrYm94ZXNfX2lucHV0OmZvY3VzICsgLmdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9lcnJvci1tZXNzYWdlXCIpIHtcbiAgLmdvdnVrLWVycm9yLW1lc3NhZ2Uge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBjb2xvcjogJGdvdnVrLWVycm9yLWNvbG91cjtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9maWVsZHNldFwiKSB7XG4gIC5nb3Z1ay1maWVsZHNldCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1jbGVhcmZpeDtcbiAgfVxuXG4gIC8vIEZpeCBmb3IgRmlyZWZveCA8IDUzXG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTUwNDYyMlxuICBAc3VwcG9ydHMgbm90IChjYXJldC1jb2xvcjogYXV0bykge1xuICAgIC5nb3Z1ay1maWVsZHNldCxcbiAgICB4Oi1tb3otYW55LWxpbmsgeyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNlbGVjdG9yLXR5cGUtbm8tdW5rbm93blxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuXG4gICAgLy8gRml4IGxlZ2VuZCB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFXG4gICAgLy8gMS4gSUU5LTExICYgRWRnZSAxMi0xM1xuICAgIC8vIDIuIElFOC0xMVxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgICAgICAgICAvLyAyXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAgICAgICAgLy8gMVxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZzogMDtcblxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7ICAgIC8vIDFcbiAgfVxuXG4gIC8vIE1vZGlmaWVycyB0aGF0IG1ha2UgbGVnZW5kcyBsb29rIG1vcmUgbGlrZSB0aGVpciBlcXVpdmFsZW50IGhlYWRpbmdzXG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1sIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAzNiwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSBsZWdlbmQgY29udGFpbnMgYW4gSDEsIHdlIHdhbnQgdGhlIEgxIHRvIGluaGVyaXQgYWxsIHN0eWxlcyBmcm9tXG4gIC8vIHRoZSBsZWdlbmQuIEVmZmVjdGl2ZWx5IHdlIHdhbnQgdG8gYmUgYWJsZSB0byB0cmVhdCB0aGUgaGVhZGluZyBhcyBpZiBpdCBpc1xuICAvLyBub3QgdGhlcmUuXG4gIC5nb3Z1ay1maWVsZHNldF9faGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9oaW50XCIpIHtcbiAgLmdvdnVrLWhpbnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcblxuICAgIGNvbG9yOiAkZ292dWstc2Vjb25kYXJ5LXRleHQtY29sb3VyO1xuICB9XG5cbiAgLy8gUmVkdWNlcyBtYXJnaW4tYm90dG9tIG9mIGhpbnQgd2hlbiB1c2VkIGFmdGVyIHRoZSBkZWZhdWx0IGxhYmVsIChubyBjbGFzcylcbiAgLy8gb3IgZ292dWstbGFiZWwtLXMgZm9yIGJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgd2hlbiB0aGUgbGFiZWwgaXMgaW5zaWRlIHRoZSA8aDE+LCBob3dldmVyIGl0XG4gIC8vIGlzIHVubGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgb3IgZ292dWstbGFiZWwtLXMgY2xhc3Mgd291bGQgYmUgdXNlZCBpbiB0aGlzXG4gIC8vIGNhc2UuXG5cbiAgLy8gVGhpcyBhZGp1c3RtZW50IHdpbGwgbm90IHdvcmsgaW4gYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCA6bm90KCkuXG4gIC8vIFVzZXJzIHdpdGggdGhlc2UgYnJvd3NlcnMgd2lsbCBzZWUgdGhlIGRlZmF1bHQgc2l6ZSBtYXJnaW4gKDVweCBsYXJnZXIpLlxuXG4gIC5nb3Z1ay1sYWJlbDpub3QoLmdvdnVrLWxhYmVsLS1tKTpub3QoLmdvdnVrLWxhYmVsLS1sKTpub3QoLmdvdnVrLWxhYmVsLS14bCkgKyAuZ292dWstaGludCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC8vIFJlZHVjZXMgbWFyZ2luLWJvdHRvbSBvZiBoaW50IHdoZW4gdXNlZCBhZnRlciB0aGUgZGVmYXVsdCBsZWdlbmQgKG5vIGNsYXNzKVxuICAvLyBvciBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1zIGZvciBiZXR0ZXIgdmVydGljYWwgYWxpZ25tZW50LlxuXG4gIC8vIFRoaXMgYWRqdXN0bWVudCB3aWxsIG5vdCB3b3JrIHdoZW4gdGhlIGxlZ2VuZCBpcyBvdXRzaWRlIHRoZSA8aDE+LCBob3dldmVyXG4gIC8vIGl0IGlzIHVubGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgb3IgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tcyBjbGFzcyB3b3VsZCBiZVxuICAvLyB1c2VkIGluIHRoaXMgY2FzZS5cblxuICAvLyBUaGlzIGFkanVzdG1lbnQgd2lsbCBub3Qgd29yayBpbiBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IDpub3QoKS5cbiAgLy8gVXNlcnMgd2l0aCB0aGVzZSBicm93c2VycyB3aWxsIHNlZSB0aGUgZGVmYXVsdCBzaXplIG1hcmdpbiAoNXB4IGxhcmdlcikuXG5cbiAgLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQ6bm90KC5nb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1tKTpub3QoLmdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLWwpOm5vdCguZ292dWstZmllbGRzZXRfX2xlZ2VuZC0teGwpICsgLmdvdnVrLWhpbnQge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAvLyBSZWR1Y2VzIHZpc3VhbCBzcGFjaW5nIG9mIGxlZ2VuZCB3aGVuIHRoZXJlIGlzIGEgaGludFxuICAuZ292dWstZmllbGRzZXRfX2xlZ2VuZCArIC5nb3Z1ay1oaW50IHtcbiAgICBtYXJnaW4tdG9wOiAtKGdvdnVrLXNwYWNpbmcoMSkpO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2xhYmVsXCIpIHtcbiAgLmdvdnVrLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gIH1cblxuICAvLyBNb2RpZmllcnMgdGhhdCBtYWtlIGxhYmVscyBsb29rIG1vcmUgbGlrZSB0aGVpciBlcXVpdmFsZW50IGhlYWRpbmdzXG5cbiAgLmdvdnVrLWxhYmVsLS14bCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogNDgsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstbGFiZWwtLWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDM2LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLWxhYmVsLS1tIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1sYWJlbC0tcyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgbGFiZWwgaXMgbmVzdGVkIGluc2lkZSBhIGhlYWRpbmcsIG92ZXJyaWRlIHRoZSBoZWFkaW5nIHNvIHRoYXQgaXRcbiAgLy8gZG9lcyBub3QgaGF2ZSBhIG1hcmdpbi4gRWZmZWN0aXZlbHkgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRyZWF0IHRoZSBoZWFkaW5nXG4gIC8vIGFzIGlmIGl0IGlzIG5vdCB0aGVyZS5cbiAgLy9cbiAgLy8gVGhpcyBicmVha3MgQkVNIGNvbnZlbnRpb25zIGJlY2F1c2UgaXQgZXhpc3RzIGFzIGEgcGFyZW50IG9mIHRoZSAnYmxvY2snLFxuICAvLyBzbyB3ZSBjYW4ndCByZWFsbHkgY29uc2lkZXIgYW4gZWxlbWVudC5cbiAgLmdvdnVrLWxhYmVsLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2Vycm9yLW1lc3NhZ2UvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi90ZXh0YXJlYS9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2NoYXJhY3Rlci1jb3VudFwiKSB7XG4gIC5nb3Z1ay1jaGFyYWN0ZXItY291bnQge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuXG4gICAgLmdvdnVrLWZvcm0tZ3JvdXAsXG4gICAgLmdvdnVrLXRleHRhcmVhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWNoYXJhY3Rlci1jb3VudF9fbWVzc2FnZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR0YWJ1bGFyOiB0cnVlKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlLS1kaXNhYmxlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3RleHRhcmVhXCIpIHtcbiAgLmdvdnVrLXRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJGxpbmUtaGVpZ2h0OiAxLjI1KTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIHNob3VsZCB0aGlzIGJlIGdsb2JhbD9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICByZXNpemU6IHZlcnRpY2FsO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIC8vIEVuc3VyZSBvdXRsaW5lIGFwcGVhcnMgb3V0c2lkZSBvZiB0aGUgZWxlbWVudFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgICAvLyBEb3VibGUgdGhlIGJvcmRlciBieSBhZGRpbmcgaXRzIHdpZHRoIGFnYWluLiBVc2UgYGJveC1zaGFkb3dgIHRvIGRvXG4gICAgICAvLyB0aGlzIGluc3RlYWQgb2YgY2hhbmdpbmcgYGJvcmRlci13aWR0aGAgKHdoaWNoIGNoYW5nZXMgZWxlbWVudCBzaXplKSBhbmRcbiAgICAgIC8vIHNpbmNlIGBvdXRsaW5lYCBpcyBhbHJlYWR5IHVzZWQgZm9yIHRoZSB5ZWxsb3cgZm9jdXMgc3RhdGUuXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudDtcblxuICAgICAgQGluY2x1ZGUgZ292dWstaWYtaWU4IHtcbiAgICAgICAgLy8gSUU4IGRvZXNuJ3Qgc3VwcG9ydCBgYm94LXNoYWRvd2Agc28gZG91YmxlIHRoZSBib3JkZXIgd2l0aFxuICAgICAgICAvLyBgYm9yZGVyLXdpZHRoYC5cbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXRleHRhcmVhLS1lcnJvciB7XG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudC1lcnJvciBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9jb29raWUtYmFubmVyXCIpIHtcblxuICAvLyBUaGlzIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBoZWFkZXIgY29tcG9uZW50J3Mgc3R5bGVzXG4gICRib3JkZXItYm90dG9tLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZyg0KTtcbiAgICAvLyBUaGUgY29tcG9uZW50IGRvZXMgbm90IHNldCBib3R0b20gc3BhY2luZy5cbiAgICAvLyBUaGUgYm90dG9tIHNwYWNpbmcgc2hvdWxkIGJlIGNyZWF0ZWQgYnkgdGhlIGl0ZW1zIGluc2lkZSB0aGUgY29tcG9uZW50LlxuXG4gICAgLy8gVmlzdWFsbHkgc2VwYXJhdGUgdGhlIGNvb2tpZSBiYW5uZXIgZnJvbSBjb250ZW50IHVuZGVybmVhdGhcbiAgICAvLyB3aGVuIHVzZXIgY2hhbmdlcyBjb2xvdXJzIGluIHRoZWlyIGJyb3dzZXIuXG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci1ib3R0b20td2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0zXCIpO1xuICB9XG5cbiAgLy8gU3VwcG9ydCBvbGRlciBicm93c2VycyB3aGljaCBkb24ndCBoaWRlIGVsZW1lbnRzIHdpdGggdGhlIGBoaWRkZW5gIGF0dHJpYnV0ZVxuICAvLyB3aGVuIHVzZXIgaGlkZXMgdGhlIHdob2xlIGNvb2tpZSBiYW5uZXIgd2l0aCBhICdIaWRlJyBidXR0b24uXG4gIC5nb3Z1ay1jb29raWUtYmFubmVyW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZ292dWstY29va2llLWJhbm5lcl9fbWVzc2FnZSB7XG4gICAgLy8gUmVtb3ZlIHRoZSBleHRyYSBoZWlnaHQgYWRkZWQgYnkgdGhlIHNlcGFyYXRvciBib3JkZXIuXG4gICAgbWFyZ2luLWJvdHRvbTogLSRib3JkZXItYm90dG9tLXdpZHRoO1xuXG4gICAgJltoaWRkZW5dIHtcbiAgICAgIC8vIFN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgd2hpY2ggZG9uJ3QgaGlkZSBlbGVtZW50cyB3aXRoIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGVcbiAgICAgIC8vIHdoZW4gdGhlIHZpc2liaWxpdHkgb2YgY29va2llIGFuZCByZXBsYWNlbWVudCBtZXNzYWdlcyBpcyB0b2dnbGVkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIFJlbW92ZSB0aGUgbmF0aXZlIHZpc2libGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGVsZW1lbnQgaXMgcHJvZ3JhbW1hdGljYWxseSBmb2N1c2VkLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBmb2N1c2VkIGNvb2tpZSBiYW5uZXIgaXMgdGhlIGZpcnN0IGVsZW1lbnQgb24gdGhlIHBhZ2UgYW5kIHRoZSBsYXN0IHRoaW5nIHRoZSB1c2VyXG4gICAgICAvLyBpbnRlcmFjdGVkIHdpdGggcHJpb3IgdG8gaXQgZ2FpbmluZyBmb2N1cy5cbiAgICAgIC8vIFdlIHRoZXJlZm9yZSBhc3N1bWUgdGhhdCBtb3ZpbmcgZm9jdXMgdG8gaXQgaXMgbm90IGdvaW5nIHRvIHN1cnByaXNlIHVzZXJzLCBhbmQgdGhhdCBnaXZpbmdcbiAgICAgIC8vIGl0IGEgdmlzaWJsZSBmb2N1cyBpbmRpY2F0b3IgY291bGQgYmUgbW9yZSBjb25mdXNpbmcgdGhhbiBoZWxwZnVsLCBlc3BlY2lhbGx5IGFzIHRoZVxuICAgICAgLy8gZWxlbWVudCBpcyBub3Qgbm9ybWFsbHkga2V5Ym9hcmQgb3BlcmFibGUuXG4gICAgICAvL1xuICAgICAgLy8gV2UgaGF2ZSBmbGFnZ2VkIHRoaXMgaW4gdGhlIHJlc2VhcmNoIHNlY3Rpb24gb2YgdGhlIGd1aWRhbmNlIGFzIHNvbWV0aGluZyB0byBtb25pdG9yLlxuICAgICAgLy9cbiAgICAgIC8vIEEgcmVsYXRlZCBkaXNjdXNzaW9uOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3djYWcvaXNzdWVzLzEwMDFcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3N1bW1hcnktbGlzdFwiKSB7XG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3Qge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgLy8gUmVxdWlyZWQgdG8gYWxsb3cgdXMgdG8gd3JhcCB3b3JkcyB0aGF0IG92ZXJmbG93LlxuICAgIH1cbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3JvdyB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXksXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSB7XG4gICAgLy8gQXV0b21hdGljIHdyYXBwaW5nIGZvciB1bmJyZWFrYWJsZSB0ZXh0IChlLmcuIFVSTHMpXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkOyAvLyBGYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlcnMgb25seVxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19rZXkge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAvLyBFeHBhbmQgd2lkdGggd2hlbiB2YWx1ZSBpcyBsYXN0IGNvbHVtbiAobm8gYWN0aW9uKVxuICAuZ292dWstc3VtbWFyeS1saXN0X192YWx1ZTpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogNzAlO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zLWxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDsgLy8gUmVzZXQgZGVmYXVsdCB1c2VyIGFnZW50IHN0eWxlc1xuICAgIHBhZGRpbmc6IDA7IC8vIFJlc2V0IGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNcbiAgfVxuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAvLyBJbiBvbGRlciBicm93c2VycyBzdWNoIGFzIElFOCwgOmxhc3QtY2hpbGQgaXMgbm90IGF2YWlsYWJsZSxcbiAgLy8gc28gb25seSBzaG93IHRoZSBib3JkZXIgZGl2aWRlciB3aGVyZSBpdCBpcyBhdmFpbGFibGUuXG4gIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnMtbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucy1saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIGVudGlyZSBzdW1tYXJ5IGxpc3RcbiAgLmdvdnVrLXN1bW1hcnktbGlzdC0tbm8tYm9yZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleSxcbiAgICAgIC5nb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9ucyB7XG4gICAgICAgIC8vIFJlbW92ZSAxcHggYm9yZGVyLCBhZGQgMXB4IGhlaWdodCBiYWNrIG9uXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpICsgMXB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gYm9yZGVyIG9uIHNwZWNpZmljIHJvd3NcbiAgLmdvdnVrLXN1bW1hcnktbGlzdF9fcm93LS1uby1ib3JkZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fa2V5LFxuICAgICAgLmdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUsXG4gICAgICAuZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zIHtcbiAgICAgICAgLy8gUmVtb3ZlIDFweCBib3JkZXIsIGFkZCAxcHggaGVpZ2h0IGJhY2sgb25cbiAgICAgICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMikgKyAxcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaW5wdXQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9oaW50L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vbGFiZWwvaW5kZXhcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9kYXRlLWlucHV0XCIpIHtcbiAgLmdvdnVrLWRhdGUtaW5wdXQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWNsZWFyZml4O1xuICAgIC8vIGZvbnQtc2l6ZTogMCByZW1vdmVzIHdoaXRlc3BhY2UgY2F1c2VkIGJ5IGlubGluZS1ibG9ja1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gIC5nb3Z1ay1kYXRlLWlucHV0X19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstZGF0ZS1pbnB1dF9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWRhdGUtaW5wdXRfX2lucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2hpbnQvaW5kZXhcIjtcbkBpbXBvcnQgXCIuLi9sYWJlbC9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2lucHV0XCIpIHtcbiAgLmdvdnVrLWlucHV0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICBoZWlnaHQ6IGdvdnVrLXB4LXRvLXJlbSg0MHB4KTtcbiAgICB9XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgLy8gc2V0dGluZyBhbnkgYmFja2dyb3VuZC1jb2xvciBtYWtlcyB0ZXh0IGludmlzaWJsZSB3aGVuIGNoYW5naW5nIGNvbG91cnMgdG8gZGFyayBiYWNrZ3JvdW5kcyBpbiBGaXJlZm94IChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1NDc2KVxuICAgIC8vIGFzIGJhY2tncm91bmQtY29sb3IgYW5kIGNvbG9yIG5lZWQgdG8gYWx3YXlzIGJlIHNldCB0b2dldGhlciwgY29sb3Igc2hvdWxkIG5vdCBiZSBzZXQgZWl0aGVyXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLy8gRGlzYWJsZSBpbm5lciBzaGFkb3cgYW5kIHJlbW92ZSByb3VuZGVkIGNvcm5lcnNcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBFbnN1cmUgb3V0bGluZSBhcHBlYXJzIG91dHNpZGUgb2YgdGhlIGVsZW1lbnRcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAwO1xuICAgICAgLy8gRG91YmxlIHRoZSBib3JkZXIgYnkgYWRkaW5nIGl0cyB3aWR0aCBhZ2Fpbi4gVXNlIGBib3gtc2hhZG93YCBmb3IgdGhpcyAvLyBpbnN0ZWFkIG9mIGNoYW5naW5nIGBib3JkZXItd2lkdGhgIC0gdGhpcyBpcyBmb3IgY29uc2lzdGVuY3kgd2l0aFxuICAgICAgLy8gY29tcG9uZW50cyBzdWNoIGFzIHRleHRhcmVhIHdoZXJlIHdlIGF2b2lkIGNoYW5naW5nIGBib3JkZXItd2lkdGhgIGFzXG4gICAgICAvLyBpdCB3aWxsIGNoYW5nZSB0aGUgZWxlbWVudCBzaXplLiBBbHNvLCBgb3V0bGluZWAgY2Fubm90IGJlIHV0aWxpc2VkXG4gICAgICAvLyBoZXJlIGFzIGl0IGlzIGFscmVhZHkgdXNlZCBmb3IgdGhlIHllbGxvdyBmb2N1cyBzdGF0ZS5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBkb3VibGUgdGhlIGJvcmRlciB3aXRoXG4gICAgICAgIC8vIGBib3JkZXItd2lkdGhgLlxuICAgICAgICBib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gIC5nb3Z1ay1pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0tZXJyb3Ige1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQtZXJyb3Igc29saWQgJGdvdnVrLWVycm9yLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaW5wdXQtYm9yZGVyLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgZXggbWVhc3VyZW1lbnRzIGFyZSBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIFcncyB0aGF0IGNhbiBmaXQgaW5zaWRlIHRoZSBpbnB1dFxuICAvLyBFeHRyYSBzcGFjZSBpcyBsZWZ0IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgdG8gYWxsb3cgZm9yIHRoZSBTYWZhcmkgcHJlZmlsbCBpY29uXG4gIC8vIExpbmVhciByZWdyZXNzaW9uIGVzdGltYXRpb24gYmFzZWQgb24gdmlzdWFsIHRlc3RzOiB5ID0gMS43NiArIDEuODF4XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0zMCB7XG4gICAgbWF4LXdpZHRoOiA1NmV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0yMCB7XG4gICAgbWF4LXdpZHRoOiAzOGV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC0xMCB7XG4gICAgbWF4LXdpZHRoOiAyMGV4ICsgM2V4O1xuICB9XG5cbiAgLmdvdnVrLWlucHV0LS13aWR0aC01IHtcbiAgICBtYXgtd2lkdGg6IDEwLjhleDtcbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dC0td2lkdGgtNCB7XG4gICAgbWF4LXdpZHRoOiA5ZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTMge1xuICAgIG1heC13aWR0aDogNy4yZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXQtLXdpZHRoLTIge1xuICAgIG1heC13aWR0aDogNS40ZXg7XG4gIH1cblxuICAuZ292dWstaW5wdXRfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLmdvdnVrLWlucHV0IHtcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XG4gICAgICAtd2Via2l0LWZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIC1tcy1mbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgfVxuXG4gICAgLmdvdnVrLWlucHV0OmZvY3VzIHtcbiAgICAgIC8vIEhhY2sgdG8gc3RvcCBmb2N1cyBzdHlsZSBiZWluZyBvdmVybGFwcGVkIGJ5IHRoZSBzdWZmaXhcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAuZ292dWstaW5wdXQge1xuICAgICAgICAvLyBTZXQgbWF4LXdpZHRoIHRvIG92ZXJyaWRlIHBvdGVudGlhbCB3aWR0aCBvdmVycmlkZSBjbGFzcyBvbiB0aGUgaW5wdXRcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1pbnB1dF9fcHJlZml4LFxuICAuZ292dWstaW5wdXRfX3N1ZmZpeCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIEBpZiAkZ292dWstdHlwb2dyYXBoeS11c2UtcmVtIHtcbiAgICAgIG1pbi13aWR0aDogZ292dWstcHgtdG8tcmVtKDQwcHgpO1xuICAgIH1cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgQGlmICRnb3Z1ay10eXBvZ3JhcGh5LXVzZS1yZW0ge1xuICAgICAgaGVpZ2h0OiBnb3Z1ay1weC10by1yZW0oNDBweCk7XG4gICAgfVxuXG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTtcbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImxpZ2h0LWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTNcIik7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgfVxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBFbXBoYXNpc2Ugbm9uLWVkaXRhYmxlIHN0YXR1cyBvZiBwcmVmaXhlcyBhbmQgc3VmZml4ZXNcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuXG4gICAgLXdlYmtpdC1mbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaW5wdXRfX3ByZWZpeCB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiBtb2JpbGUpIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW5vdC1pZTgge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3BsaXQgcHJlZml4L3N1ZmZpeCBvbnRvIHNlcGFyYXRlIGxpbmVzIG9uIG5hcnJvdyBzY3JlZW5zXG4gIC5nb3Z1ay1pbnB1dF9fc3VmZml4IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IG1vYmlsZSkge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IG1vYmlsZSkge1xuICAgICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9kZXRhaWxzXCIpIHtcbiAgLmdvdnVrLWRldGFpbHMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnkge1xuICAgIC8vIE1ha2UgdGhlIGZvY3VzIG91dGxpbmUgc2hyaW5rLXdyYXAgdGhlIHRleHQgY29udGVudCBvZiB0aGUgc3VtbWFyeVxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC8vIEFic29sdXRlbHkgcG9zaXRpb24gdGhlIG1hcmtlciBhZ2FpbnN0IHRoaXMgZWxlbWVudFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgICAvLyBBbGxvdyBmb3IgYWJzb2x1dGVseSBwb3NpdGlvbmVkIG1hcmtlciBhbmQgYWxpZ24gd2l0aCBkaXNjbG9zZWQgdGV4dFxuICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KSArICRnb3Z1ay1ib3JkZXItd2lkdGg7XG5cbiAgICAvLyBTdHlsZSB0aGUgc3VtbWFyeSB0byBsb29rIGxpa2UgYSBsaW5rLi4uXG4gICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkZ292dWstbGluay1ob3Zlci1jb2xvdXI7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gLi4uYnV0IG9ubHkgdW5kZXJsaW5lIHRoZSB0ZXh0LCBub3QgdGhlIGFycm93XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmhvdmVyIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgdW5kZXJsaW5lIHdoZW4gZm9jdXNzZWQgdG8gYXZvaWQgZHVwbGljYXRlIGJvcmRlcnNcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Zm9jdXMgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnktdGV4dCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGRldGFpbHMgbWFya2VyIHNvIHdlIGNhbiBzdHlsZSBvdXIgb3duIGNvbnNpc3RlbnRseSBhbmRcbiAgLy8gZW5zdXJlIGl0IGRpc3BsYXlzIGluIEZpcmVmb3ggKHNlZSBpbXBsZW1lbnRhdGlvbi5tZCBmb3IgZGV0YWlscylcbiAgLmdvdnVrLWRldGFpbHNfX3N1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBBcHBlbmQgb3VyIG93biBvcGVuIC8gY2xvc2VkIG1hcmtlciB1c2luZyBhIHBzZXVkby1lbGVtZW50XG4gIC5nb3Z1ay1kZXRhaWxzX19zdW1tYXJ5OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1zaGFwZS1hcnJvdygkZGlyZWN0aW9uOiByaWdodCwgJGJhc2U6IDE0cHgpO1xuXG4gICAgLmdvdnVrLWRldGFpbHNbb3Blbl0gPiAmIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXNoYXBlLWFycm93KCRkaXJlY3Rpb246IGRvd24sICRiYXNlOiAxNHB4KTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZGV0YWlsc19fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDQpO1xuICAgIGJvcmRlci1sZWZ0OiAkZ292dWstYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICB9XG5cbiAgLmdvdnVrLWRldGFpbHNfX3RleHQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL2NvcmUvbGlzdHNcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9lcnJvci1zdW1tYXJ5XCIpIHtcbiAgLmdvdnVrLWVycm9yLXN1bW1hcnkge1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg0KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAkZ292dWstZm9jdXMtd2lkdGggc29saWQgJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICB9XG4gIH1cblxuICAuZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ3Jvc3MtY29tcG9uZW50IGNsYXNzIC0gYWRqdXN0cyBzdHlsaW5nIG9mIGxpc3QgY29tcG9uZW50XG4gIC5nb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdCBhIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstc3R5bGUtZXJyb3I7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvZmlsZS11cGxvYWRcIikge1xuICAkY29tcG9uZW50LXBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMSk7XG5cbiAgLmdvdnVrLWZpbGUtdXBsb2FkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGNvbXBvbmVudC1wYWRkaW5nO1xuICAgIHBhZGRpbmc6ICRjb21wb25lbnQtcGFkZGluZztcblxuICAgIC8vIFRoZSBkZWZhdWx0IGZpbGUgdXBsb2FkIGJ1dHRvbiBpbiBTYWZhcmkgZG9lcyBub3RcbiAgICAvLyBzdXBwb3J0IHNldHRpbmcgYSBjdXN0b20gZm9udC1zaXplLiBTZXQgYC13ZWJraXQtYXBwZWFyYW5jZWBcbiAgICAvLyB0byBgYnV0dG9uYCB0byBkcm9wIG91dCBvZiB0aGUgbmF0aXZlIGFwcGVhcmFuY2Ugc28gdGhlXG4gICAgLy8gZm9udC1zaXplIGlzIHNldCB0byAxOXB4XG4gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDc0NlxuICAgICY6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250OiBpbmhlcml0O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICAvLyBVc2UgYGJveC1zaGFkb3dgIHRvIGFkZCBib3JkZXIgaW5zdGVhZCBvZiBjaGFuZ2luZyBgYm9yZGVyLXdpZHRoYFxuICAgICAgLy8gKHdoaWNoIGNoYW5nZXMgZWxlbWVudCBzaXplKSBhbmQgc2luY2UgYG91dGxpbmVgIGlzIGFscmVhZHkgdXNlZCBmb3IgdGhlXG4gICAgICAvLyB5ZWxsb3cgZm9jdXMgc3RhdGUuXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCA0cHggJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICAgIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgYGJveC1zaGFkb3dgIHNvIGFkZCBhbiBhY3R1YWwgYm9yZGVyXG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCBcImZvY3VzLXdpdGhpblwiIHRvIGZpeCBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMwMTk2XG4gICAgLy8gc28gdGhhdCBjb21wb25lbnQgcmVjZWl2ZXMgZm9jdXMgaW4gRmlyZWZveC5cbiAgICAvLyBUaGlzIGNhbid0IGJlIHNldCB0b2dldGhlciB3aXRoIGA6Zm9jdXNgIGFzIGFsbCB2ZXJzaW9ucyBvZiBJRSBmYWlsXG4gICAgLy8gdG8gcmVjb2duaXNlIGBmb2N1cy13aXRoaW5gIGFuZCBkb24ndCBzZXQgYW55IHN0eWxlcyBmcm9tIHRoZSBibG9ja1xuICAgIC8vIHdoZW4gaXQncyBhIHNlbGVjdG9yLlxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuXG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCA0cHggJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG4gICAgfVxuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2Zvb3RlclwiKSB7XG5cbiAgJGdvdnVrLWZvb3Rlci1iYWNrZ3JvdW5kOiAkZ292dWstY2FudmFzLWJhY2tncm91bmQtY29sb3VyO1xuICAkZ292dWstZm9vdGVyLWJvcmRlcjogJGdvdnVrLWJvcmRlci1jb2xvdXI7XG4gIC8vIFRoaXMgdmFyaWFibGUgY2FuIGJlIHJlbW92ZWQgZW50aXJlbHkgb25jZSB0aGUgbGVnYWN5IHBhbGV0dGUgZ29lcyBhd2F5LFxuICAvLyBhcyBpdCdsbCBqdXN0IGJlIHRoZSBzYW1lIGFzICRnb3Z1ay1mb290ZXItYm9yZGVyLlxuICAkZ292dWstZm9vdGVyLWJvcmRlci10b3A6ICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAkZ292dWstZm9vdGVyLXRleHQ6ICRnb3Z1ay10ZXh0LWNvbG91cjtcbiAgJGdvdnVrLWZvb3Rlci1saW5rLWhvdmVyLWNvbG91cjogbnVsbDsgLy8gT25seSB1c2VkIHdpdGggdGhlIGxlZ2FjeSBwYWxldHRlXG5cbiAgQGlmICgkZ292dWstdXNlLWxlZ2FjeS1wYWxldHRlKSB7XG4gICAgJGdvdnVrLWZvb3Rlci1ib3JkZXItdG9wOiAjYTFhY2IyO1xuICAgICRnb3Z1ay1mb290ZXItYm9yZGVyOiBnb3Z1ay1jb2xvdXIoXCJncmV5LTJcIik7XG4gICAgJGdvdnVrLWZvb3Rlci10ZXh0OiAjNDU0YTRjO1xuICAgICRnb3Z1ay1mb290ZXItbGluay1ob3Zlci1jb2xvdXI6ICMxNzE4MTk7XG4gIH1cblxuICAvLyBCYXNlZCBvbiB0aGUgZ292dWstY3Jlc3QtMngucG5nIGltYWdlIGRpbWVuc2lvbnMuXG4gICRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2Utd2lkdGgtMng6IDI1MHB4O1xuICAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodC0yeDogMjA0cHg7XG4gIC8vIEhhbGYgdGhlIDJ4IGltYWdlIHNvIHRoYXQgaXQgZml0cyB0aGUgcmVndWxhciAxeCBzaXplLlxuICAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLXdpZHRoOiAoJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aC0yeCAvIDIpO1xuICAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodDogKCRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2UtaGVpZ2h0LTJ4IC8gMik7XG5cbiAgLmdvdnVrLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtcGFkZGluZyg3LCBcInRvcFwiKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLXBhZGRpbmcoNSwgXCJib3R0b21cIik7XG5cbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdvdnVrLWZvb3Rlci1ib3JkZXItdG9wO1xuICAgIGNvbG9yOiAkZ292dWstZm9vdGVyLXRleHQ7XG4gICAgYmFja2dyb3VuZDogJGdvdnVrLWZvb3Rlci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGluayB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG5cbiAgICBAaWYgKCRnb3Z1ay11c2UtbGVnYWN5LXBhbGV0dGUpIHtcbiAgICAgICY6bGluayxcbiAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9vdGVyLXRleHQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkZ292dWstZm9vdGVyLWxpbmstaG92ZXItY29sb3VyO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuICAgIH1cblxuICAgIC8vIGFscGhhZ292L2dvdnVrX3RlbXBsYXRlIGluY2x1ZGVzIGEgc3BlY2lmaWMgYTpsaW5rOmZvY3VzIHNlbGVjdG9yXG4gICAgLy8gZGVzaWduZWQgdG8gbWFrZSB1bnZpc2l0ZWQgbGlua3MgYSBzbGlnaHRseSBkYXJrZXIgYmx1ZSB3aGVuIGZvY3Vzc2VkLCBzb1xuICAgIC8vIHdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHRleHQgY29sb3VyIGZvciB0aGF0IGNvbWJpbmF0aW9uIG9mIHNlbGVjdG9ycy5cbiAgICBAaW5jbHVkZSBnb3Z1ay1jb21wYXRpYmlsaXR5KGdvdnVrX3RlbXBsYXRlKSB7XG4gICAgICAmOmxpbms6Zm9jdXMge1xuICAgICAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19zZWN0aW9uLWJyZWFrIHtcbiAgICBtYXJnaW46IDA7IC8vIFJlc2V0IGA8aHI+YCBkZWZhdWx0IG1hcmdpbnNcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcbiAgICBib3JkZXI6IDA7IC8vIFJlc2V0IGA8aHI+YCBkZWZhdWx0IGJvcmRlcnNcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdvdnVrLWZvb3Rlci1ib3JkZXI7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19tZXRhIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIG1hcmdpbi1yaWdodDogLSRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICBtYXJnaW4tbGVmdDogLSRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsgLy8gU3VwcG9ydDogRmxleGJveFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX21ldGEtaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZyg1KTtcbiAgICBtYXJnaW4tbGVmdDogJGdvdnVrLWd1dHRlci1oYWxmO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbWV0YS1pdGVtLS1ncm93IHtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgIC13ZWJraXQtZmxleDogMTtcbiAgICAgICAgLW1zLWZsZXg6IDE7XG4gICAgICAgICAgICBmbGV4OiAxOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDMyMHB4O1xuICAgICAgICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAzMjBweDtcbiAgICAgICAgICAgICAgZmxleC1iYXNpczogMzIwcHg7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICB9XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saWNlbmNlLWxvZ28ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCR1bnRpbDogZGVza3RvcCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgICB9XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAvLyBXb3JrIGFyb3VuZCBTVkdzIG5vdCBpbmhlcml0aW5nIGNvbG9yIGZyb20gcGFyZW50IGluIGZvcmNlZCBjb2xvciBtb2RlXG4gICAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy82MzEwKVxuICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IGF1dG87XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19saWNlbmNlLWRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAuZ292dWstZm9vdGVyX19jb3B5cmlnaHQtbG9nbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1pbi13aWR0aDogJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aDtcbiAgICBwYWRkaW5nLXRvcDogKCRnb3Z1ay1mb290ZXItY3Jlc3QtaW1hZ2UtaGVpZ2h0ICsgZ292dWstc3BhY2luZygyKSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogZ292dWstaW1hZ2UtdXJsKFwiZ292dWstY3Jlc3QucG5nXCIpO1xuICAgIEBpbmNsdWRlIGdvdnVrLWRldmljZS1waXhlbC1yYXRpbyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBnb3Z1ay1pbWFnZS11cmwoXCJnb3Z1ay1jcmVzdC0yeC5wbmdcIik7XG4gICAgfVxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGdvdnVrLWZvb3Rlci1jcmVzdC1pbWFnZS13aWR0aCAkZ292dWstZm9vdGVyLWNyZXN0LWltYWdlLWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2lubGluZS1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX21ldGEtY3VzdG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDQpO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9faW5saW5lLWxpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygzKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNywgXCJib3R0b21cIik7XG4gICAgcGFkZGluZy1ib3R0b206IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICB9XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1mb290ZXItYm9yZGVyO1xuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICBtYXJnaW4tcmlnaHQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgbWFyZ2luLWxlZnQ6IC0kZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6ICRnb3Z1ay1ndXR0ZXItaGFsZjtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ292dWstZ3V0dGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAvLyBFbnN1cmUgY29sdW1ucyB0YWtlIHVwIGVxdWFsIHdpZHRoICh0eXBpY2FsbHkgb25lLWhhbGY6b25lLWhhbGYpXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7IC8vIFN1cHBvcnQ6IEZsZXhib3hcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCR1bnRpbDogZGVza3RvcCkge1xuICAgICAgLy8gTWFrZSBzdXJlIGNvbHVtbnMgZG8gbm90IGRyb3AgYmVsb3cgMjAwcHggaW4gd2lkdGhcbiAgICAgIC8vIFdpbGwgdHlwaWNhbGx5IHJlc3VsdCBpbiB3cmFwcGluZywgYW5kIGVuZCB1cCBpbiBhIHNpbmdsZSBjb2x1bW4gb24gc21hbGxlciBzY3JlZW5zLlxuICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAyMDBweDtcbiAgICAgICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMjAwcHg7XG4gICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDIwMHB4OyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIG9ubHkgdHdvIHNlY3Rpb25zLCBzZXQgdGhlIGxheW91dCB0byBiZSB0d28tdGhpcmQ6b25lLXRoaXJkIG9uIGRlc2t0b3BcbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgLy8gV2UgbWF0Y2ggdGhlIGZpcnN0IHNlY3Rpb24gd2l0aCBgOmZpcnN0LWNoaWxkYC5cbiAgICAvLyBUbyBlbnN1cmUgdGhlIHNlY3Rpb24gaXMgb25lIG9mIHR3bywgd2UgY2FuIGNvdW50IGJhY2t3YXJkcyB1c2luZyBgOm50aC1sYXN0LWNoaWxkKDIpYC5cbiAgICAuZ292dWstZm9vdGVyX19zZWN0aW9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDI7XG4gICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMjtcbiAgICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMjtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAyOyAvLyBTdXBwb3J0OiBGbGV4Ym94XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAtd2Via2l0LWNvbHVtbi1nYXA6ICRnb3Z1ay1ndXR0ZXI7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAkZ292dWstZ3V0dGVyOyAvLyBTdXBwb3J0OiBDb2x1bW5zXG5cbiAgICAvLyBEaXNhYmxlIHRoaWNrZXIgdW5kZXJsaW5lcyBvbiBob3ZlciBiZWNhdXNlIG9mIGEgYnVnIGluIENocm9taXVtXG4gICAgLy8gYWZmZWN0aW5nIGxpbmtzIHdpdGhpbiBjb2x1bW5zXG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTE5MDk4N1xuICAgIC5nb3Z1ay1mb290ZXJfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAuZ292dWstZm9vdGVyX19saXN0LS1jb2x1bW5zLTIge1xuICAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDI7XG4gICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjsgLy8gU3VwcG9ydDogQ29sdW1uc1xuICAgIH1cblxuICAgIC5nb3Z1ay1mb290ZXJfX2xpc3QtLWNvbHVtbnMtMyB7XG4gICAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogMztcbiAgICAgICAgICAgICAgY29sdW1uLWNvdW50OiAzOyAvLyBTdXBwb3J0OiBDb2x1bW5zXG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWZvb3Rlcl9fbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig0LCBcImJvdHRvbVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1mb290ZXJfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L2hlYWRlclwiKSB7XG5cbiAgJGdvdnVrLWhlYWRlci1iYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgJGdvdnVrLWhlYWRlci1ib3JkZXItY29sb3I6ICRnb3Z1ay1icmFuZC1jb2xvdXI7XG4gICRnb3Z1ay1oZWFkZXItYm9yZGVyLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAkZ292dWstaGVhZGVyLXRleHQ6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAkZ292dWstaGVhZGVyLWxpbmstYWN0aXZlOiAjMWQ4ZmViO1xuICAkZ292dWstaGVhZGVyLW5hdi1pdGVtLWJvcmRlci1jb2xvcjogIzJlMzEzMztcbiAgJGdvdnVrLWhlYWRlci1saW5rLXVuZGVybGluZS10aGlja25lc3M6IDNweDtcblxuICAuZ292dWstaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNik7XG5cbiAgICBib3JkZXItYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpIHNvbGlkIGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGNvbG9yOiAkZ292dWstaGVhZGVyLXRleHQ7XG4gICAgYmFja2dyb3VuZDogJGdvdnVrLWhlYWRlci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fY29udGFpbmVyLS1mdWxsLXdpZHRoIHtcbiAgICBwYWRkaW5nOiAwIGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ292dWstaGVhZGVyLWJvcmRlci1jb2xvcjtcblxuICAgIC5nb3Z1ay1oZWFkZXJfX21lbnUtYnV0dG9uIHtcbiAgICAgIHJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IC0kZ292dWstaGVhZGVyLWJvcmRlci13aWR0aDtcbiAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICBib3JkZXItYm90dG9tOiAkZ292dWstaGVhZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvLyBBZGQgYSBnYXAgYWZ0ZXIgdGhlIGxvZ28gaW4gY2FzZSBpdCdzIGZvbGxvd2VkIGJ5IGEgcHJvZHVjdCBuYW1lLiBUaGlzXG4gICAgLy8gZ2V0cyByZW1vdmVkIGxhdGVyIGlmIHRoZSBsb2dvdHlwZSBpcyBhIDpsYXN0LWNoaWxkLlxuICAgIG1hcmdpbi1yaWdodDogZ292dWstc3BhY2luZygxKTtcblxuICAgIC8vIFByZXZlbnQgcmVhZGFiaWxpdHkgYmFja3BsYXRlIGZyb20gb2JzY3VyaW5nIHVuZGVybGluZSBpbiBXaW5kb3dzIEhpZ2hcbiAgICAvLyBDb250cmFzdCBNb2RlXG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgICBjb2xvcjogbGlua3RleHQ7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBnYXAgYWZ0ZXIgdGhlIGxvZ28gaWYgdGhlcmUncyBubyBwcm9kdWN0IG5hbWUgdG8ga2VlcCBob3ZlclxuICAgIC8vIGFuZCBmb2N1cyBzdGF0ZXMgbmVhdFxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19sb2dvdHlwZS1jcm93bi1mYWxsYmFjay1pbWFnZSB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fcHJvZHVjdC1uYW1lIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAyNCwgJGxpbmUtaGVpZ2h0OiAxKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19saW5rIHtcbiAgICAvLyBBdm9pZCB1c2luZyB0aGUgYGdvdnVrLWxpbmstY29tbW9uYCBtaXhpbiBiZWNhdXNlIHRoZSBsaW5rcyBpbiB0aGUgaGVhZGVyXG4gICAgLy8gZ2V0IGEgc3BlY2lhbCB0cmVhdG1lbnQsIGJlY2F1c2U6XG4gICAgLy9cbiAgICAvLyAtIHVuZGVybGluZXMgYXJlIG9ubHkgdmlzaWJsZSBvbiBob3ZlclxuICAgIC8vIC0gYWxsIGxpbmtzIGdldCBhIDNweCB1bmRlcmxpbmUgcmVnYXJkbGVzcyBvZiB0ZXh0IHNpemUsIGFzIHRoZXJlIGFyZVxuICAgIC8vICAgbXVsdGlwbGUgZ3JvdXBlZCBlbGVtZW50cyBjbG9zZSB0byBvbmUgYW5vdGhlciBhbmQgaGF2aW5nIHNsaWdodGx5XG4gICAgLy8gICBkaWZmZXJlbnQgdW5kZXJsaW5lIHdpZHRocyBsb29rcyB1bmJhbGFuY2VkXG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1pbnZlcnNlO1xuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6ICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzO1xuXG4gICAgICBAaWYgKCRnb3Z1ay1saW5rLXVuZGVybGluZS1vZmZzZXQpIHtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xpbmstLWhvbWVwYWdlIHtcbiAgICAvLyBGb250IHNpemUgbmVlZHMgdG8gYmUgc2V0IG9uIHRoZSBsaW5rIHNvIHRoYXQgdGhlIGJveCBzaXppbmcgaXMgY29ycmVjdFxuICAgIC8vIGluIEZpcmVmb3hcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiBmYWxzZSwgJHdlaWdodDogYm9sZCk7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIGZvbnQtc2l6ZTogMzBweDsgLy8gV2UgZG9uJ3QgaGF2ZSBhIG1peGluIHRoYXQgcHJvZHVjZXMgMzBweCBmb250IHNpemVcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICY6bGluayxcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgLy8gTmVnYXRlIHRoZSBhZGRlZCBib3JkZXJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzICogLTE7XG4gICAgICAvLyBPbWl0dGluZyBjb2xvdXIgd2lsbCB1c2UgZGVmYXVsdCB2YWx1ZSBvZiBjdXJyZW50Q29sb3Ig4oCTIGlmIHdlXG4gICAgICAvLyBzcGVjaWZpZWQgY3VycmVudENvbG9yIGV4cGxpY2l0bHkgSUU4IHdvdWxkIGlnbm9yZSB0aGlzIHJ1bGUuXG4gICAgICBib3JkZXItYm90dG9tOiAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcyBzb2xpZDtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYW55IGJvcmRlcnMgdGhhdCBzaG93IHdoZW4gZm9jdXNlZCBhbmQgaG92ZXJlZC5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xpbmstLXNlcnZpY2UtbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbG9nbyxcbiAgLmdvdnVrLWhlYWRlcl9fY29udGVudCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX2xvZ28ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDIsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoOCk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IGRlc2t0b3ApIHtcbiAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICB3aWR0aDogNjYuNjYlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZ292dWstZ3V0dGVyLWhhbGY7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogZ292dWstc3BhY2luZyg0KTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogc29saWQgdW5kZXJsaW5lICRnb3Z1ay1oZWFkZXItbGluay11bmRlcmxpbmUtdGhpY2tuZXNzO1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHNvbGlkIHVuZGVybGluZSAkZ292dWstaGVhZGVyLWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzcztcblxuICAgICAgQGlmICgkZ292dWstbGluay11bmRlcmxpbmUtb2Zmc2V0KSB7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogJGdvdnVrLWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXNoYXBlLWFycm93KCRkaXJlY3Rpb246IGRvd24sICRiYXNlOiAxMHB4LCAkZGlzcGxheTogaW5saW5lLWJsb2NrKTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBtYXJnaW4tbGVmdDogZ292dWstc3BhY2luZygxKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IHRhYmxldCkge1xuICAgICAgdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX21lbnUtYnV0dG9uLS1vcGVuIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLXNoYXBlLWFycm93KCRkaXJlY3Rpb246IHVwLCAkYmFzZTogMTBweCwgJGRpc3BsYXk6IGlubGluZS1ibG9jayk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oMiwgXCJib3R0b21cIik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC5qcy1lbmFibGVkIHtcbiAgICAuZ292dWstaGVhZGVyX19tZW51LWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5ICgkZnJvbTogZGVza3RvcCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLS1vcGVuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24tLWVuZCB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpIDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstaGVhZGVyX19uYXZpZ2F0aW9uLS1uby1zZXJ2aWNlLW5hbWUge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDcpO1xuICB9XG5cbiAgLmdvdnVrLWhlYWRlcl9fbmF2aWdhdGlvbi1pdGVtIHtcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDIpIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1oZWFkZXItbmF2LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkgKCRmcm9tOiBkZXNrdG9wKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDEpIDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxNiwgJHdlaWdodDogYm9sZCk7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24taXRlbS0tYWN0aXZlIHtcbiAgICBhIHtcbiAgICAgICY6bGluayxcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWhlYWRlci1saW5rLWFjdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLy8gV2hlbiBmb2N1c3NlZCwgdGhlIHRleHQgY29sb3VyIG5lZWRzIHRvIGJlIGRhcmtlciB0byBlbnN1cmUgdGhhdCBjb2xvdXJcbiAgICAgIC8vIGNvbnRyYXN0IGlzIHN0aWxsIGFjY2VwdGFibGVcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGdvdnVrLWZvY3VzLXRleHQtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1oZWFkZXJfX25hdmlnYXRpb24taXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkbWVkaWEtdHlwZTogcHJpbnQpIHtcbiAgICAuZ292dWstaGVhZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICBjb2xvcjogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHRoZSBpbnZlcnRlZCBjcm93biB3aGVuIHByaW50aW5nIGluIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBTVkcuXG4gICAgLmdvdnVrLWhlYWRlcl9fbG9nb3R5cGUtY3Jvd24tZmFsbGJhY2staW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyX19saW5rIHtcbiAgICAgICY6bGluayxcbiAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICAgIH1cblxuICAgICAgLy8gRG8gbm90IGFwcGVuZCBsaW5rIGhyZWYgdG8gR09WLlVLIGxpbmsgd2hlbiBwcmludGluZyAoZS5nLiAnKC8pJylcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ292dWstdXNlLWxlZ2FjeS1mb250IHtcbiAgICAvLyBCZWdpbiBhZGp1c3RtZW50cyBmb3IgZm9udCBiYXNlbGluZSBvZmZzZXRcbiAgICAvLyBUaGVzZSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBmb250IGlzIHVwZGF0ZWQgd2l0aCB0aGUgY29ycmVjdCBiYXNlbGluZVxuICAgIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLFxuICAgIC5nb3Z1ay1oZWFkZXJfX2xvZ290eXBlLWNyb3duLWZhbGxiYWNrLWltYWdlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLmdvdnVrLWhlYWRlciB7XG4gICAgICAkb2Zmc2V0OiAzcHg7XG4gICAgICBwYWRkaW5nLXRvcDogJG9mZnNldDtcbiAgICB9XG5cbiAgICAuZ292dWstaGVhZGVyX19saW5rLS1ob21lcGFnZSB7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG4gICAgLy8gRW5kIGFkanVzdG1lbnRzXG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvaW5zZXQtdGV4dFwiKSB7XG4gIC5nb3Z1ay1pbnNldC10ZXh0IHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygzKTtcbiAgICAvLyBNYXJnaW4gdG9wIGludGVuZGVkIHRvIGNvbGxhcHNlXG4gICAgLy8gVGhpcyBhZGRzIGFuIGFkZGl0aW9uYWwgMTBweCB0byB0aGUgcGFyYWdyYXBoIGFib3ZlXG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG5cbiAgICBjbGVhcjogYm90aDtcblxuICAgIGJvcmRlci1sZWZ0OiAkZ292dWstYm9yZGVyLXdpZHRoLXdpZGUgc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgID4gOm9ubHktY2hpbGQsXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9ub3RpZmljYXRpb24tYmFubmVyXCIpIHtcbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXIge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig4LCBcImJvdHRvbVwiKTtcblxuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aCBzb2xpZCAkZ292dWstYnJhbmQtY29sb3VyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLWJyYW5kLWNvbG91cjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2hlYWRlciB7XG4gICAgcGFkZGluZzogMnB4IGdvdnVrLXNwYWNpbmcoMykgZ292dWstc3BhY2luZygxKTtcblxuICAgIC8vIEVuc3VyZXMgdGhlIG5vdGlmaWNhdGlvbiBoZWFkZXIgYXBwZWFycyBzZXBhcmF0ZSB0byB0aGUgbm90aWZpY2F0aW9uIGJvZHkgdGV4dCBpbiBoaWdoIGNvbnRyYXN0IG1vZGVcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiAycHggZ292dWstc3BhY2luZyg0KSBnb3Z1ay1zcGFjaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgbWFyZ2luOiAwO1xuXG4gICAgcGFkZGluZzogMDtcblxuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgfVxuXG4gIC5nb3Z1ay1ub3RpZmljYXRpb24tYmFubmVyX19jb250ZW50IHtcbiAgICAkcGFkZGluZy10YWJsZXQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygzKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1ib2R5LWJhY2tncm91bmQtY29sb3VyO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZzogJHBhZGRpbmctdGFibGV0O1xuICAgIH1cblxuICAgIC8vIFdyYXAgY29udGVudCBhdCB0aGUgc2FtZSBwbGFjZSB0aGF0IGEgMi8zIGdyaWQgY29sdW1uIGVuZHMsIHRvIG1haW50YWluXG4gICAgLy8gc2hvcnRlciBsaW5lLWxlbmd0aHMgd2hlbiB0aGUgbm90aWZpY2F0aW9uIGJhbm5lciBpcyBmdWxsIHdpZHRoXG4gICAgPiAqIHtcbiAgICAgIC8vIFdoZW4gZWxlbWVudHMgaGF2ZSB0aGVpciBvd24gcGFkZGluZyAobGlrZSBsaXN0cyksIGluY2x1ZGUgdGhlIHBhZGRpbmdcbiAgICAgIC8vIGluIHRoZSBtYXgtd2lkdGggY2FsY3VsYXRpb25cbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaW50ZXJuYWwgd2lkdGggb2YgYSB0d28tdGhpcmRzIGNvbHVtbi4uLlxuICAgICAgJHR3by1jb2wtd2lkdGg6ICgkZ292dWstcGFnZS13aWR0aCAqIDIgLyAzKSAtICgkZ292dWstZ3V0dGVyICogMSAvIDMpO1xuXG4gICAgICAvLyAuLi5hbmQgdGhlbiBmYWN0b3IgaW4gdGhlIGxlZnQgYm9yZGVyIGFuZCBwYWRkaW5nXG4gICAgICAkYmFubmVyLWV4dGVyaW9yOiAoJHBhZGRpbmctdGFibGV0ICsgJGdvdnVrLWJvcmRlci13aWR0aCk7XG4gICAgICBtYXgtd2lkdGg6ICR0d28tY29sLXdpZHRoIC0gJGJhbm5lci1leHRlcmlvcjtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcblxuICAgIG1hcmdpbjogMCAwIGdvdnVrLXNwYWNpbmcoMykgMDtcblxuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuZ292dWstbm90aWZpY2F0aW9uLWJhbm5lcl9fbGluayB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1uby12aXNpdGVkLXN0YXRlO1xuICB9XG5cbiAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXItLXN1Y2Nlc3Mge1xuICAgIGJvcmRlci1jb2xvcjogJGdvdnVrLXN1Y2Nlc3MtY29sb3VyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvdnVrLXN1Y2Nlc3MtY29sb3VyO1xuXG4gICAgLmdvdnVrLW5vdGlmaWNhdGlvbi1iYW5uZXJfX2xpbmsge1xuICAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1zdWNjZXNzO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9wYW5lbFwiKSB7XG4gIC5nb3Z1ay1wYW5lbCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZyg3KSAtICRnb3Z1ay1ib3JkZXItd2lkdGg7XG5cbiAgICBib3JkZXI6ICRnb3Z1ay1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgcGFkZGluZzogZ292dWstc3BhY2luZyg2KSAtICRnb3Z1ay1ib3JkZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXBhbmVsLS1jb25maXJtYXRpb24ge1xuICAgIGNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJncmVlblwiLCAkbGVnYWN5OiBcInR1cnF1b2lzZVwiKTtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICBjb2xvcjogJGdvdnVrLXByaW50LXRleHQtY29sb3VyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuZ292dWstcGFuZWxfX3RpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNik7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gIH1cblxuICAuZ292dWstcGFuZWxfX3RpdGxlOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstcGFuZWxfX2JvZHkge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDM2KTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3RhZy9pbmRleFwiO1xuXG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3BoYXNlLWJhbm5lclwiKSB7XG4gIC5nb3Z1ay1waGFzZS1iYW5uZXIge1xuICAgIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICB9XG5cbiAgLmdvdnVrLXBoYXNlLWJhbm5lcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTYpO1xuICAgIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuXG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmdvdnVrLXBoYXNlLWJhbm5lcl9fY29udGVudF9fdGFnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstcGhhc2UtYmFubmVyX190ZXh0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFnXCIpIHtcbiAgLmdvdnVrLXRhZyB7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAvLyBXaGVuIGEgdXNlciBjdXN0b21pc2VzIHRoZWlyIGNvbG91cnMgb2Z0ZW4gdGhlIGJhY2tncm91bmQgaXMgcmVtb3ZlZCxcbiAgICAvLyBieSBhZGRpbmcgYSBvdXRsaW5lIHdlIGVuc3VyZSB0aGF0IHRoZSB0YWcgY29tcG9uZW50IHN0aWxsIGtlZXBzIGl0J3MgbWVhbmluZy5cbiAgICAvLyBodHRwczovL2FjY2Vzc2liaWxpdHkuYmxvZy5nb3YudWsvMjAxNy8wMy8yNy9ob3ctdXNlcnMtY2hhbmdlLWNvbG91cnMtb24td2Vic2l0ZXMvXG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuXG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsdWVcIik7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGlmICRnb3Z1ay11c2UtbGVnYWN5LWZvbnQge1xuICAgICAgLy8gU2luY2UgTmV3IFRyYW5zcG9ydCBzaXRzIHNsaWdodGx5IGhpZ2hlciB0aGFuIG90aGVyIGNvbW1vbiBmb250cy5cbiAgICAgIC8vIFdlIHVzZSBpbnRlbnRpb25hbGx5IHVuZXZlbiBwYWRkaW5nIHRvIG1ha2UgaXQgYmFsYW5jZWQsIHRoaXMgY2FuIGJlXG4gICAgICAvLyByZW1vdmVkIHVzaW5nIHRoZSB2ZXJzaW9uIG9mIHRoZSBmb250IHRoYXQgaGFzIGEgbW9yZSBjb21tb24gdmVydGljYWwgc3BhY2luZy5cbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEuMjUpO1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE2LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDEpO1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAvLyBEZXByZWNhdGVkLiBXZSdsbCByZW1vdmUgdGhpcyBjbGFzcyBpbiBhIGZ1dHVyZSByZWxlYXNlLiBVc2UgYC5nb3Z1ay10YWctLWdyZXlgIGluc3RlYWQuXG4gIC5nb3Z1ay10YWctLWluYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIik7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmV5IHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwiZGFyay1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0xXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJkYXJrLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTFcIiksIDkwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXB1cnBsZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInB1cnBsZVwiKSwgMjApO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwicHVycGxlXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS10dXJxdW9pc2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJ0dXJxdW9pc2VcIiksIDYwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcInR1cnF1b2lzZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tYmx1ZSB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImJsdWVcIiksIDMwKTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcImJsdWVcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXllbGxvdyB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcInllbGxvd1wiKSwgNjUpO1xuICAgIGJhY2tncm91bmQ6IGdvdnVrLXRpbnQoZ292dWstY29sb3VyKFwieWVsbG93XCIpLCA3NSk7XG4gIH1cblxuICAuZ292dWstdGFnLS1vcmFuZ2Uge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJvcmFuZ2VcIiksIDU1KTtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay10aW50KGdvdnVrLWNvbG91cihcIm9yYW5nZVwiKSwgNzApO1xuICB9XG5cbiAgLmdvdnVrLXRhZy0tcmVkIHtcbiAgICBjb2xvcjogZ292dWstc2hhZGUoZ292dWstY29sb3VyKFwicmVkXCIpLCAzMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJyZWRcIiksIDgwKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWctLXBpbmsge1xuICAgIGNvbG9yOiBnb3Z1ay1zaGFkZShnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA0MCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJwaW5rXCIpLCA4MCk7XG4gIH1cblxuICAuZ292dWstdGFnLS1ncmVlbiB7XG4gICAgY29sb3I6IGdvdnVrLXNoYWRlKGdvdnVrLWNvbG91cihcImdyZWVuXCIpLCAyMCk7XG4gICAgYmFja2dyb3VuZDogZ292dWstdGludChnb3Z1ay1jb2xvdXIoXCJncmVlblwiKSwgODApO1xuICB9XG59XG4iLCJAaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvY29tcG9uZW50L3RhYnNcIikge1xuICAuZ292dWstdGFicyB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oMSwgXCJ0b3BcIik7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstdGFic19fdGl0bGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICB9XG5cbiAgLmdvdnVrLXRhYnNfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNiwgXCJib3R0b21cIik7XG4gIH1cblxuICAuZ292dWstdGFic19fbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgbWFyZ2luLWxlZnQ6IGdvdnVrLXNwYWNpbmcoNSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFwiOyAvLyBcIuKAlCBcIlxuICAgICAgbWFyZ2luLWxlZnQ6IC0gZ292dWstc3BhY2luZyg1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgLmdvdnVrLXRhYnNfX3RhYiB7XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1jb21tb247XG4gICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS1kZWZhdWx0O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIH1cblxuICAuZ292dWstdGFic19fcGFuZWwge1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDgsIFwiYm90dG9tXCIpO1xuICB9XG5cbiAgLy8gSmF2YVNjcmlwdCBlbmFibGVkXG4gIC5qcy1lbmFibGVkIHtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIC5nb3Z1ay10YWJzX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ292dWstYm9yZGVyLWNvbG91cjtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXRhYnNfX2xpc3QtaXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDIpIGdvdnVrLXNwYWNpbmcoNCk7XG5cbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImxpZ2h0LWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTRcIik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gICAgICAgICRib3JkZXItd2lkdGg6IDFweDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgbWFyZ2luLXRvcDogLSBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gICAgICAgIC8vIENvbXBlbnNhdGlvbiBmb3IgYm9yZGVyIChvdGhlcndpc2Ugd2UgZ2V0IGEgc2hpZnQpXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0kYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygzKSAtICRib3JkZXItd2lkdGg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCkgLSAkYm9yZGVyLXdpZHRoO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygzKSArICRib3JkZXItd2lkdGg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogZ292dWstc3BhY2luZyg0KSAtICRib3JkZXItd2lkdGg7XG5cbiAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1ib2R5LWJhY2tncm91bmQtY29sb3VyO1xuXG4gICAgICAgIC5nb3Z1ay10YWJzX190YWIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fdGFiIHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstbGluay1zdHlsZS10ZXh0O1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5nb3Z1ay10YWJzX19wYW5lbCB7XG4gICAgICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDAsIFwiYm90dG9tXCIpO1xuICAgICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDYpIGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuXG4gICAgICAgICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ292dWstdGFic19fcGFuZWwtLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vZXJyb3ItbWVzc2FnZS9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2ZpZWxkc2V0L2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvcmFkaW9zXCIpIHtcblxuICAkZ292dWstdG91Y2gtdGFyZ2V0LXNpemU6IDQ0cHg7XG4gICRnb3Z1ay1yYWRpb3Mtc2l6ZTogNDBweDtcbiAgJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplOiAyNHB4O1xuICAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDogZ292dWstc3BhY2luZygzKTtcbiAgLy8gV2hlbiB0aGUgZGVmYXVsdCBmb2N1cyB3aWR0aCBpcyB1c2VkIG9uIGEgY3VydmVkIGVkZ2UgaXQgbG9va3MgdmlzdWFsbHkgc21hbGxlci5cbiAgLy8gU28gZm9yIHRoZSBjaXJjdWxhciByYWRpb3Mgd2UgYnVtcCB0aGUgZGVmYXVsdCB0byBtYWtlIGl0IGxvb2sgdmlzdWFsbHkgY29uc2lzdGVudC5cbiAgJGdvdnVrLXJhZGlvcy1mb2N1cy13aWR0aDogJGdvdnVrLWZvY3VzLXdpZHRoICsgMXB4O1xuXG4gIC5nb3Z1ay1yYWRpb3NfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6ICRnb3Z1ay1yYWRpb3Mtc2l6ZTtcblxuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ292dWstcmFkaW9zLXNpemU7XG5cbiAgICBjbGVhcjogbGVmdDtcbiAgfVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2l0ZW06bGFzdC1jaGlsZCxcbiAgLmdvdnVrLXJhZGlvc19faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19pbnB1dCB7XG4gICAgJGlucHV0LW9mZnNldDogKCRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZSAtICRnb3Z1ay1yYWRpb3Mtc2l6ZSkgLyAyO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4IGRvZXNu4oCZdCBzdXBwb3J0IHBzZXVkby1lbGVtZW50cywgc28gd2UgZG9u4oCZdCB3YW50IHRvIGhpZGUgbmF0aXZlXG4gICAgLy8gZWxlbWVudHMgdGhlcmUuXG4gICAgQGluY2x1ZGUgZ292dWstbm90LWllOCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0b3A6ICRpbnB1dC1vZmZzZXQgKiAtMTtcbiAgICAgIGxlZnQ6ICRpbnB1dC1vZmZzZXQgKiAtMTtcblxuICAgICAgd2lkdGg6ICRnb3Z1ay10b3VjaC10YXJnZXQtc2l6ZTtcbiAgICAgIGhlaWdodDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGdvdnVrLWlmLWllOCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ292dWstcmFkaW9zLXNpemUgLyAtMjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkZ292dWstcmFkaW9zLXNpemUgLyAtMjtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAvLyBhZGQgZm9jdXMgb3V0bGluZSB0byBpbnB1dFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiA4cHggJGdvdnVrLXJhZGlvcy1sYWJlbC1wYWRkaW5nLWxlZnQtcmlnaHQgZ292dWstc3BhY2luZygxKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLy8gcmVtb3ZlIDMwMG1zIHBhdXNlIG9uIG1vYmlsZVxuICAgIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIH1cblxuICAvLyAoICkgUmFkaW8gcmluZ1xuICAuZ292dWstcmFkaW9zX19sYWJlbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogJGdvdnVrLXJhZGlvcy1zaXplO1xuICAgIGhlaWdodDogJGdvdnVrLXJhZGlvcy1zaXplO1xuXG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gIOKAoiAgUmFkaW8gYnV0dG9uXG4gIC8vXG4gIC8vIFdlIGNyZWF0ZSB0aGUgJ2J1dHRvbicgZW50aXJlbHkgb3V0IG9mICdib3JkZXInIHNvIHRoYXQgdGhleSByZW1haW5cbiAgLy8gJ2ZpbGxlZCcgZXZlbiB3aGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4gaW4gdGhlIGJyb3dzZXIuXG4gIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogZ292dWstc3BhY2luZygyKTtcbiAgICBsZWZ0OiBnb3Z1ay1zcGFjaW5nKDIpO1xuXG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuXG4gICAgYm9yZGVyOiBnb3Z1ay1zcGFjaW5nKDIpIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAuZ292dWstcmFkaW9zX19oaW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRnb3Z1ay1yYWRpb3MtbGFiZWwtcGFkZGluZy1sZWZ0LXJpZ2h0O1xuICB9XG5cbiAgLy8gRm9jdXNlZCBzdGF0ZVxuICAuZ292dWstcmFkaW9zX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XG5cbiAgICAvLyBXaGVuIGNvbG91cnMgYXJlIG92ZXJyaWRkZW4sIHRoZSB5ZWxsb3cgYm94LXNoYWRvdyBiZWNvbWVzIGludmlzaWJsZVxuICAgIC8vIHdoaWNoIG1lYW5zIHRoZSBmb2N1cyBzdGF0ZSBpcyBsZXNzIG9idmlvdXMuIEJ5IGFkZGluZyBhIHRyYW5zcGFyZW50XG4gICAgLy8gb3V0bGluZSwgd2hpY2ggYmVjb21lcyBzb2xpZCAodGV4dC1jb2xvdXJlZCkgaW4gdGhhdCBjb250ZXh0LCB3ZSBlbnN1cmVcbiAgICAvLyB0aGUgZm9jdXMgcmVtYWlucyBjbGVhcmx5IHZpc2libGUuXG4gICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG5cbiAgICAvLyBXaGVuIGluIGFuIGV4cGxpY2l0IGZvcmNlZC1jb2xvciBtb2RlLCB3ZSBjYW4gdXNlIHRoZSBIaWdobGlnaHQgc3lzdGVtXG4gICAgLy8gY29sb3IgZm9yIHRoZSBvdXRsaW5lIHRvIGJldHRlciBtYXRjaCBmb2N1cyBzdGF0ZXMgb2YgbmF0aXZlIGNvbnRyb2xzXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICBvdXRsaW5lLWNvbG9yOiBIaWdobGlnaHQ7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogMCAwIDAgJGdvdnVrLXJhZGlvcy1mb2N1cy13aWR0aCAkZ292dWstZm9jdXMtY29sb3VyO1xuICB9XG5cbiAgLy8gU2VsZWN0ZWQgc3RhdGVcbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6Y2hlY2tlZCArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLmdvdnVrLXJhZGlvc19faW5wdXQ6ZGlzYWJsZWQsXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmRpc2FibGVkICsgLmdvdnVrLXJhZGlvc19fbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmRpc2FibGVkICsgLmdvdnVrLXJhZGlvc19fbGFiZWwge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIElubGluZSByYWRpb3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLmdvdnVrLXJhZGlvcy0taW5saW5lIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSAoJGZyb206IHRhYmxldCkge1xuICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG5cbiAgICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGdvdnVrLXNwYWNpbmcoNCk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmV2ZW50IGlubGluZSBtb2RpZmllciBiZWluZyB1c2VkIHdpdGggY29uZGl0aW9uYWwgcmV2ZWFsc1xuICAgICYuZ292dWstcmFkaW9zLS1jb25kaXRpb25hbCB7XG4gICAgICAuZ292dWstcmFkaW9zX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGl2aWRlcnMgKCdvcicpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC5nb3Z1ay1yYWRpb3NfX2RpdmlkZXIge1xuICAgICRnb3Z1ay1kaXZpZGVyLXNpemU6ICRnb3Z1ay1yYWRpb3Mtc2l6ZSAhZGVmYXVsdDtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSk7XG4gICAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gICAgd2lkdGg6ICRnb3Z1ay1kaXZpZGVyLXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ29uZGl0aW9uYWwgcmV2ZWFsc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBUaGUgbmFycm93IGJvcmRlciBpcyB1c2VkIGluIHRoZSBjb25kaXRpb25hbCByZXZlYWxzIGJlY2F1c2UgdGhlIGJvcmRlciBoYXNcbiAgLy8gdG8gYmUgYW4gZXZlbiBudW1iZXIgaW4gb3JkZXIgdG8gYmUgY2VudHJlZCB1bmRlciB0aGUgNDBweCBjaGVja2JveCBvciByYWRpby5cbiAgJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aDogJGdvdnVrLWJvcmRlci13aWR0aC1uYXJyb3c7XG4gIC8vIENhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIHBhZGRpbmcgbmVlZGVkIHRvIGtlZXAgdGhlIGJvcmRlciBjZW50ZXJlZCBhZ2FpbnN0IHRoZSByYWRpb3MuXG4gICRjb25kaXRpb25hbC1ib3JkZXItcGFkZGluZzogKCRnb3Z1ay1yYWRpb3Mtc2l6ZSAvIDIpIC0gKCRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggLyAyKTtcbiAgLy8gTW92ZSB0aGUgYm9yZGVyIGNlbnRlcmVkIHdpdGggdGhlIHJhZGlvc1xuICAkY29uZGl0aW9uYWwtbWFyZ2luLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItcGFkZGluZztcbiAgLy8gTW92ZSB0aGUgY29udGVudHMgb2YgdGhlIGNvbmRpdGlvbmFsIGlubGluZSB3aXRoIHRoZSBsYWJlbFxuICAkY29uZGl0aW9uYWwtcGFkZGluZy1sZWZ0OiAkY29uZGl0aW9uYWwtYm9yZGVyLXBhZGRpbmcgKyAkZ292dWstcmFkaW9zLWxhYmVsLXBhZGRpbmctbGVmdC1yaWdodDtcblxuICAuZ292dWstcmFkaW9zX19jb25kaXRpb25hbCB7XG4gICAgQGluY2x1ZGUgZ292dWstcmVzcG9uc2l2ZS1tYXJnaW4oNCwgXCJib3R0b21cIik7XG4gICAgbWFyZ2luLWxlZnQ6ICRjb25kaXRpb25hbC1tYXJnaW4tbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb25kaXRpb25hbC1wYWRkaW5nLWxlZnQ7XG4gICAgYm9yZGVyLWxlZnQ6ICRjb25kaXRpb25hbC1ib3JkZXItd2lkdGggc29saWQgJGdvdnVrLWJvcmRlci1jb2xvdXI7XG5cbiAgICAuanMtZW5hYmxlZCAmLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU21hbGwgY2hlY2tib3hlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAuZ292dWstcmFkaW9zLS1zbWFsbCB7XG5cbiAgICAkaW5wdXQtb2Zmc2V0OiAoJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplKSAvIDI7XG4gICAgJGxhYmVsLW9mZnNldDogJGdvdnVrLXRvdWNoLXRhcmdldC1zaXplIC0gJGlucHV0LW9mZnNldDtcblxuICAgIC5nb3Z1ay1yYWRpb3NfX2l0ZW0ge1xuICAgICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC8vIFNoaWZ0IHRoZSB0b3VjaCB0YXJnZXQgaW50byB0aGUgbGVmdCBtYXJnaW4gc28gdGhhdCB0aGUgdmlzaWJsZSBlZGdlIG9mXG4gICAgLy8gdGhlIGNvbnRyb2wgaXMgYWxpZ25lZFxuICAgIC8vXG4gICAgLy8gICDilIZXaGljaCBjb2xvdXIgaXMgeW91ciBmYXZvdXJpdGU/XG4gICAgLy8gIOKUjOKUhuKUgOKUgOKUgOKUkFxuICAgIC8vICDilILilIYoKSDilIIgUHVycGxlXG4gICAgLy8gIOKUlOKUhuKWsuKUgOKUgOKUmFxuICAgIC8vICDilrLilIbilJTilIAgUmFkaW8gcHNldWRvIGVsZW1lbnQsIGFsaWduZWQgd2l0aCBtYXJnaW5cbiAgICAvLyAg4pSU4pSA4pSA4pSAIFRvdWNoIHRhcmdldCAoaW52aXNpYmxlIGlucHV0KSwgc2hpZnRlZCBpbnRvIHRoZSBtYXJnaW5cbiAgICAuZ292dWstcmFkaW9zX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1ub3QtaWU4IHtcbiAgICAgICAgbGVmdDogJGlucHV0LW9mZnNldCAqIC0xO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplICogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgbGFiZWwuXG4gICAgLy9cbiAgICAvLyBVbmxpa2UgbGFyZ2VyIHJhZGlvcywgd2UgYWxzbyBoYXZlIHRvIGZsb2F0IHRoZSBsYWJlbCBpbiBvcmRlciB0b1xuICAgIC8vICdzaHJpbmsnIGl0LCBwcmV2ZW50aW5nIHRoZSBob3ZlciBzdGF0ZSBmcm9tIGtpY2tpbmcgaW4gYWNyb3NzIHRoZSBmdWxsXG4gICAgLy8gd2lkdGggb2YgdGhlIHBhcmVudCBlbGVtZW50LlxuICAgIC5nb3Z1ay1yYWRpb3NfX2xhYmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICBwYWRkaW5nOiAxM3B4IGdvdnVrLXNwYWNpbmcoMykgMTNweCAxcHg7XG4gICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgICBwYWRkaW5nOiAxMXB4IGdvdnVrLXNwYWNpbmcoMykgMTBweCAxcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gKCApIFJhZGlvIHJpbmdcbiAgICAvL1xuICAgIC8vIFJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgY29udHJvbCBbMV0sIHZlcnRpY2FsbHkgY2VudGVyaW5nIGl0IHdpdGhpbiB0aGVcbiAgICAvLyB0b3VjaCB0YXJnZXQgWzJdXG4gICAgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIHRvcDogJGlucHV0LW9mZnNldCAtICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50OyAvLyAyXG4gICAgICB3aWR0aDogJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplOyAvLyAxXG4gICAgICBoZWlnaHQ6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTsgLy8gMVxuICAgIH1cblxuICAgIC8vICDigKIgIFJhZGlvIGJ1dHRvblxuICAgIC8vXG4gICAgLy8gUmVkdWNlIHRoZSBzaXplIG9mIHRoZSAnYnV0dG9uJyBhbmQgY2VudGVyIGl0IHdpdGhpbiB0aGUgcmluZ1xuICAgIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmFmdGVyIHtcbiAgICAgIHRvcDogMTVweDtcbiAgICAgIGxlZnQ6IDdweDtcbiAgICAgIGJvcmRlci13aWR0aDogNXB4O1xuICAgIH1cblxuICAgIC8vIEZpeCBwb3NpdGlvbiBvZiBoaW50IHdpdGggc21hbGwgcmFkaW9zXG4gICAgLy9cbiAgICAvLyBEbyBub3QgdXNlIGhpbnRzIHdpdGggc21hbGwgcmFkaW9zIOKAkyBiZWNhdXNlIHRoZXkncmUgd2l0aGluIHRoZSBpbnB1dFxuICAgIC8vIHdyYXBwZXIgdGhleSB0cmlnZ2VyIHRoZSBob3ZlciBzdGF0ZSwgYnV0IGNsaWNraW5nIHRoZW0gZG9lc24ndCBhY3R1YWxseVxuICAgIC8vIGFjdGl2YXRlIHRoZSBjb250cm9sLlxuICAgIC8vXG4gICAgLy8gKElmIHlvdSBkbyB1c2UgdGhlbSwgdGhleSB3b24ndCBsb29rIGNvbXBsZXRlbHkgYnJva2VuLi4uIGJ1dCBzZXJpb3VzbHksXG4gICAgLy8gZG9uJ3QgdXNlIHRoZW0pXG4gICAgLmdvdnVrLXJhZGlvc19faGludCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjb25kaXRpb25hbCByZXZlYWxzIHdpdGggc21hbGwgcmFkaW9zXG4gICAgLmdvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwge1xuICAgICAgJG1hcmdpbi1sZWZ0OiAoJGdvdnVrLXNtYWxsLXJhZGlvcy1zaXplIC8gMikgLSAoJGNvbmRpdGlvbmFsLWJvcmRlci13aWR0aCAvIDIpO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGVmdDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGxhYmVsLW9mZnNldCAtICgkbWFyZ2luLWxlZnQgKyAkY29uZGl0aW9uYWwtYm9yZGVyLXdpZHRoKTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5nb3Z1ay1yYWRpb3NfX2RpdmlkZXIge1xuICAgICAgd2lkdGg6ICRnb3Z1ay1zbWFsbC1yYWRpb3Mtc2l6ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMSk7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdGUgZm9yIHNtYWxsIHJhZGlvcy5cbiAgICAvL1xuICAgIC8vIFdlIHVzZSBhIGhvdmVyIHN0YXRlIGZvciBzbWFsbCByYWRpb3MgYmVjYXVzZSB0aGUgdG91Y2ggdGFyZ2V0IHNpemVcbiAgICAvLyBpcyBzbyBtdWNoIGxhcmdlciB0aGFuIHRoZWlyIHZpc2libGUgc2l6ZSwgYW5kIHNvIHdlIG5lZWQgdG8gcHJvdmlkZVxuICAgIC8vIGZlZWRiYWNrIHRvIHRoZSB1c2VyIGFzIHRvIHdoaWNoIHJhZGlvIHRoZXkgd2lsbCBzZWxlY3Qgd2hlbiB0aGVpclxuICAgIC8vIGN1cnNvciBpcyBvdXRzaWRlIG9mIHRoZSB2aXNpYmxlIGFyZWEuXG4gICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpub3QoOmRpc2FibGVkKSArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkZ292dWstaG92ZXItd2lkdGggJGdvdnVrLWhvdmVyLWNvbG91cjtcbiAgICB9XG5cbiAgICAvLyBCZWNhdXNlIHdlJ3ZlIG92ZXJyaWRkZW4gdGhlIGJvcmRlci1zaGFkb3cgcHJvdmlkZWQgYnkgdGhlIGZvY3VzIHN0YXRlLFxuICAgIC8vIHdlIG5lZWQgdG8gcmVkZWZpbmUgdGhhdCB0b28uXG4gICAgLy9cbiAgICAvLyBXZSB1c2UgdHdvIGJveCBzaGFkb3dzLCBvbmUgdGhhdCByZXN0b3JlcyB0aGUgb3JpZ2luYWwgZm9jdXMgc3RhdGUgWzFdXG4gICAgLy8gYW5kIGFub3RoZXIgdGhhdCB0aGVuIGFwcGxpZXMgdGhlIGhvdmVyIHN0YXRlIFsyXS5cbiAgICAuZ292dWstcmFkaW9zX19pdGVtOmhvdmVyIC5nb3Z1ay1yYWRpb3NfX2lucHV0OmZvY3VzICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91ciwgLy8gMVxuICAgICAgICAwIDAgMCAkZ292dWstaG92ZXItd2lkdGggICAgICAgICRnb3Z1ay1ob3Zlci1jb2xvdXI7IC8vIDJcbiAgICB9XG5cbiAgICAvLyBGb3IgZGV2aWNlcyB0aGF0IGV4cGxpY2l0bHkgZG9uJ3Qgc3VwcG9ydCBob3ZlciwgZG9uJ3QgcHJvdmlkZSBhIGhvdmVyXG4gICAgLy8gc3RhdGUgKGUuZy4gb24gdG91Y2ggZGV2aWNlcyBsaWtlIGlPUykuXG4gICAgLy9cbiAgICAvLyBXZSBjYW4ndCB1c2UgYEBtZWRpYSAoaG92ZXI6IGhvdmVyKWAgYmVjYXVzZSB3ZSB3b3VsZG4ndCBnZXQgdGhlIGhvdmVyXG4gICAgLy8gc3RhdGUgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGBAbWVkaWEgKGhvdmVyKWAgKGxpa2UgSW50ZXJuZXRcbiAgICAvLyBFeHBsb3Jlcikg4oCTIHNvIHdlIGhhdmUgdG8gJ3VuZG8nIHRoZSBob3ZlciBzdGF0ZSBpbnN0ZWFkLlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAuZ292dWstcmFkaW9zX19pdGVtOmhvdmVyIC5nb3Z1ay1yYWRpb3NfX2lucHV0Om5vdCg6ZGlzYWJsZWQpICsgLmdvdnVrLXJhZGlvc19fbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgLmdvdnVrLXJhZGlvc19faXRlbTpob3ZlciAuZ292dWstcmFkaW9zX19pbnB1dDpmb2N1cyArIC5nb3Z1ay1yYWRpb3NfX2xhYmVsOmJlZm9yZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRnb3Z1ay1yYWRpb3MtZm9jdXMtd2lkdGggJGdvdnVrLWZvY3VzLWNvbG91cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9lcnJvci1tZXNzYWdlL2luZGV4XCI7XG5AaW1wb3J0IFwiLi4vaGludC9pbmRleFwiO1xuQGltcG9ydCBcIi4uL2xhYmVsL2luZGV4XCI7XG5cbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvc2VsZWN0XCIpIHtcbiAgLmdvdnVrLXNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTksICRsaW5lLWhlaWdodDogMS4yNSk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyBzaG91bGQgdGhpcyBiZSBnbG9iYWw/XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBAaWYgJGdvdnVrLXR5cG9ncmFwaHktdXNlLXJlbSB7XG4gICAgICBoZWlnaHQ6IGdvdnVrLXB4LXRvLXJlbSg0MHB4KTtcbiAgICB9XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygxKTsgLy8gd2FzIDVweCA0cHggNHB4IC0gc2l6ZSBvZiBpdCBzaG91bGQgYmUgYWRqdXN0ZWQgdG8gbWF0Y2ggb3RoZXIgZm9ybSBlbGVtZW50c1xuICAgIGJvcmRlcjogJGdvdnVrLWJvcmRlci13aWR0aC1mb3JtLWVsZW1lbnQgc29saWQgJGdvdnVrLWlucHV0LWJvcmRlci1jb2xvdXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6ICRnb3Z1ay1mb2N1cy13aWR0aCBzb2xpZCAkZ292dWstZm9jdXMtY29sb3VyO1xuICAgICAgLy8gRW5zdXJlIG91dGxpbmUgYXBwZWFycyBvdXRzaWRlIG9mIHRoZSBlbGVtZW50XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIC8vIERvdWJsZSB0aGUgYm9yZGVyIGJ5IGFkZGluZyBpdHMgd2lkdGggYWdhaW4uIFVzZSBgYm94LXNoYWRvd2AgdG8gZG9cbiAgICAgIC8vIHRoaXMgaW5zdGVhZCBvZiBjaGFuZ2luZyBgYm9yZGVyLXdpZHRoYCAod2hpY2ggY2hhbmdlcyBlbGVtZW50IHNpemUpIGFuZFxuICAgICAgLy8gc2luY2UgYG91dGxpbmVgIGlzIGFscmVhZHkgdXNlZCBmb3IgdGhlIHllbGxvdyBmb2N1cyBzdGF0ZS5cbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50O1xuXG4gICAgICBAaW5jbHVkZSBnb3Z1ay1pZi1pZTgge1xuICAgICAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IGBib3gtc2hhZG93YCBzbyBkb3VibGUgdGhlIGJvcmRlciB3aXRoXG4gICAgICAgIC8vIGBib3JkZXItd2lkdGhgLlxuICAgICAgICBib3JkZXItd2lkdGg6ICRnb3Z1ay1ib3JkZXItd2lkdGgtZm9ybS1lbGVtZW50ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ292dWstc2VsZWN0IG9wdGlvbjphY3RpdmUsXG4gIC5nb3Z1ay1zZWxlY3Qgb3B0aW9uOmNoZWNrZWQsXG4gIC5nb3Z1ay1zZWxlY3Q6Zm9jdXM6Oi1tcy12YWx1ZSB7XG4gICAgY29sb3I6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvdnVrLWNvbG91cihcImJsdWVcIik7XG4gIH1cblxuICAuZ292dWstc2VsZWN0LS1lcnJvciB7XG4gICAgYm9yZGVyOiAkZ292dWstYm9yZGVyLXdpZHRoLWZvcm0tZWxlbWVudC1lcnJvciBzb2xpZCAkZ292dWstZXJyb3ItY29sb3VyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRnb3Z1ay1pbnB1dC1ib3JkZXItY29sb3VyO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL2NvbXBvbmVudC9za2lwLWxpbmtcIikge1xuICAuZ292dWstc2tpcC1saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW4tZm9jdXNhYmxlO1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uO1xuICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstZGVjb3JhdGlvbjtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1yZXNwb25zaXZlKCRzaXplOiAxNik7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDIpIGdvdnVrLXNwYWNpbmcoMyk7XG5cbiAgICAvLyBSZXNwZWN0ICdkaXNwbGF5IGN1dG91dCcgc2FmZSBhcmVhIChhdm9pZHMgbm90Y2hlcyBhbmQgcm91bmRlZCBjb3JuZXJzKVxuICAgIEBzdXBwb3J0cyAocGFkZGluZzogdW5xdW90ZShcIm1heChjYWxjKDBweCkpXCIpKSB7XG4gICAgICAkcGFkZGluZy1zYWZlLWFyZWEtcmlnaHQ6IC13ZWJraXQtY2FsYygje2dvdnVrLXNwYWNpbmcoMyl9ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgJHBhZGRpbmctc2FmZS1hcmVhLXJpZ2h0OiBjYWxjKCN7Z292dWstc3BhY2luZygzKX0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAkcGFkZGluZy1zYWZlLWFyZWEtbGVmdDogLXdlYmtpdC1jYWxjKCN7Z292dWstc3BhY2luZygzKX0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICRwYWRkaW5nLXNhZmUtYXJlYS1sZWZ0OiBjYWxjKCN7Z292dWstc3BhY2luZygzKX0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcblxuICAgICAgLy8gVXNlIG1heCgpIHRvIHBpY2sgbGFyZ2VzdCBwYWRkaW5nLCBkZWZhdWx0IG9yIHdpdGggc2FmZSBhcmVhXG4gICAgICAvLyBFc2NhcGVkIGR1ZSB0byBTYXNzIG1heCgpIHZzLiBDU1MgbmF0aXZlIG1heCgpXG4gICAgICBwYWRkaW5nLXJpZ2h0OiB1bnF1b3RlKFwibWF4KCN7Z292dWstc3BhY2luZygzKX0sICN7JHBhZGRpbmctc2FmZS1hcmVhLXJpZ2h0fSlcIik7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHVucXVvdGUoXCJtYXgoI3tnb3Z1ay1zcGFjaW5nKDMpfSwgI3skcGFkZGluZy1zYWZlLWFyZWEtbGVmdH0pXCIpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogJGdvdnVrLWZvY3VzLXdpZHRoIHNvbGlkICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb3Z1ay1mb2N1cy1jb2xvdXI7XG5cbiAgICAgIC8vIFVuZG8gdW53YW50ZWQgY2hhbmdlcyB3aGVuIGdsb2JhbCBzdHlsZXMgYXJlIGVuYWJsZWRcbiAgICAgIEBpZiAoJGdvdnVrLWdsb2JhbC1zdHlsZXMpIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvdGFibGVcIikge1xuICAuZ292dWstdGFibGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5KTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig2LCBcImJvdHRvbVwiKTtcblxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2hlYWRlciB7XG4gICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyLFxuICAuZ292dWstdGFibGVfX2NlbGwge1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgZ292dWstc3BhY2luZyg0KSBnb3Z1ay1zcGFjaW5nKDIpIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAvLyBHT1YuVUsgRWxlbWVudHMgc2V0cyB0aGUgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBmb3IgYWxsIGhlYWRlcnMgYW5kIGNlbGxzXG4gICAgLy8gaW4gdGFibGVzLlxuICAgIEBpbmNsdWRlIGdvdnVrLWNvbXBhdGliaWxpdHkoZ292dWtfZWxlbWVudHMpIHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2VsbC0tbnVtZXJpYyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR0YWJ1bGFyOiB0cnVlKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9faGVhZGVyLS1udW1lcmljLFxuICAuZ292dWstdGFibGVfX2NlbGwtLW51bWVyaWMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19oZWFkZXI6bGFzdC1jaGlsZCxcbiAgLmdvdnVrLXRhYmxlX19jZWxsOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24ge1xuICAgIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktd2VpZ2h0LWJvbGQ7XG5cbiAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAvLyBNb2RpZmllcnMgdGhhdCBtYWtlIGNhcHRpb25zIGxvb2sgbW9yZSBsaWtlIHRoZWlyIGVxdWl2YWxlbnQgaGVhZGluZ3NcblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLXhsIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiA0OCwgJHdlaWdodDogYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgfVxuXG4gIC5nb3Z1ay10YWJsZV9fY2FwdGlvbi0tbCB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMzYsICR3ZWlnaHQ6IGJvbGQpO1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuZ292dWstdGFibGVfX2NhcHRpb24tLW0ge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDI0LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICB9XG5cbiAgLmdvdnVrLXRhYmxlX19jYXB0aW9uLS1zIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOiAxOSwgJHdlaWdodDogYm9sZCk7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9jb21wb25lbnQvd2FybmluZy10ZXh0XCIpIHtcbiAgLmdvdnVrLXdhcm5pbmctdGV4dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGdvdnVrLXJlc3BvbnNpdmUtbWFyZ2luKDYsIFwiYm90dG9tXCIpO1xuICAgIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMikgMDtcbiAgfVxuXG4gIC5nb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZSB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xuICB9XG5cbiAgLmdvdnVrLXdhcm5pbmctdGV4dF9faWNvbiB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogZmFsc2UsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuXG4gICAgbWluLXdpZHRoOiAzNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG4gICAgbWFyZ2luLXRvcDogLTdweDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxuXG4gICAgLy8gV2hlbiBhIHVzZXIgY3VzdG9taXNlcyB0aGVpciBjb2xvdXJzIHRoZSBiYWNrZ3JvdW5kIGNvbG91ciB3aWxsIG9mdGVuIGJlIHJlbW92ZWQuXG4gICAgLy8gQWRkaW5nIGEgYm9yZGVyIHRvIHRoZSBjb21wb25lbnQga2VlcHMgaXQncyBzaGFwZSBhcyBhIGNpcmNsZS5cbiAgICBib3JkZXI6IDNweCBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICBjb2xvcjogZ292dWstY29sb3VyKFwid2hpdGVcIik7XG4gICAgYmFja2dyb3VuZDogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG5cbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDI5cHg7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvLyBQcmV2ZW50IHRoZSBleGNsYW1hdGlvbiBtYXJrIGZyb20gYmVpbmcgaW5jbHVkZWQgd2hlbiB0aGUgd2FybmluZyB0ZXh0XG4gICAgLy8gaXMgY29waWVkLCBmb3IgZXhhbXBsZS5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIC8vIEltcHJvdmUgcmVuZGVyaW5nIGluIFdpbmRvd3MgSGlnaCBDb250cmFzdCBNb2RlIChFZGdlKSwgd2hlcmUgYVxuICAgIC8vIHJlYWRhYmlsaXR5IGJhY2twbGF0ZSBiZWhpbmQgdGhlIGV4Y2xhbWF0aW9uIG1hcmsgb2JzY3VyZXMgdGhlIGNpcmNsZVxuICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBib3JkZXItY29sb3I6IHdpbmRvd1RleHQ7XG4gICAgICBjb2xvcjogd2luZG93VGV4dDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay13YXJuaW5nLXRleHRfX3RleHQge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvbnQoJHNpemU6IDE5LCAkd2VpZ2h0OiBib2xkKTtcbiAgICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJjbGVhcmZpeFwiO1xuQGltcG9ydCBcInZpc3VhbGx5LWhpZGRlblwiO1xuIiwiQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL3V0aWxpdGllcy9jbGVhcmZpeFwiKSB7XG4gIC5nb3Z1ay1jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay91dGlsaXRpZXMvdmlzdWFsbHktaGlkZGVuXCIpIHtcbiAgLmdvdnVrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgQGluY2x1ZGUgZ292dWstdmlzdWFsbHktaGlkZGVuO1xuICB9XG5cbiAgLmdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGUge1xuICAgIEBpbmNsdWRlIGdvdnVrLXZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJkaXNwbGF5XCI7XG5AaW1wb3J0IFwic3BhY2luZ1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJ3aWR0aFwiO1xuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5AaW5jbHVkZSBnb3Z1ay1leHBvcnRzKFwiZ292dWsvb3ZlcnJpZGVzL2Rpc3BsYXlcIikge1xuICAuZ292dWstXFwhLWRpc3BsYXktaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5nb3Z1ay1cXCEtZGlzcGxheS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmdvdnVrLVxcIS1kaXNwbGF5LW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRtZWRpYS10eXBlOiBwcmludCkge1xuICAgIC5nb3Z1ay1cXCEtZGlzcGxheS1ub25lLXByaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiBub3QgbWl4aW4tZXhpc3RzKFwiZ292dWstZXhwb3J0c1wiKSB7XG4gIEB3YXJuIFwiSW1wb3J0aW5nIGl0ZW1zIGZyb20gdGhlIG92ZXJyaWRlcyBsYXllciB3aXRob3V0IGZpcnN0IGltcG9ydGluZyBgYmFzZWAgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsgYXMgb2YgR09WLlVLIEZyb250ZW5kIHY0LjAuXCI7XG59XG5cbkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3ZlcnJpZGVzXG4vLy8vXG5cbi8vLyBEaXJlY3Rpb25zIGZvciBzcGFjaW5nXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuJF9zcGFjaW5nLWRpcmVjdGlvbnM6IChcbiAgXCJ0b3BcIixcbiAgXCJyaWdodFwiLFxuICBcImJvdHRvbVwiLFxuICBcImxlZnRcIlxuKSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgb3ZlcnJpZGUgY2xhc3Nlc1xuLy8vXG4vLy8gR2VuZXJhdGUgc3BhY2luZyBvdmVycmlkZSBjbGFzc2VzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgKGUuZy4gbWFyZ2luKVxuLy8vIGZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFByb3BlcnR5IHRvIGFkZCBzcGFjaW5nIHRvIChlLmcuICdtYXJnaW4nKVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmdvdnVrLVxcIS1tYXJnaW4tMCB7XG4vLy8gICAgICBtYXJnaW46IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgLmdvdnVrLVxcIS1tYXJnaW4tdG9wLTEge1xuLy8vICAgICBtYXJnaW4tdG9wOiBbd2hhdGV2ZXIgc3BhY2luZyBwb2ludCAxIGlzLi4uXVxuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoJHByb3BlcnR5KSB7XG4gIC8vIEZvciBlYWNoIHBvaW50IGluIHRoZSBzcGFjaW5nIHNjYWxlIChkZWZpbmVkIGluIHNldHRpbmdzKSwgY3JlYXRlIGFuXG4gIC8vIG92ZXJyaWRlIHRoYXQgYWZmZWN0cyBhbGwgZGlyZWN0aW9ucy4uLlxuICBAZWFjaCAkc2NhbGUtcG9pbnQsICRzY2FsZS1tYXAgaW4gJGdvdnVrLXNwYWNpbmctcmVzcG9uc2l2ZS1zY2FsZSB7XG5cbiAgICAuZ292dWstXFwhLSN7JHByb3BlcnR5fS0jeyRzY2FsZS1wb2ludH0ge1xuXG4gICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCBcImFsbFwiLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyAuLi4gYW5kIHRoZW4gYW4gb3ZlcnJpZGUgZm9yIGVhY2ggaW5kaXZpZHVhbCBkaXJlY3Rpb25cbiAgICBAZWFjaCAkZGlyZWN0aW9uIGluICRfc3BhY2luZy1kaXJlY3Rpb25zIHtcblxuICAgICAgLmdvdnVrLVxcIS0jeyRwcm9wZXJ0eX0tI3skZGlyZWN0aW9ufS0jeyRzY2FsZS1wb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBfZ292dWstcmVzcG9uc2l2ZS1zcGFjaW5nKCRzY2FsZS1wb2ludCwgJHByb3BlcnR5LCAkZGlyZWN0aW9uLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy9zcGFjaW5nXCIpIHtcbiAgQGluY2x1ZGUgX2dvdnVrLWdlbmVyYXRlLXNwYWNpbmctb3ZlcnJpZGVzKFwibWFyZ2luXCIpO1xuICBAaW5jbHVkZSBfZ292dWstZ2VuZXJhdGUtc3BhY2luZy1vdmVycmlkZXMoXCJwYWRkaW5nXCIpO1xufVxuIiwiQGlmIG5vdCBtaXhpbi1leGlzdHMoXCJnb3Z1ay1leHBvcnRzXCIpIHtcbiAgQHdhcm4gXCJJbXBvcnRpbmcgaXRlbXMgZnJvbSB0aGUgb3ZlcnJpZGVzIGxheWVyIHdpdGhvdXQgZmlyc3QgaW1wb3J0aW5nIGBiYXNlYCBpcyBkZXByZWNhdGVkLCBhbmQgd2lsbCBubyBsb25nZXIgd29yayBhcyBvZiBHT1YuVUsgRnJvbnRlbmQgdjQuMC5cIjtcbn1cblxuQGltcG9ydCBcIi4uL2Jhc2VcIjtcblxuQGluY2x1ZGUgZ292dWstZXhwb3J0cyhcImdvdnVrL292ZXJyaWRlcy90eXBvZ3JhcGh5XCIpIHtcbiAgLy8gRm9udCBzaXplIGFuZCBsaW5lIGhlaWdodFxuXG4gIC8vIEdlbmVyYXRlIHR5cG9ncmFwaHkgb3ZlcnJpZGUgY2xhc3NlcyBmb3IgZWFjaCByZXNwb25zaXZlIGZvbnQgbWFwIGluIHRoZVxuICAvLyB0eXBvZ3JhcGh5IHNjYWxlIGVnIC5nb3Z1ay1cXCEtZm9udC1zaXplLTgwXG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRnb3Z1ay10eXBvZ3JhcGh5LXNjYWxlKSB7XG4gICAgLmdvdnVrLVxcIS1mb250LXNpemUtI3skc2l6ZX0ge1xuICAgICAgQGluY2x1ZGUgZ292dWstdHlwb2dyYXBoeS1yZXNwb25zaXZlKCRzaXplLCAkaW1wb3J0YW50OiB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZWlnaHRzXG5cbiAgLmdvdnVrLVxcIS1mb250LXdlaWdodC1yZWd1bGFyIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1yZWd1bGFyKCRpbXBvcnRhbnQ6IHRydWUpO1xuICB9XG5cbiAgLmdvdnVrLVxcIS1mb250LXdlaWdodC1ib2xkIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay10eXBvZ3JhcGh5LXdlaWdodC1ib2xkKCRpbXBvcnRhbnQ6IHRydWUpO1xuICB9XG59XG4iLCJAaWYgbm90IG1peGluLWV4aXN0cyhcImdvdnVrLWV4cG9ydHNcIikge1xuICBAd2FybiBcIkltcG9ydGluZyBpdGVtcyBmcm9tIHRoZSBvdmVycmlkZXMgbGF5ZXIgd2l0aG91dCBmaXJzdCBpbXBvcnRpbmcgYGJhc2VgIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIG5vIGxvbmdlciB3b3JrIGFzIG9mIEdPVi5VSyBGcm9udGVuZCB2NC4wLlwiO1xufVxuXG5AaW1wb3J0IFwiLi4vYmFzZVwiO1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcbkBpbmNsdWRlIGdvdnVrLWV4cG9ydHMoXCJnb3Z1ay9vdmVycmlkZXMvd2lkdGhcIikge1xuICAuZ292dWstXFwhLXdpZHRoLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLXRocmVlLXF1YXJ0ZXJzIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1cXCEtd2lkdGgtdHdvLXRoaXJkcyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHdpZHRoOiA2Ni42NiUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuZ292dWstXFwhLXdpZHRoLW9uZS1oYWxmIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1cXCEtd2lkdGgtb25lLXRoaXJkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgd2lkdGg6IDMzLjMzJSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5nb3Z1ay1cXCEtd2lkdGgtb25lLXF1YXJ0ZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vYWxwaGFnb3YvZ292dWtfcHVibGlzaGluZ19jb21wb25lbnRzL2Jsb2IvdjIyLjAuMC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dvdnVrX3B1Ymxpc2hpbmdfY29tcG9uZW50cy9jb21wb25lbnRzL19zdGVwLWJ5LXN0ZXAtbmF2LWhlYWRlci5zY3NzXG4vLyBOb3RlIC0gdGhpcyBjb2RlIGZvciBwcm90b3R5cGUgcHVycG9zZXMgb25seS4gSXQgaXMgbm90IHByb2R1Y3Rpb24gY29kZS5cblxuLmFwcC1zdGVwLW5hdi1oZWFkZXIge1xuICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJsaWdodC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS00XCIpO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggZ292dWstY29sb3VyKFwibWlkLWdyZXlcIiwgJGxlZ2FjeTogXCJncmV5LTJcIik7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMlwiKTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgcGFkZGluZzogZ292dWstc3BhY2luZygzKTtcbiAgfVxufVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTZWxlY3RvckZvcm1hdFxuXG4uYXBwLXN0ZXAtbmF2LWhlYWRlcl9fcGFydC1vZiB7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoMTYsICR3ZWlnaHQ6IGJvbGQpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWJvdHRvbTogLjJlbTtcbn1cblxuLmFwcC1zdGVwLW5hdi1oZWFkZXJfX3RpdGxlIHtcbiAgQGV4dGVuZCAlZ292dWstbGluaztcbiAgQGluY2x1ZGUgZ292dWstZm9udCgyNCwgJHdlaWdodDogYm9sZCk7XG59XG5cbi8vIHNjc3MtbGludDplbmFibGUgU2VsZWN0b3JGb3JtYXRcbiIsIi8vIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9nb3Z1a19wdWJsaXNoaW5nX2NvbXBvbmVudHMvYmxvYi92MjIuMC4wL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ292dWtfcHVibGlzaGluZ19jb21wb25lbnRzL2NvbXBvbmVudHMvX3N0ZXAtYnktc3RlcC1uYXYuc2Nzc1xuLy8gTm90ZSAtIHRoaXMgY29kZSBmb3IgcHJvdG90eXBlIHB1cnBvc2VzIG9ubHkuIEl0IGlzIG5vdCBwcm9kdWN0aW9uIGNvZGUuXG5cbiRzdHJva2Utd2lkdGg6IDJweDtcbiRzdHJva2Utd2lkdGgtbGFyZ2U6IDNweDtcbiRudW1iZXItY2lyY2xlLXNpemU6IDI2cHg7XG4kbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlOiAzNXB4O1xuJHRvcC1ib3JkZXI6IHNvbGlkIDJweCBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktM1wiKTtcblxuQG1peGluIHN0ZXAtbmF2LXZlcnRpY2FsLWxpbmUgKCRsaW5lLXN0eWxlOiBzb2xpZCkge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAkbGluZS1zdHlsZSAkc3Ryb2tlLXdpZHRoIGdvdnVrLWNvbG91cihcIm1pZC1ncmV5XCIsICRsZWdhY3k6IFwiZ3JleS0yXCIpO1xuICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcbn1cblxuQG1peGluIHN0ZXAtbmF2LWxpbmUtcG9zaXRpb24ge1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogKCRudW1iZXItY2lyY2xlLXNpemUgLyAyKSAtICgkc3Ryb2tlLXdpZHRoIC8gMik7XG59XG5cbkBtaXhpbiBzdGVwLW5hdi1saW5lLXBvc2l0aW9uLWxhcmdlIHtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6ICgkbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlIC8gMikgLSAoJHN0cm9rZS13aWR0aC1sYXJnZSAvIDIpO1xuICBib3JkZXItd2lkdGg6ICRzdHJva2Utd2lkdGgtbGFyZ2U7XG59XG5cbi8vIGN1c3RvbSBtaXhpbiBhcyBnb3Z1ay1mb250IGRvZXMgdW5kZXNpcmFibGUgdGhpbmdzIGF0IGRpZmZlcmVudCBicmVha3BvaW50c1xuLy8gd2Ugd2FudCB0byBlbnN1cmUgdGhhdCBib3RoIGxhcmdlIGFuZCBzbWFsbCBzdGVwIG5hdnMgaGF2ZSB0aGUgc2FtZSBzaXplIGZvbnQgb24gbW9iaWxlXG4vLyB0aGlzIHdpbGwgc3RvcCB0ZXh0IHJlc2l6aW5nIGlmIGNvbXBhdGliaWxpdHkgbW9kZSBpcyB0dXJuZWQgb2ZmXG5AbWl4aW4gc3RlcC1uYXYtZm9udCgkc2l6ZSwgJHRhYmxldC1zaXplOiAkc2l6ZSwgJHdlaWdodDogbm9ybWFsLCAkbGluZS1oZWlnaHQ6IDEuMywgJHRhYmxldC1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0KSB7XG4gIEBpbmNsdWRlIGdvdnVrLXR5cG9ncmFwaHktY29tbW9uKCk7XG4gIGZvbnQtc2l6ZTogJHNpemUgKyBweDtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgIGZvbnQtc2l6ZTogJHRhYmxldC1zaXplICsgcHg7XG4gICAgbGluZS1oZWlnaHQ6ICR0YWJsZXQtbGluZS1oZWlnaHQ7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdiB7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNik7XG5cbiAgJi5hcHAtc3RlcC1uYXYtLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDkpO1xuICAgIH1cbiAgfVxuXG4gIC5qcy1lbmFibGVkICYuanMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2NvbnRyb2xzIHtcbiAgcGFkZGluZzogM3B4IDNweCAwIDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYXBwLXN0ZXAtbmF2X19idXR0b24ge1xuICBjb2xvcjogJGdvdnVrLWxpbmstY29sb3VyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGdvdnVrLWZvY3VzZWQtdGV4dDtcbiAgfVxufVxuXG4vLyByZW1vdmVzIGV4dHJhIGRvdHRlZCBvdXRsaW5lIGZyb20gYnV0dG9ucyBpbiBGaXJlZm94XG4vLyBvbiBmb2N1cyAoc3RhbmRhcmQgeWVsbG93IG91dGxpbmUgdW5hZmZlY3RlZClcbi5hcHAtc3RlcC1uYXZfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbn1cblxuLmFwcC1zdGVwLW5hdl9fYnV0dG9uLS10aXRsZSB7XG4gIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTksICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMS40KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxOSwgJHRhYmxldC1zaXplOiAyNCwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAxLjQpO1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2J1dHRvbi0tY29udHJvbHMge1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE0LCAkbGluZS1oZWlnaHQ6IDEpO1xuICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyAvLyB0aGlzIGFuZCByZWxhdGl2ZSBwb3NpdGlvbiBzdG9wcyBmb2N1cyBvdXRsaW5lIHVuZGVybGFwIHdpdGggYm9yZGVyIG9mIGFjY29yZGlvblxuICBwYWRkaW5nOiAuNWVtIDA7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNCwgJHRhYmxldC1zaXplOiAxNiwgJGxpbmUtaGVpZ2h0OiAxKTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19zdGVwcyB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLmFwcC1zdGVwLW5hdl9fc3RlcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDYpICsgZ292dWstc3BhY2luZygzKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBsaW5lIGRvd24gdGhlIHNpZGUgb2YgYSBzdGVwXG4gICY6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LXZlcnRpY2FsLWxpbmU7XG4gICAgQGluY2x1ZGUgc3RlcC1uYXYtbGluZS1wb3NpdGlvbjtcbiAgICB0b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGdvdnVrLXNwYWNpbmcoOSk7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBzdGVwLW5hdi1saW5lLXBvc2l0aW9uLWxhcmdlO1xuICAgICAgICB0b3A6IGdvdnVrLXNwYWNpbmcoNik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX3N0ZXA6bGFzdC1jaGlsZCB7XG4gIC8vIGxpdHRsZSBkYXNoIGF0IHRoZSBib3R0b20gb2YgdGhlIGxpbmVcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDY7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6ICRudW1iZXItY2lyY2xlLXNpemUgLyA0O1xuICAgIHdpZHRoOiAkbnVtYmVyLWNpcmNsZS1zaXplIC8gMjtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgJHN0cm9rZS13aWR0aCBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMlwiKTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gICAgLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gI3tnb3Z1ay1zcGFjaW5nKDMpfSk7IC8vIGZhbGxiYWNrIGZvciBpcGhvbmUgNFxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3tnb3Z1ay1zcGFjaW5nKDMpfSk7XG4gICAgLy8gc2Fzcy1saW50OmVuYWJsZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xuICAgIC8vIHNjc3MtbGludDplbmFibGUgRHVwbGljYXRlUHJvcGVydHlcbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXZfX2hlbHA6YWZ0ZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRudW1iZXItY2lyY2xlLXNpemUtbGFyZ2UgLyA0O1xuICAgICAgICB3aWR0aDogJG51bWJlci1jaXJjbGUtc2l6ZS1sYXJnZSAvIDI7XG4gICAgICAgIGJvcmRlci13aWR0aDogJHN0cm9rZS13aWR0aC1sYXJnZTtcbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3tnb3Z1ay1zcGFjaW5nKDYpfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX3N0ZXAtLWFjdGl2ZSB7XG4gICY6bGFzdC1jaGlsZDpiZWZvcmUsXG4gIC5hcHAtc3RlcC1uYXZfX2NpcmNsZS0tbnVtYmVyLFxuICAmOmFmdGVyLFxuICAuYXBwLXN0ZXAtbmF2X19oZWxwOmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IGdvdnVrLWNvbG91cihcImJsYWNrXCIpO1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2NpcmNsZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTtcbiAgdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogJG51bWJlci1jaXJjbGUtc2l6ZTtcbiAgaGVpZ2h0OiAkbnVtYmVyLWNpcmNsZS1zaXplO1xuICBjb2xvcjogZ292dWstY29sb3VyKFwiYmxhY2tcIik7XG4gIGJhY2tncm91bmQ6IGdvdnVrLWNvbG91cihcIndoaXRlXCIpO1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHRvcDogZ292dWstc3BhY2luZyg2KTtcbiAgICAgIHdpZHRoOiAkbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlO1xuICAgICAgaGVpZ2h0OiAkbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlO1xuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19jaXJjbGUtLW51bWJlciB7XG4gIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTYsICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMjNweCk7XG4gIGJvcmRlcjogc29saWQgJHN0cm9rZS13aWR0aCBnb3Z1ay1jb2xvdXIoXCJtaWQtZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMlwiKTtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE2LCAkdGFibGV0LXNpemU6IDE5LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDIzcHgsICR0YWJsZXQtbGluZS1oZWlnaHQ6IDMwcHgpO1xuXG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgYm9yZGVyLXdpZHRoOiAkc3Ryb2tlLXdpZHRoLWxhcmdlO1xuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19jaXJjbGUtLWxvZ2ljIHtcbiAgQGluY2x1ZGUgc3RlcC1uYXYtZm9udCgxNiwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAyOHB4KTtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE2LCAkdGFibGV0LXNpemU6IDE5LCAkd2VpZ2h0OiBib2xkLCAkbGluZS1oZWlnaHQ6IDI4cHgsICR0YWJsZXQtbGluZS1oZWlnaHQ6IDM0cHgpO1xuICB9XG59XG5cbi8vIG1ha2VzIHN1cmUgbG9naWMgdGV4dCBleHBhbmRzIHRvIHRoZSBsZWZ0IGlmIHRleHQgc2l6ZSBpcyB6b29tZWQsIHByZXZlbnRpbmcgb3ZlcmxhcFxuLmFwcC1zdGVwLW5hdl9fY2lyY2xlLWlubmVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5hcHAtc3RlcC1uYXZfX2NpcmNsZS1iYWNrZ3JvdW5kIHtcbiAgJHNoYWRvdy1vZmZzZXQ6IC4xZW07XG4gICRzaGFkb3ctY29sb3VyOiBnb3Z1ay1jb2xvdXIoXCJ3aGl0ZVwiKTtcblxuICAvLyB0byBtYWtlIG51bWJlcnMgcmVhZGFibGUgZm9yIHVzZXJzIHpvb21pbmcgdGV4dCBvbmx5IGluIGJyb3dzZXJzIHN1Y2ggYXMgRmlyZWZveFxuICB0ZXh0LXNoYWRvdzogMCAtI3skc2hhZG93LW9mZnNldH0gMCAkc2hhZG93LWNvbG91ciwgJHNoYWRvdy1vZmZzZXQgMCAwICRzaGFkb3ctY29sb3VyLCAwICRzaGFkb3ctb2Zmc2V0IDAgJHNoYWRvdy1jb2xvdXIsIC0jeyRzaGFkb3ctb2Zmc2V0fSAwIDAgJHNoYWRvdy1jb2xvdXI7XG59XG5cbi5hcHAtc3RlcC1uYXZfX2NpcmNsZS1zdGVwLWxhYmVsLFxuLmFwcC1zdGVwLW5hdl9fY2lyY2xlLXN0ZXAtY29sb24ge1xuICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG59XG5cbi5hcHAtc3RlcC1uYXZfX2hlYWRlciB7XG4gIHBhZGRpbmc6IGdvdnVrLXNwYWNpbmcoMykgMDtcbiAgYm9yZGVyLXRvcDogJHRvcC1ib3JkZXI7XG5cbiAgLmFwcC1zdGVwLW5hdi0tYWN0aXZlICYge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXZfX2J1dHRvbiB7XG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1mb2N1c2VkLXRleHQ7XG5cbiAgICAgIC5hcHAtc3RlcC1uYXZfX3RvZ2dsZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgZ292dWstZm9jdXNlZC10ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIC5hcHAtc3RlcC1uYXZfX2J1dHRvbjpub3QoOmZvY3VzKSxcbiAgICAuYXBwLXN0ZXAtbmF2X19jaXJjbGUge1xuICAgICAgY29sb3I6ICRnb3Z1ay1saW5rLWNvbG91cjtcbiAgICB9XG5cbiAgICAuYXBwLXN0ZXAtbmF2X190b2dnbGUtbGluayB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLWNvbW1vbjtcbiAgICAgIEBpbmNsdWRlIGdvdnVrLWxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICB9XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiBnb3Z1ay1zcGFjaW5nKDYpIDA7XG4gICAgfVxuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX3RpdGxlIHtcbiAgQGluY2x1ZGUgZ292dWstdGV4dC1jb2xvdXI7XG4gIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTksICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMS40KTtcbiAgbWFyZ2luOiAwO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTksICR0YWJsZXQtc2l6ZTogMjQsICR3ZWlnaHQ6IGJvbGQsICRsaW5lLWhlaWdodDogMS40KTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X190b2dnbGUtbGluayB7XG4gIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTQsICRsaW5lLWhlaWdodDogMS4yKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkZ292dWstbGluay1jb2xvdXI7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIHN0ZXAtbmF2LWZvbnQoMTQsICR0YWJsZXQtc2l6ZTogMTYsICRsaW5lLWhlaWdodDogMS4yKTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19wYW5lbCB7XG4gIEBpbmNsdWRlIGdvdnVrLXRleHQtY29sb3VyO1xuICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE2KTtcblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBzdGVwLW5hdi1mb250KDE2LCAkdGFibGV0LXNpemU6IDE5KTtcbiAgfVxuXG4gIC5qcy1lbmFibGVkICYuanMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIGNvbnRlbnRzIG9mIHRoZSBzdGVwcywgc3VjaCBhcyBwYXJhZ3JhcGhzIGFuZCBsaW5rc1xuXG4uYXBwLXN0ZXAtbmF2X19wYXJhZ3JhcGgge1xuICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG5cbiAgKyAuYXBwLXN0ZXAtbmF2X19saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAtNXB4O1xuXG4gICAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC1nb3Z1ay1zcGFjaW5nKDMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDYpO1xuICAgIH1cbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2X19saXN0IHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLmFwcC1zdGVwLW5hdi0tbGFyZ2UgJiB7XG4gICAgQGluY2x1ZGUgZ292dWstbWVkaWEtcXVlcnkoJGZyb206IHRhYmxldCkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi5hcHAtc3RlcC1uYXZfX2xpc3QtLWNob2ljZSB7XG4gICRsaW5rcy1tYXJnaW46IDIwcHg7XG5cbiAgbWFyZ2luLWxlZnQ6ICRsaW5rcy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG5cbiAgLmFwcC1zdGVwLW5hdl9fbGlzdC1pdGVtLS1hY3RpdmU6YmVmb3JlIHtcbiAgICBsZWZ0OiAtKGdvdnVrLXNwYWNpbmcoNikgKyBnb3Z1ay1zcGFjaW5nKDMpKSAtICRsaW5rcy1tYXJnaW47XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2LS1sYXJnZSAmIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgICAuYXBwLXN0ZXAtbmF2X19saXN0LWl0ZW0tLWFjdGl2ZTpiZWZvcmUge1xuICAgICAgICBsZWZ0OiAtKGdvdnVrLXNwYWNpbmcoOSkpIC0gJGxpbmtzLW1hcmdpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fbGlzdC1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmFwcC1zdGVwLW5hdl9fbGluayB7XG4gIEBpbmNsdWRlIGdvdnVrLWxpbmstY29tbW9uO1xuICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLWRlZmF1bHQ7XG59XG5cbi5hcHAtc3RlcC1uYXZfX2xpbmstYWN0aXZlLWNvbnRleHQge1xuICBAaW5jbHVkZSBnb3Z1ay12aXN1YWxseS1oaWRkZW47XG59XG5cbi5hcHAtc3RlcC1uYXZfX2xpc3QtaXRlbS0tYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3JlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgdG9wOiAuNmVtOyAvLyBwb3NpdGlvbiB0aGUgZG90IHRvIGFsaWduIHdpdGggdGhlIGZpcnN0IHJvdyBvZiB0ZXh0IGluIHRoZSBsaW5rXG4gICAgbGVmdDogLShnb3Z1ay1zcGFjaW5nKDYpICsgZ292dWstc3BhY2luZygzKSk7XG4gICAgbWFyZ2luLXRvcDogLSgkc3Ryb2tlLXdpZHRoIC8gMik7XG4gICAgbWFyZ2luLWxlZnQ6ICgkbnVtYmVyLWNpcmNsZS1zaXplIC8gMik7XG4gICAgd2lkdGg6ICRudW1iZXItY2lyY2xlLXNpemUgLyAyO1xuICAgIGhlaWdodDogJHN0cm9rZS13aWR0aDtcbiAgICBiYWNrZ3JvdW5kOiBnb3Z1ay1jb2xvdXIoXCJibGFja1wiKTtcbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXYtLWxhcmdlICYge1xuICAgIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogLShnb3Z1ay1zcGFjaW5nKDkpKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgkbnVtYmVyLWNpcmNsZS1zaXplLWxhcmdlIC8gMik7XG4gICAgICAgIGhlaWdodDogJHN0cm9rZS13aWR0aC1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYXBwLXN0ZXAtbmF2X19saW5rIHtcbiAgICBAaW5jbHVkZSBnb3Z1ay1saW5rLXN0eWxlLXRleHQ7XG4gIH1cbn1cblxuLmFwcC1zdGVwLW5hdl9fY29udGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGdvdnVrLWNvbG91cihcImRhcmstZ3JleVwiLCAkbGVnYWN5OiBcImdyZXktMVwiKTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXFwyMDEzXFwwMGEwXCI7IC8vIGRhc2ggZm9sbG93ZWQgYnkgJm5ic3A7XG4gIH1cbn1cbiIsIi8vIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9nb3Z1a19wdWJsaXNoaW5nX2NvbXBvbmVudHMvYmxvYi92MjIuMC4wL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ292dWtfcHVibGlzaGluZ19jb21wb25lbnRzL2NvbXBvbmVudHMvX3N0ZXAtYnktc3RlcC1yZWxhdGVkLnNjc3Ncbi8vIE5vdGUgLSB0aGlzIGNvZGUgZm9yIHByb3RvdHlwZSBwdXJwb3NlcyBvbmx5LiBJdCBpcyBub3QgcHJvZHVjdGlvbiBjb2RlLlxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWQge1xuICBAaW5jbHVkZSBnb3Z1ay10ZXh0LWNvbG91cjtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGdvdnVrLWNvbG91cihcImJsdWVcIik7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNik7XG59XG5cbi5hcHAtc3RlcC1uYXYtcmVsYXRlZF9faGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoMyk7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMik7XG4gIEBpbmNsdWRlIGdvdnVrLWZvbnQoMTksICR3ZWlnaHQ6IGJvbGQpO1xufVxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX2xpbmtzIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgxNiwgJHdlaWdodDogYm9sZCk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmFwcC1zdGVwLW5hdi1yZWxhdGVkLS1zaW5ndWxhciB7XG4gIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoMikgKyAzO1xuXG4gIC5hcHAtc3RlcC1uYXYtcmVsYXRlZF9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgZ292dWstZm9udCgxOSwgJHdlaWdodDogYm9sZCwgJGxpbmUtaGVpZ2h0OiAxLjQpO1xuICAgIG1hcmdpbi10b3A6IGdvdnVrLXNwYWNpbmcoNCk7XG5cbiAgICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkdW50aWw6IHRhYmxldCkge1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgIH1cbiAgfVxuXG4gIC5hcHAtc3RlcC1uYXYtcmVsYXRlZF9fcHJldGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IGdvdnVrLXNwYWNpbmcoNikgLyA0O1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXYtcmVsYXRlZF9fcHJldGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygzKTtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWFyZ2luLWJvdHRvbTogZ292dWstc3BhY2luZygxKTtcbiAgfVxufVxuXG4uYXBwLXN0ZXAtbmF2LXJlbGF0ZWRfX2xpbmtzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmFwcC1zdGVwLW5hdi1yZWxhdGVkX19saW5rLWl0ZW0ge1xuICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDMpO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiB0YWJsZXQpIHtcbiAgICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDEpO1xuICB9XG59XG5cbi5hcHAtc3RlcC1uYXYtcmVsYXRlZF9fbGluayB7XG4gIEBleHRlbmQgJWdvdnVrLWxpbms7XG59XG4iLCIvLyBUYXNrIGxpc3QgcGF0dGVyblxuXG4uYXBwLXRhc2stbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWluLXdpZHRoOiA1NTBweDtcbiAgfVxufVxuXG4uYXBwLXRhc2stbGlzdF9fc2VjdGlvbiB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBAaW5jbHVkZSBnb3Z1ay1mb250KCRzaXplOjI0LCAkd2VpZ2h0OiBib2xkKTtcbn1cblxuLmFwcC10YXNrLWxpc3RfX3NlY3Rpb24tbnVtYmVyIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgbWluLXdpZHRoOiBnb3Z1ay1zcGFjaW5nKDYpO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmFwcC10YXNrLWxpc3RfX2l0ZW1zIHtcbiAgQGluY2x1ZGUgZ292dWstZm9udCgkc2l6ZTogMTkpO1xuICBAaW5jbHVkZSBnb3Z1ay1yZXNwb25zaXZlLW1hcmdpbig5LCBcImJvdHRvbVwiKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBAaW5jbHVkZSBnb3Z1ay1tZWRpYS1xdWVyeSgkZnJvbTogdGFibGV0KSB7XG4gICAgcGFkZGluZy1sZWZ0OiBnb3Z1ay1zcGFjaW5nKDYpO1xuICB9XG59XG5cbi5hcHAtdGFzay1saXN0X19pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICBwYWRkaW5nLWJvdHRvbTogZ292dWstc3BhY2luZygyKTtcbiAgQGluY2x1ZGUgZ292dWstY2xlYXJmaXg7XG59XG5cbi5hcHAtdGFzay1saXN0X19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnb3Z1ay1ib3JkZXItY29sb3VyO1xufVxuXG4uYXBwLXRhc2stbGlzdF9fdGFzay1uYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiA0NTBweCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi8vIFRoZSBgYXBwLXRhc2stbGlzdF9fdGFzay1jb21wbGV0ZWRgIGNsYXNzIHdhcyBwcmV2aW91c2x5IHVzZWQgb24gdGhlIHRhc2tcbi8vIGxpc3QgZm9yIHRoZSBjb21wbGV0ZWQgdGFnIChjaGFuZ2VkIGluIDg2YzkwZWMpIOKAkyBpdCdzIHN0aWxsIGluY2x1ZGVkIGhlcmUgdG9cbi8vIGF2b2lkIGJyZWFraW5nIHRhc2sgbGlzdHMgaW4gZXhpc3RpbmcgcHJvdG90eXBlcy5cbi5hcHAtdGFzay1saXN0X190YWcsXG4uYXBwLXRhc2stbGlzdF9fdGFzay1jb21wbGV0ZWQge1xuICBtYXJnaW4tdG9wOiBnb3Z1ay1zcGFjaW5nKDIpO1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDEpO1xuXG4gIEBpbmNsdWRlIGdvdnVrLW1lZGlhLXF1ZXJ5KCRmcm9tOiA0NTBweCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vIFRoaXMgaXMgYSBHT1YuVUsgUHVibGlzaGluZyBzcGVjaWZpYyBjb21wb25lbnQgdGhhdFxuLy8gY2FuIGJlIHNlZW4gYXQgaHR0cDovL2dvdnVrLXN0YXRpYy5oZXJva3VhcHAuY29tL2NvbXBvbmVudC1ndWlkZS9yZWxhdGVkX2l0ZW1zXG5cbi5hcHAtcmVsYXRlZC1pdGVtcyB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCBnb3Z1ay1jb2xvdXIoXCJibHVlXCIpO1xuICBwYWRkaW5nLXRvcDogZ292dWstc3BhY2luZygyKTtcbn1cblxuLmFwcC1yZWxhdGVkLWl0ZW1zIC5nb3Z1ay1saXN0ID4gbGkge1xuICBtYXJnaW4tYm90dG9tOiBnb3Z1ay1zcGFjaW5nKDIpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBMkNjRSxBQU5BLFdBTVcsRUtKWCxDQUFDLEUrQ2VILDJCQUEyQixFRWtDM0IsMkJBQTJCLEN0RG5EYjtFSE9aLFdBQVcsRXhCTHFCLGVBQWUsRUFBRSxLQUFLLEVBQUUsVUFBVTtFd0JNbEUsc0JBQXNCLEVBQUUsV0FBVztFQUNuQyx1QkFBdUIsRUFBRSxTQUFTO0VMYWxDLGVBQWUsRUFBRSxTQUFTO0VBSXRCLHlCQUF5QixFaEJFRSxrQkFBNkI7RWdCRXhELHFCQUFxQixFaEJPRyxLQUFJO0N3QmpDL0I7O0FWS0ssb0xBQW9MO0FBQUMsa0RBQWtEO0FBQ3ZPLFVBQVU7RUFDUixXQUFXLEVBQUUsZUFBZTtFQUM1QixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUsTUFBTTtFQUNuQixHQUFHLEVWQUQsb0RBQWtDLENVQ1UsZUFBZSxFVkQzRCxtREFBa0MsQ1VFUyxjQUFjO0VBQzNELFlBQVksRUFBRSxRQUFROzs7QUFHeEIsVUFBVTtFQUNSLFdBQVcsRUFBRSxlQUFlO0VBQzVCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEdBQUcsRVZWRCxtREFBa0MsQ1VXUyxlQUFlLEVWWDFELGtEQUFrQyxDVVlRLGNBQWM7RUFDMUQsWUFBWSxFQUFFLFFBQVE7OztBSWlNeEIsTUFBTSxDQUFDLEtBQUs7RU10TmxCLEFBTkEsV0FNVyxFS0pYLENBQUMsRStDZUgsMkJBQTJCLEVFa0MzQiwyQkFBMkIsQ3REbkRiO0lIc0JWLFdBQVcsRXZCOEJXLFVBQVU7RzBCaERqQzs7O0FBRUQsQVJBQSxXUUFXLEFSQVYsTUFBTSxFYUpQLENBQUMsQWJJQSxNQUFNLEU0RFdULDJCQUEyQixBNURYeEIsTUFBTSxFOEQ2Q1QsMkJBQTJCLEE5RDdDeEIsTUFBTSxDQUFDO0VBdUNOLHlCQUF5QixFaEJRVSx5QkFBb0M7RWdCTHZFLGdDQUFnQyxFQUFFLElBQUk7RUFDOUIsd0JBQXdCLEVBQUUsSUFBSTtFQUN0Qyw0QkFBNEIsRUFBRSxJQUFJO0VBQzFCLG9CQUFvQixFQUFFLElBQUk7Q0EzQ25DOztBUUZELEFSSUEsV1FKVyxBUklWLE1BQU0sRWFSUCxDQUFDLEFiUUEsTUFBTSxFNERPVCwyQkFBMkIsQTVEUHhCLE1BQU0sRThEeUNULDJCQUEyQixBOUR6Q3hCLE1BQU0sQ0FBQztFSENOLE9BQU8sRWpCOEVTLEdBQUcsQ2lCOUVTLEtBQUssQ0FBQyxXQUFXO0VBRS9DLEtBQUssRXRCd0JJLE9BQU87RXNCdkJoQixnQkFBZ0IsRXRCZ0JOLE9BQU87RXNCZmpCLFVBQVUsRUFBRSxDQUFDLENBQUUsSUFBRyxDdEJlUixPQUFPLEVzQmZ1QixDQUFDLENBQUMsR0FBRyxDdEJzQnBDLE9BQU87RXNCbkJoQixlQUFlLEVBQUUsSUFBSTtDR05wQjs7QVFORCxBUmlFQSxXUWpFVyxBUmlFVixLQUFLLEVhckVOLENBQUMsQWJxRUEsS0FBSyxFNER0RFIsMkJBQTJCLEE1RHNEeEIsS0FBSyxFOERwQlIsMkJBQTJCLEE5RG9CeEIsS0FBSyxDQUFDO0VBQ0wsS0FBSyxFekJ4Q0MsT0FBTztDeUJ5Q2Q7O0FRbkVELEFScUVBLFdRckVXLEFScUVWLFFBQVEsRWF6RVQsQ0FBQyxBYnlFQSxRQUFRLEU0RDFEWCwyQkFBMkIsQTVEMER4QixRQUFRLEU4RHhCWCwyQkFBMkIsQTlEd0J4QixRQUFRLENBQUM7RUFDUixLQUFLLEV6QnpDRyxPQUFPO0N5QjBDaEI7O0FRdkVELEFSQUEsV1FBVyxBUkFWLE1BQU0sRWFKUCxDQUFDLEFiSUEsTUFBTSxFNERXVCwyQkFBMkIsQTVEWHhCLE1BQU0sRThENkNULDJCQUEyQixBOUQ3Q3hCLE1BQU0sQ0F5RUM7RUFDTixLQUFLLEV6Qi9DTSxPQUFPO0N5QmdEbkI7O0FRM0VELEFSNkVBLFdRN0VXLEFSNkVWLE9BQU8sRWFqRlIsQ0FBQyxBYmlGQSxPQUFPLEU0RGxFViwyQkFBMkIsQTVEa0V4QixPQUFPLEU4RGhDViwyQkFBMkIsQTlEZ0N4QixPQUFPLENBQUM7RUFDUCxLQUFLLEV6Qi9DRSxPQUFPO0N5QmdEZjs7QVEvRUQsQVJJQSxXUUpXLEFSSVYsTUFBTSxFYVJQLENBQUMsQWJRQSxNQUFNLEU0RE9ULDJCQUEyQixBNURQeEIsTUFBTSxFOER5Q1QsMkJBQTJCLEE5RHpDeEIsTUFBTSxDQStFQztFQUNOLEtBQUssRXpCckRFLE9BQU87Q3lCc0RmOztBRWlJSyxNQUFNLENBQUMsS0FBSztFTXRObEIsQVJpWkksV1FqWk8sQ1I4WVIsQUFBQSxJQUFDLEVBQU0sR0FBRyxBQUFULENBR0MsTUFBTSxFYXJaWCxDQUFDLENia1pFLEFBQUEsSUFBQyxFQUFNLEdBQUcsQUFBVCxDQUdDLE1BQU0sRTREdFliLDJCQUEyQixDNURtWXRCLEFBQUEsSUFBQyxFQUFNLEdBQUcsQUFBVCxDQUdDLE1BQU0sRThEcFdiLDJCQUEyQixDOURpV3RCLEFBQUEsSUFBQyxFQUFNLEdBQUcsQUFBVCxDQUdDLE1BQU0sRVFqWlgsV0FBVyxDUitZUixBQUFBLElBQUMsRUFBTSxTQUFTLEFBQWYsQ0FFQyxNQUFNLEVhclpYLENBQUMsQ2JtWkUsQUFBQSxJQUFDLEVBQU0sU0FBUyxBQUFmLENBRUMsTUFBTSxFNER0WWIsMkJBQTJCLEM1RG9ZdEIsQUFBQSxJQUFDLEVBQU0sU0FBUyxBQUFmLENBRUMsTUFBTSxFOERwV2IsMkJBQTJCLEM5RGtXdEIsQUFBQSxJQUFDLEVBQU0sU0FBUyxBQUFmLENBRUMsTUFBTSxFUWpaWCxXQUFXLENSZ1pSLEFBQUEsSUFBQyxFQUFNLFVBQVUsQUFBaEIsQ0FDQyxNQUFNLEVhclpYLENBQUMsQ2JvWkUsQUFBQSxJQUFDLEVBQU0sVUFBVSxBQUFoQixDQUNDLE1BQU0sRTREdFliLDJCQUEyQixDNURxWXRCLEFBQUEsSUFBQyxFQUFNLFVBQVUsQUFBaEIsQ0FDQyxNQUFNLEU4RHBXYiwyQkFBMkIsQzlEbVd0QixBQUFBLElBQUMsRUFBTSxVQUFVLEFBQWhCLENBQ0MsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztJQUM1QixTQUFTLEVBQUUsR0FBRztJQUtkLFNBQVMsRUFBRSxVQUFVO0dBQ3RCOzs7QVFsWkwsQVI2TUEsa0JRN01rQixBUjZNakIsS0FBSyxFUTdNTixrQkFBa0IsQVI4TWpCLFFBQVEsQ0FBQztFQUNSLEtBQUssRXpCdExNLE9BQU87Q3lCdUxuQjs7QVFoTkQsQVJrTkEsa0JRbE5rQixBUmtOakIsTUFBTSxFUWxOUCxrQkFBa0IsQVJtTmpCLE9BQU8sQ0FBQztFQUNQLEtBQUssRXpCNUxFLE9BQU87Q3lCNkxmOztBUXJORCxBUnlOQSxrQlF6TmtCLEFSeU5qQixNQUFNLENBQUM7RUFDTixLQUFLLEV6QmxNRSxPQUFPO0N5Qm1NZjs7QVF2TkQsQVJvUEEsd0JRcFB3QixBUm9QdkIsS0FBSyxFUXBQTix3QkFBd0IsQVJxUHZCLFFBQVEsQ0FBQztFS3JPVixLQUFLLEU5QklJLE9BQU87Q3lCbU9mOztBRTVDSyxNQUFNLENBQUMsS0FBSztFTTNNbEIsQVJvUEEsd0JRcFB3QixBUm9QdkIsS0FBSyxFUXBQTix3QkFBd0IsQVJxUHZCLFFBQVEsQ0FBQztJS2xPUixLQUFLLEU1QklpQixPQUFPO0d1QmdPOUI7OztBUXZQRCxBUjJQQSx3QlEzUHdCLEFSMlB2QixNQUFNLENBQUM7RUFDTixLQUFLLEV6QnhPRSxzQkFBTztDeUJ5T2Y7O0FRN1BELEFSK1BBLHdCUS9Qd0IsQVIrUHZCLE9BQU8sRVEvUFIsd0JBQXdCLEFSZ1F2QixNQUFNLENBQUM7RUtoUFIsS0FBSyxFOUJJSSxPQUFPO0N5QjhPZjs7QUV2REssTUFBTSxDQUFDLEtBQUs7RU0zTWxCLEFSK1BBLHdCUS9Qd0IsQVIrUHZCLE9BQU8sRVEvUFIsd0JBQXdCLEFSZ1F2QixNQUFNLENBQUM7SUs3T04sS0FBSyxFNUJJaUIsT0FBTztHdUIyTzlCOzs7QVE5UEQsQVIyUkEsb0JRM1JvQixBUjJSbkIsS0FBSyxFUTNSTixvQkFBb0IsQVI0Um5CLFFBQVEsQ0FBQztFQUNSLEtBQUssRXpCelFFLE9BQU87Q3lCMFFmOztBUTlSRCxBUmtTQSxvQlFsU29CLEFSa1NuQixNQUFNLEVRbFNQLG9CQUFvQixBUm1TbkIsT0FBTyxDQUFDO0VBQ1AsS0FBSyxFekJoUkUseUJBQU87Q3lCaVJmOztBUXJTRCxBUnVTQSxvQlF2U29CLEFSdVNuQixNQUFNLENBQUM7RUFDTixLQUFLLEV6QnhSRSxPQUFPO0N5QnlSZjs7QVFy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 */
