@charset "UTF-8";
/* line 8, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

/* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
body {
  line-height: 1; }

/* line 22, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
ol,
ul {
  list-style: none; }

/* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
main {
  display: block; }

/* line 42, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
blockquote,
q {
  quotes: none; }

/* line 48, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
q:before,
q:after,
blockquote:before,
blockquote:after {
  content: ""; }

/* line 55, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

/* line 63, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
img {
  -ms-interpolation-mode: bicubic; }

/* line 67, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
del {
  text-decoration: line-through; }

/* line 71, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

/* line 77, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* line 82, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
input,
select {
  vertical-align: middle; }

/* line 87, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* line 93, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }

/* line 102, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
button,
input,
select,
textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle; }

/* line 110, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
button,
input {
  *overflow: visible;
  line-height: normal; }

/* line 115, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0; }

/* line 120, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button; }

/* line 127, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
input[type="search"] {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  -webkit-appearance: textfield; }

/* line 133, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none; }

/* line 137, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-433.scss */
textarea {
  overflow: auto;
  vertical-align: top; }

/* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
* {
  box-sizing: inherit; }
  /* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
  *:after, *:before {
    box-sizing: inherit; }

/* line 30, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
html {
  font-size: 62.5%;
  box-sizing: border-box; }

/* line 35, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
body {
  margin: 0;
  font-family: "interFace", Arial, sans-serif;
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1;
  color: #363636;
  background-color: white;
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased; }
  @media (max-width: 56.25em) {
    /* line 35, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
    body {
      font-size: 16px;
      font-size: 1.6rem; } }
/* line 51, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
main {
  max-width: 87.272727em;
  margin: 0 auto; }

/* line 60, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
img {
  max-width: 100%;
  height: auto; }

/* line 68, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
hr {
  background: #363636;
  border: 0;
  height: 0.045455em; }

/* line 74, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
a {
  color: inherit;
  text-decoration: none; }

/* line 79, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/main-style-new-subscriptions-436.scss */
.center {
  text-align: center; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h1, .alpha, .hero__title {
  font-size: 5.454545em;
  font-family: interFace, Arial, sans-serif;
  color: inherit;
  line-height: 1;
  margin-bottom: 0.166667em;
  font-weight: 700; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h2, .beta, .hero--noimage .hero__title {
  font-size: 3.409091em;
  font-family: interFace, Arial, sans-serif;
  color: #2F6FB9;
  line-height: 1;
  margin-bottom: 0.533333em;
  font-weight: 700; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h3, .gamma {
  font-size: 2.5em;
  font-family: interFace, Arial, sans-serif;
  color: #2F6FB9;
  line-height: 1;
  margin-bottom: 0.363636em;
  font-weight: 700; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h4, .delta {
  font-size: 1em;
  font-family: interFace, Arial, sans-serif;
  color: #2F6FB9;
  line-height: 1.090909;
  margin-bottom: 0.454545em;
  font-weight: 700; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h5, .epsilon, .image-panel--video .image-panel__title, .epsilon--alt {
  font-size: 1.590909em;
  font-family: interFace, Arial, sans-serif;
  color: #2F6FB9;
  line-height: 1;
  margin-bottom: 0.571429em;
  font-weight: 700; }

/* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.rteCopy h6, .zeta {
  font-size: 0.727273em;
  font-family: interFace, Arial, sans-serif;
  color: inherit;
  line-height: 1;
  margin-bottom: 1em;
  font-weight: 400; }

/* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.bold {
  font-weight: 700; }

/* line 28, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.alpha, .hero__title, .beta, .hero--noimage .hero__title, .gamma, .epsilon, .image-panel--video .image-panel__title, .epsilon--alt {
  text-align: center; }

@media (max-width: 34.375em) {
  /* line 32, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
  .alpha, .hero__title {
    font-size: 75px;
    font-size: 7.5rem; } }

/* line 38, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.epsilon--alt {
  color: #363636; }

/* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/typography.scss */
.largetext {
  font-size: 35px;
  font-size: 3.5rem;
  margin-bottom: 0.571429em; }

/* line 1, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-439-457.scss */
.margin-bottom {
  margin-bottom: 0.909091em; }

/* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
.one-col {
  padding: 2.272727em; }
  @media (max-width: 93.75em) {
    /* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
    .one-col {
      padding: 2.272727em 0.681818em; } }
  /* line 12, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
  .one-col__title {
    text-align: center;
    margin-bottom: 2.727273em; }
    /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
    .one-col__title > .beta, .hero--noimage .one-col__title > .hero__title {
      font-weight: 700; }
  /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
  .one-col__wrapper {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }
    @media (max-width: 56.25em) {
      /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
      .one-col__wrapper {
        -webkit-box-orient: vertical;
        -moz-box-orient: vertical;
        box-orient: vertical;
        -webkit-box-direction: normal;
        -moz-box-direction: normal;
        box-direction: normal;
        -webkit-flex-direction: column;
        -moz-flex-direction: column;
        flex-direction: column;
        -ms-flex-direction: column; } }
  /* line 29, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
  .one-col__col {
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    box-flex: 1;
    -webkit-flex: 1;
    -moz-flex: 1;
    -ms-flex: 1;
    flex: 1; }
  /* line 33, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-446.scss */
  .one-col__content {
    font-size: 1em; }

/* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
.two-col, .two-col--grey {
  padding: 2.272727em; }
  @media (max-width: 93.75em) {
    /* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
    .two-col, .two-col--grey {
      padding: 2.272727em 0.681818em; } }
  /* line 11, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
  .two-col--grey {
    background: #f0f0f0; }
  /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
  .two-col__title {
    text-align: center;
    margin-bottom: 2.727273em; }
    /* line 20, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
    .two-col__title > .beta, .hero--noimage .two-col__title > .hero__title {
      font-weight: 700; }
  /* line 25, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
  .two-col__wrapper {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }
    @media (max-width: 56.25em) {
      /* line 25, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
      .two-col__wrapper {
        -webkit-box-orient: vertical;
        -moz-box-orient: vertical;
        box-orient: vertical;
        -webkit-box-direction: normal;
        -moz-box-direction: normal;
        box-direction: normal;
        -webkit-flex-direction: column;
        -moz-flex-direction: column;
        flex-direction: column;
        -ms-flex-direction: column; } }
  /* line 33, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
  .two-col__col {
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    box-flex: 1;
    -webkit-flex: 1 1 50%;
    -moz-flex: 1 1 50%;
    -ms-flex: 1 1 50%;
    flex: 1 1 50%; }
    /* line 36, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
    .two-col__col:nth-of-type(1) {
      padding-right: 1.363636em; }
      @media (max-width: 56.25em) {
        /* line 36, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
        .two-col__col:nth-of-type(1) {
          padding-right: 0;
          margin-bottom: 2.272727em; } }
    /* line 45, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
    .two-col__col:nth-of-type(2) {
      padding-left: 1.363636em; }
      @media (max-width: 56.25em) {
        /* line 45, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-445.scss */
        .two-col__col:nth-of-type(2) {
          padding-left: 0; } }
/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-447.scss */
.three-col {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5.454545em; }
  @media (max-width: 56.25em) {
    /* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-447.scss */
    .three-col {
      flex-direction: column; } }
  /* line 13, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-447.scss */
  .three-col__col {
    flex: 0 1 32%; }
    @media (max-width: 56.25em) {
      /* line 13, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-447.scss */
      .three-col__col {
        margin-bottom: 1.818182em; }
        /* line 19, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-447.scss */
        .three-col__col:last-child {
          margin-bottom: 0; } }
/* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-449.scss */
.l-wrapper {
  max-width: 87.272727em;
  margin: 0 auto;
  position: relative; }

/* line 10, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-449.scss */
.l-wrapper__inner, .l-wrapper__inner--footer {
  position: relative;
  margin: 0 auto;
  max-width: 58.181818em;
  width: 100%; }

/* line 17, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-449.scss */
.l-wrapper__inner--footer {
  width: 92%;
  padding: 1.363636em 0; }

/* line 5, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
.header {
  background-color: #2F6FB9; }
  @media (max-width: 46.875em) {
    /* line 5, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
    .header {
      padding-top: 0; } }
  /* line 12, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
  .header__content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 80em;
    margin: 0 auto;
    padding: 0.454545em 0.909091em; }
    @media (max-width: 87.5em) {
      /* line 12, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
      .header__content {
        flex-direction: column; } }
    @media (max-width: 46.875em) {
      /* line 12, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
      .header__content {
        display: block; } }
  /* line 30, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
  .header__nav, .header__nav--mobile-first {
    display: flex;
    align-items: center; }
  /* line 35, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
  .header__top-bar {
    display: none; }
    @media (max-width: 46.875em) {
      /* line 35, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
      .header__top-bar {
        display: block;
        height: 2.181818em;
        background: 0;
        padding: 0; } }
  /* line 46, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
  .header__logo {
    display: block;
    max-width: 9.090909em;
    max-height: 4.545455em;
    margin-right: 2.272727em; }
    /* line 52, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
    .header__logo img {
      display: block; }
    @media (max-width: 46.875em) {
      /* line 46, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
      .header__logo {
        margin: 0 auto;
        max-width: 10.909091em; } }
  @media (max-width: 87.5em) {
    /* line 62, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
    .header__nav--mobile-first {
      order: -1;
      margin-bottom: 1.363636em; } }
  @media (max-width: 46.875em) {
    /* line 62, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
    .header__nav--mobile-first {
      display: none; } }
  /* line 75, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-450.scss */
  .header__button--primary {
    background-color: #69BE28;
    margin-right: 0.454545em; }

/* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
.header-nav {
  -webkit-font-smoothing: antialiased; }
  @media (max-width: 46.875em) {
    /* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
    .header-nav {
      display: none; }
      /* line 10, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav.open {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        border-bottom: 0.227273em solid #aaa;
        z-index: 3; } }
  /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__items {
    display: flex; }
    @media (max-width: 46.875em) {
      /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav__items {
        flex-direction: column; } }
  /* line 29, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__item {
    margin: 0 0.454545em;
    position: relative; }
    @media (max-width: 46.875em) {
      /* line 29, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav__item {
        margin: 0;
        border-bottom: 1px solid #f0f0f0; }
        /* line 36, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
        .header-nav__item:last-child {
          border-bottom: none; } }
  /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__link {
    font-size: 1em;
    color: white;
    font-weight: 700;
    padding: 0.681818em;
    display: block; }
    /* line 52, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
    .header-nav__link:hover, .header-nav__link.active {
      background: #4387d5; }
      @media (max-width: 46.875em) {
        /* line 52, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
        .header-nav__link:hover, .header-nav__link.active {
          background: white; } }
    @media (max-width: 46.875em) {
      /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav__link {
        color: #343433;
        margin: 0;
        padding: 0.909091em 0.454545em;
        background-color: white; }
        /* line 70, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
        .header-nav__link:hover {
          background-color: white;
          color: #343433; } }
  /* line 78, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__link--secondary {
    font-weight: 400; }
  /* line 82, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__sub {
    position: absolute;
    top: 100%;
    z-index: 3;
    background-color: #2F6FB9;
    color: white;
    display: none;
    left: 0; }
    @media (max-width: 46.875em) {
      /* line 82, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav__sub {
        position: static; } }
    /* line 95, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
    .header-nav__sub.active {
      display: block; }
  /* line 100, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__sublink, .header-nav__subglance {
    padding: 0.681818em;
    display: block; }
    @media (max-width: 46.875em) {
      /* line 100, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav__sublink, .header-nav__subglance {
        padding: 0.909091em 0.454545em; } }
    /* line 109, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
    .header-nav__sublink:hover, .header-nav__subglance:hover {
      background: #4387d5; }
  /* line 114, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav__subglance {
    border-bottom: 1px solid #4387d5; }
  /* line 118, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
  .header-nav .arrow--down {
    border: solid white;
    border-width: 0 0.136364em 0.136364em 0;
    display: inline-block;
    padding: 0.136364em;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    margin-bottom: 0.136364em;
    margin-left: 0.136364em; }
    @media (max-width: 46.875em) {
      /* line 118, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-452.scss */
      .header-nav .arrow--down {
        border-color: black; } }
/* line 9, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
.footer {
  padding-bottom: 1.181818em;
  background-color: #2F6FB9; }
  /* line 13, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__inner {
    position: relative;
    margin: 0 auto;
    max-width: 53.636364em;
    width: 92%;
    padding: 1.363636em 0; }
  /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__copyright {
    font-size: 0.636364em;
    color: white;
    clear: both; }
  /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__social-icons {
    float: right; }
    @media (max-width: 46.875em) {
      /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
      .footer__social-icons {
        float: none;
        margin-bottom: 0.545455em; } }
  /* line 36, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__social-icon {
    display: inline-block;
    margin-right: 0.318182em; }
  /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__copyright-link:hover {
    color: white;
    opacity: .8; }
  /* line 49, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__back-to-top {
    display: none; }
    @media (max-width: 46.875em) {
      /* line 49, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
      .footer__back-to-top {
        display: block;
        background-color: #eee;
        padding: 0.454545em;
        border-top: 0.045455em solid #ddd;
        text-align: right; } }
  /* line 61, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__link {
    margin-right: 0.227273em;
    color: #2a6ebb; }
    /* line 65, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
    .footer__link:hover {
      color: #f0f0f0; }
  /* line 70, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__callback {
    background-color: #eee;
    text-align: center; }
  /* line 75, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__link--callback {
    /* @include buttonLink($color1, #2f7ad0); */ }
  /* line 79, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-451.scss */
  .footer__link--email {
    color: #2F6FB9;
    text-decoration: underline; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
.footer-nav {
  -webkit-font-smoothing: antialiased; }
  /* line 6, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
  .footer-nav__items {
    margin-bottom: 0.590909em;
    float: left; }
    @media (max-width: 46.875em) {
      /* line 6, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
      .footer-nav__items {
        float: none;
        margin-bottom: 0.909091em; } }
  /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
  .footer-nav__item {
    color: white;
    vertical-align: middle;
    display: inline-block;
    margin-right: 0.545455em;
    padding-right: 0.545455em;
    border-right: 0.045455em solid rgba(255, 255, 255, 0.2); }
    /* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
    .footer-nav__item:last-of-type {
      border-right: none; }
    @media (max-width: 46.875em) {
      /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
      .footer-nav__item {
        display: block;
        border-right: none;
        border-bottom: 0.045455em solid rgba(255, 255, 255, 0.2);
        padding: 0.454545em 0; }
        /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
        .footer-nav__item:last-of-type {
          border-bottom: none; } }
  /* line 40, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
  .footer-nav__link {
    font-size: 18px;
    font-size: 1.8rem; }
    /* line 44, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-440-453.scss */
    .footer-nav__link:hover {
      color: white;
      opacity: .5; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--quinary, .btn--quaternary, .btn--tertiary, .btn--video, .btn--secondary, .header__button--secondary, .btn--primary, .header__button--primary {
  font-size: 0.818182em;
  display: inline-block;
  margin-bottom: 0;
  padding: 0.833333em;
  font-family: "interFace", Arial, sans-serif;
  font-weight: 700;
  color: white;
  text-align: center;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 4px;
  /* background-color: transparent; */ }
  /* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
  .btn--quinary:focus, .btn--quaternary:focus, .btn--tertiary:focus, .btn--video:focus, .btn--secondary:focus, .header__button--secondary:focus, .btn--primary:focus, .header__button--primary:focus {
    outline: 1px dotted #2F6FB9; }

/* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn__wrap {
  display: flex;
  justify-content: center; }
  /* line 31, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
  .btn__wrap * {
    margin-right: 0.909091em; }
    /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
    .btn__wrap *:last-child {
      margin-right: 0; }

/* line 40, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--primary {
  background-color: #2F6FB9; }

/* line 45, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--secondary, .header__button--secondary {
  background-color: #f0ab00; }

/* line 51, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--tertiary, .btn--video {
  min-width: 11.111111em;
  background-color: white;
  color: #2F6FB9; }
  /* line 57, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
  .btn--tertiary:hover, .btn--video:hover {
    color: #2F6FB9; }

/* line 63, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--quaternary {
  border: 2px solid #2F6FB9;
  color: #2F6FB9; }

/* line 69, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--quinary {
  background-color: rgba(255, 255, 255, 0.8);
  padding: 4px 20px 5px;
  color: #2B6EBB;
  font-weight: 500;
  font-size: 18px; }

/* line 78, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
.btn--video {
  position: relative;
  padding-left: 3.333333em; }
  /* line 83, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/buttons-scss-subscriptions.scss */
  .btn--video:before {
    content: '';
    position: absolute;
    left: 1.111111em;
    top: 50%;
    transform: translateY(-50%);
    border-left: 0.833333em solid #2F6FB9;
    border-top: 0.555556em solid transparent;
    border-bottom: 0.555556em solid transparent; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
.sector-link {
  display: block;
  text-align: center;
  transition: transform 0.2s; }
  /* line 8, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link:hover {
    transform: scale(0.95); }
  /* line 12, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link__image {
    margin-bottom: 0.909091em; }
  /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link__title, .sector-link__title--tertiary, .sector-link__title--secondary, .sector-link__title--primary {
    font-size: 1.590909em;
    padding: 0.571429em 0.285714em;
    line-height: 1.171429em;
    color: white;
    border-radius: 1.363636em; }
  /* line 25, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link__title--primary {
    background-color: #2F6FB9; }
  /* line 30, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link__title--secondary {
    background-color: #00B2A9; }
  /* line 35, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-399.scss */
  .sector-link__title--tertiary {
    background-color: #E27222; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-401.scss */
.content-box {
  padding: 1.818182em;
  margin-bottom: 2.727273em;
  border: 1px solid #B4CFEE;
  border-radius: 1.363636em; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-402.scss */
.quote {
  max-width: 36.363636em;
  margin: 0 auto;
  text-align: center; }
  /* line 9, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-402.scss */
  .quote__content {
    min-height: 5em;
    margin-bottom: 0.909091em; }
  /* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-402.scss */
  .quote__attr {
    font-weight: 700;
    color: #2F6FB9; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
.image-panel, .image-panel--video {
  display: flex;
  margin-bottom: 2.727273em;
  border-radius: 1.363636em;
  overflow: hidden;
  box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 10px 10px 20px 0 rgba(0, 0, 0, 0.2); }
  /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
  .image-panel__image {
    flex: 0 1 50%;
    position: relative; }
    /* line 20, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
    .image-panel__image img {
      display: block;
      height: 100%;
      object-fit: cover; }
    /* line 26, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
    .image-panel__image:before {
      content: '';
      position: absolute;
      height: 100%;
      width: 100%;
      background-color: #2F6FB9;
      opacity: 0.2;
      z-index: 1; }
    /* line 36, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
    .image-panel--video .image-panel__image {
      position: relative; }
      /* line 40, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
      .image-panel--video .image-panel__image:after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        border-left: 5.454545em solid white;
        border-top: 2.727273em solid transparent;
        border-bottom: 2.727273em solid transparent;
        z-index: 2; }
    @media (max-width: 50em) {
      /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
      .image-panel__image {
        display: none; } }
  /* line 58, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
  .image-panel__content {
    flex: 0 1 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 0.909091em 3.636364em;
    background: radial-gradient(circle at 0, #B4CFEE 0%, #2B6EBB 100%);
    color: white; }
    @media (max-width: 50em) {
      /* line 58, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
      .image-panel__content {
        flex: 1 1 auto;
        align-items: center; } }
  /* line 74, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
  .image-panel__title {
    margin-bottom: 0.909091em;
    width: 100%; }
    /* line 78, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
    .image-panel--video .image-panel__title {
      color: white;
      text-align: left;
      margin-bottom: 1.142857em; }
      @media (max-width: 50em) {
        /* line 78, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-403.scss */
        .image-panel--video .image-panel__title {
          text-align: center; } }
/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
.small-carousel {
  position: relative;
  margin-bottom: 2.727273em; }
  /* line 8, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel:before, .small-carousel:after {
    content: '';
    position: absolute;
    top: 0;
    height: 100%;
    width: 4.545455em;
    z-index: 1; }
  /* line 17, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel:before {
    left: 0;
    background: linear-gradient(to right, white, transparent); }
  /* line 22, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel:after {
    right: 0;
    background: linear-gradient(to right, transparent, white); }
  /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel__image {
    max-height: 4.75em;
    padding: 0.454545em;
    object-fit: contain; }
  /* line 33, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel__prev, .small-carousel__next {
    position: absolute;
    top: 50%;
    height: 1.363636em;
    width: 1.363636em;
    border-bottom: 4px solid #2F6FB9;
    z-index: 2; }
  /* line 42, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel__prev {
    transform: translateY(-50%) rotate(45deg);
    left: 0.454545em;
    border-left: 4px solid #2F6FB9; }
  /* line 48, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-407.scss */
  .small-carousel__next {
    transform: translateY(-50%) rotate(-45deg);
    right: 0.454545em;
    border-right: 4px solid #2F6FB9; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-413.scss */
.small-banner {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1.818182em;
  padding: 0.454545em 0.909091em;
  border-radius: 30px;
  background: linear-gradient(336.32deg, #7D5CC6 0%, #C50084 100%);
  box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 10px 10px 20px 0 rgba(0, 0, 0, 0.2);
  text-align: center;
  color: white; }
  /* line 15, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-413.scss */
  .small-banner__image {
    max-height: 1.818182em;
    margin-right: 1.818182em; }
  /* line 20, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-413.scss */
  .small-banner__text-bold {
    font-size: 1em;
    font-weight: 700;
    margin-right: 1.818182em; }
  /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-413.scss */
  .small-banner__text {
    font-size: 1em;
    position: relative; }
    /* line 32, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-413.scss */
    .small-banner__text:after {
      content: '';
      position: absolute;
      height: 0.681818em;
      width: 0.681818em;
      left: 100%;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      border-top: 2px solid white;
      border-right: 2px solid white; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
.package {
  position: relative;
  height: 100%;
  padding: 0.454545em;
  border-radius: 1.363636em;
  border: 3px solid #B4CFEE;
  display: flex;
  flex-direction: column;
  justify-content: space-between; }
  /* line 13, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__title {
    text-align: center;
    font-weight: 700;
    margin-bottom: 1.818182em; }
    /* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
    .package__title .gamma {
      margin-bottom: 0; }
  /* line 23, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__content {
    padding: 1.818182em; }
  /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__cta, .package__cta--tertiary, .package__cta--secondary, .package__cta--primary {
    display: block;
    position: sticky;
    top: 0.454545em;
    padding: 0.909091em 2.727273em;
    border-radius: 1.363636em;
    box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 10px 10px 20px 0 rgba(0, 0, 0, 0.2);
    text-align: center;
    color: white;
    transition: transform 0.2s; }
    /* line 38, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
    .package__cta:hover, .package__cta--tertiary:hover, .package__cta--secondary:hover, .package__cta--primary:hover {
      transform: scale(0.95); }
  /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__cta--primary {
    background: radial-gradient(circle, #B4CFEE 0%, #2B6EBB 100%); }
  /* line 48, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__cta--secondary {
    background: linear-gradient(318.55deg, #E27222 0%, #F0AB00 100%); }
  /* line 53, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-417.scss */
  .package__cta--tertiary {
    background: linear-gradient(345.83deg, #87909A 0%, #C2CEDC 100%);
    color: #FFF; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
.packages {
  display: flex;
  justify-content: space-around;
  padding: 2.727273em;
  margin-bottom: 0.909091em;
  border-radius: 30px;
  background: linear-gradient(to right, #B4CFEE 0%, #2B6EBB 59.9%, #2B6EBB 100%);
  box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 10px 10px 20px 0 rgba(0, 0, 0, 0.2);
  color: white; }
  @media (max-width: 56.25em) {
    /* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
    .packages {
      flex-direction: column; } }
  /* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
  .packages__item {
    flex: 0 1 32%;
    display: flex;
    flex-direction: column;
    align-items: center; }
    @media (max-width: 56.25em) {
      /* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
      .packages__item {
        margin-bottom: 1.818182em; } }
  /* line 29, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
  .packages__image {
    max-width: 7.272727em;
    margin-bottom: 0.909091em; }
  /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
  .packages__text {
    font-size: 1.590909em;
    font-weight: 700; }
  /* line 40, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
  .packages__cta {
    font-size: 1.590909em;
    max-width: 4.285714em;
    position: relative;
    text-align: center;
    font-weight: 700;
    line-height: 1.142857em; }
    /* line 49, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
    .packages__cta:after {
      content: '';
      position: absolute;
      left: 50%;
      top: 110%;
      transform: translateX(-50%) rotate(45deg);
      height: 0.714286em;
      width: 0.714286em;
      border-bottom: 4px solid white;
      border-right: 4px solid white; }
  /* line 62, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-412.scss */
  .packages__link {
    margin: auto; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-409.scss */
.icon-button {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 20em;
  margin: -1.363636em auto 40px;
  padding: 0.909091em;
  border-radius: 1.363636em;
  background: linear-gradient(345.83deg, #EEEEEE 0%, #FFFFFF 100%);
  box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 10px 10px 20px 0 rgba(0, 0, 0, 0.2);
  color: #2F6FB9;
  z-index: 2;
  justify-content: center;
  transition: transform 0.2s; }
  /* line 18, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-409.scss */
  .icon-button__icon {
    flex: 0 1 auto;
    max-width: 4.090909em;
    margin-right: 1em; }
  /* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-409.scss */
  .icon-button__content {
    color: #2F6FB9; }
    /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-409.scss */
    .icon-button__content :first-child {
      margin-bottom: 0.363636em; }
  /* line 32, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-409.scss */
  .icon-button:hover {
    transform: scale(0.95); }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
.site-link, .site-link--secondary {
  color: #FFF;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%; }
  /* line 11, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__image, .site-link__image--secondary {
    margin-bottom: 2.727273em;
    max-height: 5.454545em;
    width: auto; }
  /* line 17, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__image--secondary {
    margin-bottom: 1.818182em; }
  /* line 22, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__title, .site-link__title--secondary {
    font-size: 1.590909em;
    margin-bottom: 0.428571em;
    font-weight: 700;
    width: 100%; }
  /* line 30, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__content, .site-link__content--secondary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 6.818182em;
    padding: 0.909091em;
    border: 1px solid #B4CFEE;
    border-radius: 1.363636em;
    line-height: 1.181818em;
    color: #0F64AE; }
  /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__description, .site-link__description--secondary {
    font-size: 1em;
    width: 100%; }
  /* line 54, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__title--secondary {
    margin: 0 0.5em 1em; }
  /* line 59, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__content--secondary {
    background: linear-gradient(336.32deg, #7D5CC6 0%, #C50084 100%);
    box-shadow: -10px -10px 30px 0 rgba(238, 238, 238, 0.2), 0 10px 30px 0 rgba(0, 0, 0, 0.3);
    color: white;
    transition: transform 0.2s; }
  /* line 67, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__description--secondary {
    font-size: 1.590909em;
    font-weight: 700;
    border: 3px solid #FFF;
    border-radius: 0.5em;
    padding: 0.75em 0.9em; }
  /* line 77, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-397.scss */
  .site-link__content--secondary:hover {
    transform: scale(0.95); }

/* Slider */
/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

/* line 17, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  /* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-list:focus {
    outline: none; }
  /* line 28, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

/* line 33, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

/* line 42, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0.909091em; }
  /* line 51, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  /* line 57, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-track:after {
    clear: both; }
  /* line 61, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-loading .slick-track {
    visibility: hidden; }
  /* line 65, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .small-carousel .slick-track {
    margin-bottom: 0; }

/* line 69, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-slide {
  float: left;
  min-height: 1px;
  display: none; }
  /* line 72, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  [dir="rtl"] .slick-slide {
    float: right; }
  /* line 75, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-slide img {
    display: block; }
  /* line 78, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-slide.slick-loading img {
    display: none; }
  /* line 84, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-slide.dragging img {
    pointer-events: none; }
  /* line 88, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-initialized .slick-slide {
    display: block;
    position: relative; }
  /* line 93, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-loading .slick-slide {
    visibility: hidden; }
  /* line 97, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

/* line 104, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
.slick-dots {
  text-align: center; }
  /* line 108, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-dots > li {
    display: inline-block; }
    /* line 111, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
    .slick-dots > li.slick-active button {
      background: #2F6FB9; }
  /* line 116, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
  .slick-dots > li button {
    line-height: 0;
    display: block;
    width: 1.363636em;
    height: 0.363636em;
    cursor: pointer;
    color: transparent;
    border: 0.090909em solid #2F6FB9;
    background: transparent;
    margin: 0 0.136364em; }
    /* line 127, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-442.scss */
    .slick-dots > li button:focus {
      outline: none; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
.pancake {
  position: relative;
  display: inline-block;
  height: 2.227273em;
  width: 2.227273em;
  cursor: pointer; }
  /* line 10, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
  .pancake.active {
    background-color: white; }
  /* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
  .pancake__line {
    position: absolute;
    height: 0.227273em;
    width: 1.454545em;
    background-color: #fff;
    top: 50%;
    left: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
    -moz-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    -o-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%); }
    /* line 23, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
    .active .pancake__line {
      background-color: #2F6FB9; }
    /* line 27, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
    .pancake__line:before, .pancake__line:after {
      content: '';
      position: absolute;
      height: 0.227273em;
      width: 1.454545em;
      background-color: #fff; }
      /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
      .active .pancake__line:before, .active .pancake__line:after {
        background-color: #2F6FB9; }
    /* line 39, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
    .pancake__line:before {
      top: 0.363636em; }
    /* line 43, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-443.scss */
    .pancake__line:after {
      bottom: 0.363636em; }

/* line 4, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-455.scss */
.profile {
  position: relative;
  display: inline-block;
  height: 2.227273em;
  width: 2.227273em;
  cursor: pointer;
  float: right;
  color: white;
  padding: 0.454545em; }
  /* line 14, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-455.scss */
  .profile.active {
    color: #2F6FB9;
    background-color: white; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
.hero, .hero--noimage {
  height: 11.363636em;
  color: white;
  overflow: hidden;
  margin-bottom: 2.727273em;
  position: relative; }
  /* line 10, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero--noimage {
    margin-bottom: 0;
    height: 13.636364em; }
  /* line 16, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__inner {
    position: relative;
    display: flex;
    height: 100%; }
    /* line 21, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
    .hero__inner:after {
      content: '';
      position: absolute;
      top: 0;
      left: -50%;
      height: 118%;
      width: 200%;
      background: radial-gradient(ellipse at top, transparent 59.7%, white 60%);
      pointer-events: none;
      z-index: 1; }
  /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__first-half {
    flex: 0 1 40%;
    position: relative;
    background: linear-gradient(80deg, #B4CFEE 0%, #88B0DD 23.24%, #4681C5 61.4%, #2F6FB9 95%); }
    /* line 39, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
    .hero__first-half:after {
      content: '';
      position: absolute;
      top: 0;
      left: 95%;
      border-top: 18.181818em solid #2F6FB9;
      border-right: 13.636364em solid transparent;
      z-index: 1; }
      /* line 48, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero--noimage .hero__first-half:after {
        border-top: 13.636364em solid #2F6FB9;
        border-right: 9.090909em solid transparent; }
    @media (max-width: 50em) {
      /* line 34, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero__first-half {
        display: none; } }
  /* line 59, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__second-half {
    position: relative;
    flex: 0 1 60%;
    background: radial-gradient(circle at right, #B4CFEE 0%, #4C85C7 37.86%, #2B6EBB 100%);
    background-position: center; }
    /* line 65, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
    .hero__second-half:after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      background-color: #2F6FB9;
      opacity: 0.6;
      z-index: 1; }
      @media (max-width: 50em) {
        /* line 65, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
        .hero__second-half:after {
          opacity: 0.8; } }
      /* line 80, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero--noimage .hero__second-half:after {
        display: none; }
    @media (max-width: 50em) {
      /* line 59, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero__second-half {
        flex: 1 1 100%; } }
  /* line 90, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__title-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform: translate(-50%, -50%);
    z-index: 2; }
    /* line 98, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
    .hero--noimage .hero__title-wrap {
      top: 1.818182em;
      color: white;
      transform: translateX(-50%); }
      @media (max-width: 50em) {
        /* line 98, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
        .hero--noimage .hero__title-wrap {
          top: 50%;
          transform: translate(-50%, -50%); } }
  /* line 110, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__title {
    margin-bottom: 0.266667em;
    color: white;
    word-break: break-all;
    font-size: 2.75em; }
    /* line 117, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
    .hero--noimage .hero__title {
      margin-bottom: 0.266667em;
      color: white; }
      @media (max-width: 50em) {
        /* line 117, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
        .hero--noimage .hero__title {
          font-size: 25px;
          font-size: 2.5rem; } }
    @media (max-width: 50em) {
      /* line 110, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero__title {
        font-size: 35px;
        font-size: 3.5rem; } }
  /* line 132, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__subtitle {
    font-size: 1.590909em;
    color: white;
    text-align: center; }
    @media (max-width: 50em) {
      /* line 132, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
      .hero__subtitle {
        display: none; } }
  /* line 144, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-444.scss */
  .hero__contact {
    position: absolute;
    right: 0;
    top: 0;
    z-index: 2;
    margin: 0.5em; }

/* line 11, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorColumns {
  width: 100%; }
  /* line 21, ../../../c/scss/node_modules/bourbon/app/assets/stylesheets/addons/_clearfix.scss */
  .editorColumns:before, .editorColumns:after {
    content: " ";
    display: table; }
  /* line 27, ../../../c/scss/node_modules/bourbon/app/assets/stylesheets/addons/_clearfix.scss */
  .editorColumns:after {
    clear: both; }

/* line 15, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorColumnsInner {
  float: left; }
  @media (max-width: 78.125em) {
    /* line 15, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    .editorColumnsInner {
      width: auto;
      float: none; } }
/* line 24, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorColumnsPadding {
  padding: 0.227273em; }

/* line 32, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorImgFloat-left,
.editorLeftImage {
  float: left;
  width: auto;
  margin: 0 1em 1em 0; }

/* line 38, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorImgFloat-right,
.editorRightImage {
  float: right;
  width: auto;
  margin: 0 0 1em 1em; }

/* line 44, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorImgFloat-center {
  margin: 1em auto 1em;
  text-align: center;
  display: block; }

/* line 53, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.imageBox {
  width: 100%;
  text-align: center;
  display: block;
  clear: both;
  margin: 1em 0; }
  /* line 59, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  .imageBox img {
    margin: 0 auto; }

/* line 64, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.imageBoxCaption {
  text-align: left;
  display: block;
  margin: 0 auto; }

/* line 72, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
  height: auto; }

/* line 82, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* line 95, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy table {
  background-color: rgba(255, 255, 255, 0.6);
  font-size: 0.727273em;
  margin: 0 0 0 -5em;
  position: relative;
  padding: 1.875em;
  margin: 3.4375em;
  display: block; }
  /* line 105, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  .rteCopy table:before {
    content: "";
    position: absolute;
    top: -3.75em;
    left: -1.875em;
    width: 100%;
    height: 100%;
    background-color: white;
    opacity: 0.6; }
  /* line 116, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  .rteCopy table h1, .rteCopy table h2, .rteCopy table h3, .rteCopy table h4, .rteCopy table h5 {
    color: #363636;
    padding: 0 0.454545em 0.636364em 0.454545em; }
  @media (max-width: 37.5em) {
    /* line 122, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    .rteCopy table:before {
      content: none; } }
/* line 128, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy thead {
  border-bottom: 1px solid #363636;
  position: relative;
  z-index: 2; }

/* line 134, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy tbody {
  position: relative;
  z-index: 2; }

/* line 139, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy th {
  color: #363636;
  vertical-align: bottom;
  padding: 0 0.454545em 0.636364em 0.454545em;
  position: relative;
  z-index: 2; }

/* line 147, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy td {
  padding: 0.409091em 0.568182em 0.909091em;
  position: relative;
  z-index: 2;
  width: 100%; }

/* line 154, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy tbody tr {
  border-bottom: 1px solid #363636; }

/* line 158, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.clearer {
  clear: both; }

/* line 171, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorFullBreak {
  clear: both; }

/* line 178, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
small {
  font-size: 85%; }

/* line 182, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
strong {
  font-weight: 700;
  font-family: "interFace", Arial, sans-serif; }

/* line 187, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
a strong {
  font-weight: 700; }

/* line 191, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
em {
  font-style: italic; }

/* line 195, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
cite {
  font-style: normal; }

/* line 199, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorUnderline {
  text-decoration: underline; }

/* line 203, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorStrikethrough {
  text-decoration: line-through; }

/* line 207, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rtebr {
  display: block;
  height: 1em; }

/* line 212, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.segment__rte {
  font-size: 1em; }
  @media (max-width: 56.25em) {
    /* line 212, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    .segment__rte {
      font-size: 1em; } }
/* line 224, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorList,
.editorRom,
.editorBullets {
  margin: 0 0 1em 0.909091em;
  list-style-type: disc; }

/* line 233, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
ol.editorList, .rteCopy ol {
  list-style-type: decimal; }

/* line 237, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
ol.editorRom {
  list-style-type: lower-roman; }

/* line 241, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0; }

/* line 248, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
ul.editorList {
  list-style-type: none; }
  /* line 251, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  ul.editorList > li {
    position: relative;
    font-family: "interFace", Arial, sans-serif; }
    /* line 255, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    ul.editorList > li:before {
      content: '•';
      color: #363636;
      position: absolute;
      left: -0.727273em; }
    /* line 262, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    .lt-ie9 ul.editorList > li {
      background-image: none;
      padding-left: 0; }
  /* line 268, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  ul.editorList li {
    margin-bottom: 0.681818em; }

/* line 274, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rteCopy ol li, ol.editorList li {
  position: relative;
  padding-left: 0.272727em; }

/* line 281, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline; }

/* line 289, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
sup {
  top: -0.5em; }

/* line 293, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
sub {
  bottom: -0.25em; }

/* line 301, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.centerJustify {
  width: 100%;
  text-align: center; }

/* line 306, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.leftJustify {
  width: 100%;
  text-align: left; }

/* line 311, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.rightJustify {
  width: 100%;
  text-align: right; }

/* line 316, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.justified {
  width: 100%;
  text-align: justify;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  hyphens: auto; }

/* line 327, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.inlineQuote {
  font-style: italic; }

/* line 330, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.inlineCite {
  font-style: italic;
  font-weight: bold; }

/* line 334, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
.editorBlockQuote {
  padding: 0 0 0 0.681818em;
  margin: 0 0 1em; }
  /* line 338, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  .editorBlockQuote p {
    margin-bottom: 0; }
  /* line 342, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
  .editorBlockQuote small {
    display: block; }
    /* line 344, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/sitestyle-431-441-448.scss */
    .editorBlockQuote small:before {
      content: '\2014 \00A0'; }

/* line 3, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-524.scss */
.alert-message {
  font-size: 16px;
  font-size: 1.6rem;
  padding: 10px;
  width: 100%; }
  /* line 8, ../../../websites/site/bmjcareers_f/logs/build/final_20231130_095843/1/modules-scss-subscriptions-524.scss */
  .alert-message__content {
    max-width: 1300px;
    margin: auto;
    color: #2B6EBB;
    text-align: center; }

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdmFyL3d3dy9jZ2kvc3RkaW4uY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi8uLi8uLi8uLi8uLi8uLi8uLi92YXIvd3d3L2NnaS9zdGRpbiIsCgkJIm1haW4tc3R5bGUtbmV3LXN1YnNjcmlwdGlvbnMuc2Nzc2kiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGl2ZS9zY3NzL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsCgkJIi4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saXZlL3Njc3Mvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLAoJCSJtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzMy5zY3NzIiwKCQkibWFpbi1zdHlsZS1uZXctc3Vic2NyaXB0aW9ucy00MzQuc2NzcyIsCgkJIm1haW4tc3R5bGUtbmV3LXN1YnNjcmlwdGlvbnMtNDM1LnNjc3MiLAoJCSJtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzNi5zY3NzIiwKCQkidHlwb2dyYXBoeS5zY3NzIiwKCQkic2l0ZXN0eWxlLTQzMS00MzktNDU0LnNjc3MiLAoJCSJzaXRlc3R5bGUtNDMxLTQzOS00NTcuc2NzcyIsCgkJInNpdGVzdHlsZS00MzEtNDQwLTQ0Ni5zY3NzIiwKCQkic2l0ZXN0eWxlLTQzMS00NDAtNDQ1LnNjc3MiLAoJCSJzaXRlc3R5bGUtNDMxLTQ0MC00NDcuc2NzcyIsCgkJInNpdGVzdHlsZS00MzEtNDQwLTQ0OS5zY3NzIiwKCQkic2l0ZXN0eWxlLTQzMS00NDAtNDUwLnNjc3MiLAoJCSJzaXRlc3R5bGUtNDMxLTQ0MC00NTIuc2NzcyIsCgkJInNpdGVzdHlsZS00MzEtNDQwLTQ1MS5zY3NzIiwKCQkic2l0ZXN0eWxlLTQzMS00NDAtNDUzLnNjc3MiLAoJCSJidXR0b25zLXNjc3Mtc3Vic2NyaXB0aW9ucy5zY3NzIiwKCQkibW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtMzk5LnNjc3MiLAoJCSJtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy00MDEuc2NzcyIsCgkJIm1vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQwMi5zY3NzIiwKCQkibW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNDAzLnNjc3MiLAoJCSJtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy00MDcuc2NzcyIsCgkJIm1vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQxMy5zY3NzIiwKCQkibW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNDE3LnNjc3MiLAoJCSJtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy00MTIuc2NzcyIsCgkJIm1vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQwOS5zY3NzIiwKCQkibW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtMzk3LnNjc3MiLAoJCSJzaXRlc3R5bGUtNDMxLTQ0MS00NDIuc2NzcyIsCgkJInNpdGVzdHlsZS00MzEtNDQxLTQ0My5zY3NzIiwKCQkic2l0ZXN0eWxlLTQzMS00NDEtNDU1LnNjc3MiLAoJCSJzaXRlc3R5bGUtNDMxLTQ0MS00NDQuc2NzcyIsCgkJInNpdGVzdHlsZS00MzEtNDQxLTQ0OC5zY3NzIiwKCQkibW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNTI0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICcvd2Vic2l0ZXMvc2l0ZS9ibWpjYXJlZXJzX2YvbG9ncy9idWlsZC9maW5hbF8yMDIzMTEzMF8wOTU4NDMvMS9tYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLnNjc3NpJzsiLAoJCSJAaW1wb3J0ICcvd2Vic2l0ZXMvc2hhcmVkL2xpdmUvc2Nzcy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2JvdXJib24nO1xyXG5AaW1wb3J0ICdtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzMy5zY3NzJztAaW1wb3J0ICdtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzNC5zY3NzJztAaW1wb3J0ICdtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzNS5zY3NzJztAaW1wb3J0ICdtYWluLXN0eWxlLW5ldy1zdWJzY3JpcHRpb25zLTQzNi5zY3NzJztAaW1wb3J0ICd0eXBvZ3JhcGh5LnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDM5LTQ1NC5zY3NzJztAaW1wb3J0ICdzaXRlc3R5bGUtNDMxLTQzOS00NTcuc2Nzcyc7QGltcG9ydCAnc2l0ZXN0eWxlLTQzMS00NDAtNDQ2LnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDQwLTQ0NS5zY3NzJztAaW1wb3J0ICdzaXRlc3R5bGUtNDMxLTQ0MC00NDcuc2Nzcyc7QGltcG9ydCAnc2l0ZXN0eWxlLTQzMS00NDAtNDQ5LnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDQwLTQ1MC5zY3NzJztAaW1wb3J0ICdzaXRlc3R5bGUtNDMxLTQ0MC00NTIuc2Nzcyc7QGltcG9ydCAnc2l0ZXN0eWxlLTQzMS00NDAtNDUxLnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDQwLTQ1My5zY3NzJztAaW1wb3J0ICdidXR0b25zLXNjc3Mtc3Vic2NyaXB0aW9ucy5zY3NzJztAaW1wb3J0ICdtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy0zOTkuc2Nzcyc7QGltcG9ydCAnbW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNDAxLnNjc3MnO0BpbXBvcnQgJ21vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQwMi5zY3NzJztAaW1wb3J0ICdtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy00MDMuc2Nzcyc7QGltcG9ydCAnbW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNDA3LnNjc3MnO0BpbXBvcnQgJ21vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQxMy5zY3NzJztAaW1wb3J0ICdtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy00MTcuc2Nzcyc7QGltcG9ydCAnbW9kdWxlcy1zY3NzLXN1YnNjcmlwdGlvbnMtNDEyLnNjc3MnO0BpbXBvcnQgJ21vZHVsZXMtc2Nzcy1zdWJzY3JpcHRpb25zLTQwOS5zY3NzJztAaW1wb3J0ICdtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy0zOTcuc2Nzcyc7QGltcG9ydCAnc2l0ZXN0eWxlLTQzMS00NDEtNDQyLnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDQxLTQ0My5zY3NzJztAaW1wb3J0ICdzaXRlc3R5bGUtNDMxLTQ0MS00NTUuc2Nzcyc7QGltcG9ydCAnc2l0ZXN0eWxlLTQzMS00NDEtNDQ0LnNjc3MnO0BpbXBvcnQgJ3NpdGVzdHlsZS00MzEtNDQxLTQ0OC5zY3NzJztAaW1wb3J0ICdtb2R1bGVzLXNjc3Mtc3Vic2NyaXB0aW9ucy01MjQuc2Nzcyc7XHJcbiIsCgkJIi8vIEJvdXJib24gNC4yLjZcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsCgkJIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLAoJCSJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsCgkJIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLAoJCSIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLAoJCSIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwKCQkiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwKCQkiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLAoJCSIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLAoJCSJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwKCQkiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLAoJCSJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwKCQkiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwKCQkiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwKCQkiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLAoJCSJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsCgkJIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsCgkJIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsCgkJIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwKCQkiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLAoJCSIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsCgkJIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLAoJCSIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLAoJCSJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwKCQkiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLAoJCSJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsCgkJIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLAoJCSIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsCgkJIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsCgkJIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLAoJCSJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwKCQkiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwKCQkiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLAoJCSJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwKCQkiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLAoJCSJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLAoJCSIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwKCQkiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcblxuICY6YmVmb3JlLFxuICY6YWZ0ZXIge1xuICAgY29udGVudDogXCIgXCI7XG4gICBkaXNwbGF5OiB0YWJsZTtcbiB9XG5cbiAmOmFmdGVyIHtcbiAgIGNsZWFyOiBib3RoO1xuIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLAoJCSIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLAoJCSJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLAoJCSJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLAoJCSIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLAoJCSJcblxuLy9cbi8vIFJlc2V0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFkZHJlc3MsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgc2FtcCwgc21hbGwsIHN0cm9uZywgc3ViLCBzdXAsIHZhciwgYiwgaSwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0bWFyZ2luOjA7IFxuXHRwYWRkaW5nOjA7IFxuXHRib3JkZXI6MDsgXG5cdG91dGxpbmU6MDsgXG5cdGZvbnQtc2l6ZToxMDAlOyBcblx0dmVydGljYWwtYWxpZ246YmFzZWxpbmU7IFxuXHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xufVxuXG5ib2R5IHtcblx0bGluZS1oZWlnaHQ6MTtcbn1cblxub2wsIFxudWx7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5tYWlue1xuXHRkaXNwbGF5OmJsb2NrO1xufVxuXG5ibG9ja3F1b3RlLFxucSB7XG5cdHF1b3Rlczpub25lO1xufVxuXG4vLyBRdW90ZXNcbnE6YmVmb3JlLFxucTphZnRlcixcbmJsb2NrcXVvdGU6YmVmb3JlLFxuYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbmEge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRmb250LXNpemU6MTAwJTtcblx0dmVydGljYWwtYWxpZ246YmFzZWxpbmU7XG5cdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG59XG5cbmltZyB7XG5cdC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG59XG5cbmRlbCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG5hYmJyW3RpdGxlXSwgXG5kZm5bdGl0bGVdIHtcblx0Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkO1xuXHRjdXJzb3I6aGVscDtcbn1cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOjA7XG59XG5cbmlucHV0LFxuc2VsZWN0IHsgXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbn1cblxuaW5zIHtcblx0YmFja2dyb3VuZC1jb2xvcjojZmY5OyBcblx0Y29sb3I6IzAwMDsgXG5cdHRleHQtZGVjb3JhdGlvbjpub25lO1xufVxuXG5tYXJrIHtcblx0YmFja2dyb3VuZC1jb2xvcjojZmY5O1xuXHRjb2xvcjojMDAwOyBcblx0Zm9udC1zdHlsZTppdGFsaWM7IFxuXHRmb250LXdlaWdodDpib2xkO1xufVxuXG4vLyBGb3JtIFJlc2V0c1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5idXR0b24sXG5pbnB1dCB7XG4gICpvdmVyZmxvdzogdmlzaWJsZTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn0iLAoJCSJcblxuLy9cbi8vIE1lZGlhIFF1ZXJpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuJG1pbkJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiA3NjdweCxcbiAgbWVkaXVtOiA5OTJweCxcbiAgbGFyZ2U6IDEyMDBweFxuKTtcblxuJG1heEJyZWFrcG9pbnRzOiAoXG4gIC8vIG5hbWVzcGFjaW5nIGluYmV0d2VlbiBzaXplczogYWxwaGFiZXRpc2VkIG1vZGlmaWVycywgaW5kZW50ZWQgYmVsb3cgcGFyZW50IHRvIHZpc3VhbGlzZSByZWxhdGlvbnNoaXAuXG4gIFxuICAvLyBERVNLVE9QXG4gIGRlc2steGw6IDE2MDBweCxcbiAgLy8gZGVzay14bC1hOiAxNTUwcHgsXG4gIC8vIGRlc2steGwtYjogMTUyNXB4LFxuICBkZXNrLWw6IDE1MDBweCxcbiAgXHRkZXNrLWwtYTogMTQwMHB4LFxuICBkZXNrLW06IDEzNTBweCxcbiAgXHRkZXNrLW0tYTogMTMwMHB4LFxuICBkZXNrLXM6IDEyNTBweCxcbiAgXG4gIC8vIFRBQkxFVFxuICB0YWIteGw6IDEyMDBweCxcbiAgXHR0YWIteGwtYTogMTE1MHB4LFxuICBcdHRhYi14bC1iOiAxMTAwcHgsXG4gIFx0dGFiLXhsLWM6IDEwNTBweCxcbiAgdGFiLWw6IDEwMDBweCxcbiAgXHR0YWItbC1hOiA5NTBweCxcbiAgXHR0YWItbC1iOiA5MDBweCxcbiAgdGFiLW06IDg1MHB4LFxuICB0YWItczogODAwcHgsXG4gIFx0dGFiLXMtYTogNzUwcHgsXG4gIFx0dGFiLXMtYjogNzAwcHgsXG4gIFx0dGFiLXMtYzogNjUwcHgsXG4gIFx0XG4gIC8vIE1PQklMRVxuICBtb2IteGw6IDYwMHB4LFxuICBcdG1vYi14bC1hOiA1NTBweCxcbiAgbW9iLWw6IDUwMHB4LFxuICBcdG1vYi1sLWE6IDQ1MHB4LFxuICBtb2ItbTogNDAwcHgsXG4gIFx0bW9iLW0tYTogMzUwcHgsXG4gIG1vYi1zOiAzMjBweCxcbik7XG5cbkBtaXhpbiBicCgkYnJlYWtwb2ludCkgeyBcbiAgQGlmIG1hcC1oYXMta2V5KCRtaW5CcmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcbiAgXHQkcG9pbnQ6IHN0cmlwLXVuaXRzKG1hcC1nZXQoJG1pbkJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIC8gMTYgK2VtO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJG1heEJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xuICBcdCRwb2ludDogc3RyaXAtdW5pdHMobWFwLWdldCgkbWF4QnJlYWtwb2ludHMsICRicmVha3BvaW50KSkgLyAxNiArZW07XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHBvaW50fSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59IiwKCQkiLy9cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU2V0IGRlYnVnIGZsYWcgb24gdGhlIHByZXZpZXcgc2l0ZSBmb3IgZGV2ZWxvcG1lbnRcbiRERUJVRzogZmFsc2U7XG4kcmVzcFByZXZpZXc6IGZhbHNlO1xuXG5cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHQvLyB3aWR0aHNcblx0XG5cdCRzaXRlV2lkdGg6XHRcdFx0XHQxOTIwO1xuXHQkaW5uZXJXaWR0aDpcdFx0XHQxNzYwO1xuXHQkY29udGVudFdpZHRoOlx0XHRcdDE0ODA7XG5cdFxuXHRcblx0Ly8gd2VpZ2h0c1x0XG5cdCRmd0JvbGQ6IFx0XHRcdFx0NzAwO1xuXHQkZndTZW1pYm9sZDogXHRcdFx0NjAwO1xuXHQkZndSZWd1bGFyOiBcdFx0XHQ0MDA7XG5cdCRmd0xpZ2h0OiBcdFx0XHRcdDMwMDtcblx0JGZ3U3VwZXJsaWdodDogXHRcdFx0MjAwO1xuXHRcblx0XG5cdC8vIGZhbWlseVxuXHQkZmZCYXNlOiBcdFx0XHRcImludGVyRmFjZVwiLEFyaWFsLHNhbnMtc2VyaWY7XG5cdCRmZlNlY29uZGF5OiBcdFx0XCJpbnRlckZhY2VcIixBcmlhbCxzYW5zLXNlcmlmO1xuXHQkZmZIZWFkaW5nczogXHRcdFwiaW50ZXJGYWNlXCIsQXJpYWwsc2Fucy1zZXJpZjtcblx0XG5cdFxuXHQvLyBzdHlsZVxuXHQkZnpCYXNlOiBcdFx0XHRcdFx0MjIgIWRlZmF1bHQ7XG5cdCRmek1vYjogXHRcdFx0XHRcdDE2O1xuXHQkbGhCYXNlOiBcdFx0XHRcdFx0MjIgIWRlZmF1bHQ7XG5cdCRmd0Jhc2U6IFx0XHRcdFx0XHQkZndSZWd1bGFyO1xuXHQkZndIZWFkaW5nOiAgXHRcdFx0XHQkZndCYXNlO1xuXG5cbi8vIENvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHQkY29sb3IxOiBcdFx0XHRcdFx0IzJGNkZCOTsgLy8gQkxVRSBcdFx0XHRbQk1KIEJsdWVdXG5cdCRjb2xvcjI6IFx0XHRcdFx0XHQjZjBhYjAwOyAvLyBZRUxMT1cgXHRcdFx0W1JFQ1JVSVRFUiBZRUxMT1ddXG5cdCRjb2xvcjM6XHRcdFx0XHRcdCNDQjI0MzI7IC8vIFJFRCBcdFx0XHRbQUxFUlQgUkVEXVxuXHQkY29sb3I0OiBcdFx0XHRcdFx0IzM2MzYzNjsgLy8gT0ZGIEJMQUNLIFx0XHRbVEVYVCBDT0xPUl1cblx0JGNvbG9yNTogXHRcdFx0XHRcdCMzNDM0MzM7IC8vIE9GRiBCTEFDSyBcdFx0W0hFQURJTkcgQ09MT1JdXG5cdCRjb2xvcjY6IFx0XHRcdFx0XHQjZjBmMGYwOyAvLyBHcmV5XHRcdFtIT1ZFUiBDT0xPUl1cblx0JGNvbG9yNzogXHRcdFx0XHRcdCM1ODk1ZDk7IC8vIExJR0hUIEJMVUVcblx0JGNvbG9yODogICBcdFx0XHRcdFx0IzQzODdkNTsgLy8gSE9WRVIgQkxVRVxuXHQkY29sb3I5OiBcdFx0XHRcdFx0I2Q1ZTRmNjsgLy8gSElHSExJR0hUIEJMVUVcblx0XG5cdFxuXHRcblx0JGNvbG9yMTA6XHRcdFx0XHRcdCMyQjZFQkI7IC8vIERhcmtlciBCbHVlIC0tIGJ1dHRvbnNcblx0JGNvbG9yMTE6XHRcdFx0XHRcdCNCNENGRUU7IC8vIFZlcnkgbGlnaHQgYmx1ZSAtIEJvcmRlcnNcblx0JGNvbG9yMTI6XHRcdFx0XHRcdCMwMEIyQTk7IC8vIHRlYWxcblx0JGNvbG9yMTM6XHRcdFx0XHRcdCNFMjcyMjI7IC8vIG9yYW5nZVxuXHQkY29sb3IxNDpcdFx0XHRcdFx0IzY5QkUyODsgLy8gZ3JlZW5cblx0JGNvbG9yMTU6IFx0XHRcdFx0XHQjMEY2NEFFOyAvLyBkYXJrIGJsdWUgW2N0YSBlbXBoYXNpcyB0ZXh0XVxuXHRcbi8vIENvbG9yIHJvbGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cblx0JGNvbG9yUHJpbWFyeTogXHRcdFx0XHQkY29sb3IxO1xuXHQkY29sb3JTZWNvbmRhcnk6IFx0XHRcdCRjb2xvcjI7XG5cdCRjb2xvclRlcnRpYXJ5OiBcdFx0XHQkY29sb3IzO1xuXHQkY29sb3JRdWF0ZXJuYXJ5Olx0XHRcdCRjb2xvcjE1O1xuXHQkY29sb3JCb2R5OiBcdFx0XHRcdHdoaXRlICFkZWZhdWx0O1xuXHQkY29sb3JUZXh0OiBcdFx0XHRcdCRjb2xvcjQgIWRlZmF1bHQ7XG5cdCRjb2xvckhlYWRpbmdzOiBcdFx0XHQkY29sb3I1O1xuXHRcblx0Ly8gc3RhdGVzXG5cdFxuXHQkY29sb3JBY3RpdmU6IFx0XHRcdFx0JGNvbG9yMTtcblx0JGNvbG9ySG92ZXI6IFx0XHRcdFx0JGNvbG9yNjsiLAoJCSIvLyBSZXF1aXJlZCBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgJGZ6QmFzZVxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZnpCYXNlKSB7XG5cdEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cblxuLy8gRm9udCBzaXppbmcgdXNpbmcgcmVtcyB3aXRoIGEgZmFsbGJhY2sgdG8gcHggaWYgdW5zdXBwb3J0ZWRcbi8vIEZvbnQtc2l6ZSBvZiA2Mi41JSBtdXN0IGJlIHNldCBvbiBib2R5XG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDE2KSB7XG5cdGZvbnQtc2l6ZTogJHNpemVWYWx1ZSArIHB4O1xuXHRmb250LXNpemU6ICgkc2l6ZVZhbHVlIC8gMTApICsgcmVtO1xufVxuXG4vLyBHbG9iYWwgcHJvcGVydGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4qIHtcblx0Ly8gSUUgOCBpZ25vcmVzIGJveC1zaXppbmc6IGJvcmRlci1ib3ggaWYgbWluL21heC13aWR0aC9oZWlnaHQgaXMgdXNlZC5cblx0Ym94LXNpemluZzogaW5oZXJpdDtcblx0JjphZnRlcixcblx0JjpiZWZvcmUge1xuXHRcdGJveC1zaXppbmc6IGluaGVyaXQ7XG5cdH1cbn1cblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogNjIuNSU7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuXHRtYXJnaW46IDA7XG5cdGZvbnQtZmFtaWx5OiAkZmZCYXNlO1xuXHRAaW5jbHVkZSBmb250LXNpemUoJGZ6QmFzZSk7XG5cdGxpbmUtaGVpZ2h0OiAoJGxoQmFzZS8kZnpCYXNlKTtcblx0Y29sb3I6ICRjb2xvclRleHQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvckJvZHk7XG5cdGZvbnQtd2VpZ2h0OiAkZndMaWdodDtcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblxuXHRAaW5jbHVkZSBicCh0YWItbC1iKSB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKCRmek1vYik7XG5cdH1cbn1cblxubWFpbiB7XG5cdG1heC13aWR0aDogZW0oJHNpdGVXaWR0aCk7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLyBEZWZhdWx0IGVsZW1lbnQgc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuaW1nIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8vIFBhcmFncmFwaCBsaW5lIGJyZWFrIGVsZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaHIge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3I0O1xuXHRib3JkZXI6IDA7XG5cdGhlaWdodDogZW0oMSk7XG59XG5cbmEge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uY2VudGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufSIsCgkJIi8vIEhlYWRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkaW5nczogXHRcdFx0XHRcdFx0XHQnLmFscGhhJywnLmJldGEnLCcuZ2FtbWEnLCcuZGVsdGEnLCcuZXBzaWxvbicsJy56ZXRhJztcbiRoZWFkaW5nU2l6ZXM6IFx0XHRcdFx0XHRcdDEyMCw3NSw1NSwyMiwzNSwxNjtcbiRoZWFkaW5nRmFtaWxpZXM6IFx0XHRcdFx0XHQkZmZIZWFkaW5ncywgJGZmSGVhZGluZ3MsICRmZkhlYWRpbmdzLCAkZmZIZWFkaW5ncywgJGZmSGVhZGluZ3MsICRmZkhlYWRpbmdzO1xuJGhlYWRpbmdDb2xvcnM6IFx0XHRcdFx0XHRpbmhlcml0ICwgJGNvbG9yUHJpbWFyeSwgJGNvbG9yUHJpbWFyeSwgJGNvbG9yUHJpbWFyeSwgJGNvbG9yUHJpbWFyeSwgaW5oZXJpdDtcbiRoZWFkaW5nTWFyZ2luczogXHRcdFx0XHRcdDIwLDQwLDIwLDEwLDIwLDE2O1xuJGhlYWRpbmdMaW5lSGVpZ2h0czogXHRcdFx0XHQxMjAsNzUsNTUsMjQsMzUsMTY7XG4kaGVhZGluZ1dlaWdodHM6IFx0XHRcdFx0XHQkZndCb2xkLCAkZndCb2xkLCAkZndCb2xkLCAkZndCb2xkLCAkZndCb2xkLCAkZndSZWd1bGFyO1xuXG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRoZWFkaW5ncykge1xuXHQucnRlQ29weSBoI3skaX0sI3tudGgoJGhlYWRpbmdzLCRpKX0ge1xuXHRcdGZvbnQtc2l6ZTogZW0obnRoKCRoZWFkaW5nU2l6ZXMsJGkpKTtcblx0XHRmb250LWZhbWlseTogI3tudGgoJGhlYWRpbmdGYW1pbGllcywkaSl9O1xuXHRcdGNvbG9yOiAje250aCgkaGVhZGluZ0NvbG9ycywkaSl9O1xuXHRcdGxpbmUtaGVpZ2h0OiAobnRoKCRoZWFkaW5nTGluZUhlaWdodHMsJGkpL250aCgkaGVhZGluZ1NpemVzLCRpKSk7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0obnRoKCRoZWFkaW5nTWFyZ2lucywkaSksbnRoKCRoZWFkaW5nU2l6ZXMsJGkpKTtcblx0XHRmb250LXdlaWdodDogI3tudGgoJGhlYWRpbmdXZWlnaHRzLCRpKX07XG5cdH1cbn1cblxuLmJvbGQge1xuXHRmb250LXdlaWdodDogJGZ3Qm9sZDtcbn1cblxuLmFscGhhLCAuYmV0YSwgLmdhbW1hLCAuZXBzaWxvbiB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFscGhhIHtcblx0QGluY2x1ZGUgYnAobW9iLXhsLWEpIHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoNzUpO1xuXHR9XG59XG5cbi5lcHNpbG9uLS1hbHQge1xuXHRAZXh0ZW5kIC5lcHNpbG9uO1xuXHRjb2xvcjogJGNvbG9yVGV4dDtcbn1cblxuLmxhcmdldGV4dCB7XG5cdEBpbmNsdWRlIGZvbnQtc2l6ZSgzNSk7XG5cdG1hcmdpbi1ib3R0b206IGVtKDIwLDM1KTtcbn0iLAoJCSIiLAoJCSIubWFyZ2luLWJvdHRvbSB7XG5cdG1hcmdpbi1ib3R0b206IGVtKDIwKTtcbn0iLAoJCSIkbW9kdWxlOiBcdFx0J29uZS1jb2wnO1xuXG5cbi4jeyRtb2R1bGV9e1xuXHRwYWRkaW5nOiBlbSg1MCk7XG5cdFxuXHRAaW5jbHVkZSBicChkZXNrLWwpe1xuXHRcdHBhZGRpbmc6IGVtKDUwKSBlbSgxNSk7XG5cdH1cblx0XG5cdFxuXHQmX190aXRsZSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDYwKTtcblx0XHRcblx0XHQmID4gLmJldGEge1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmd0JvbGQ7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX193cmFwcGVyIHtcblx0XHRAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1sLWIpIHtcblx0XHRcdEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19jb2wge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdH1cblx0XG5cdCZfX2NvbnRlbnQge1xuXHRcdCRmejogMjI7XG5cdFx0Zm9udC1zaXplOiBlbSgyMik7XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiBcdFx0J3R3by1jb2wnO1xuXG5cbi4jeyRtb2R1bGV9e1xuXHRwYWRkaW5nOiBlbSg1MCk7XG5cdFxuXHRAaW5jbHVkZSBicChkZXNrLWwpe1xuXHRcdHBhZGRpbmc6IGVtKDUwKSBlbSgxNSk7XG5cdH1cblx0XG5cdCYtLWdyZXkge1xuXHRcdEBleHRlbmQgLiN7JG1vZHVsZX07XG5cdFx0YmFja2dyb3VuZDogJGNvbG9yNjtcblx0fVxuXHRcblx0Jl9fdGl0bGUge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tYm90dG9tOiBlbSg2MCk7XG5cdFx0XG5cdFx0JiA+IC5iZXRhIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fd3JhcHBlciB7XG5cdFx0QGluY2x1ZGUgZGlzcGxheShmbGV4KTtcblx0XHRcblx0XHRAaW5jbHVkZSBicCh0YWItbC1iKSB7XG5cdFx0XHRAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fY29sIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEgMSA1MCUpO1xuXHRcdFxuXHRcdCY6bnRoLW9mLXR5cGUoMSl7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiBlbSgzMCk7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGJwKHRhYi1sLWIpIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogZW0oNTApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmOm50aC1vZi10eXBlKDIpe1xuXHRcdFx0cGFkZGluZy1sZWZ0OiBlbSgzMCk7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGJwKHRhYi1sLWIpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0fVxufSIsCgkJIiRtb2R1bGU6ICd0aHJlZS1jb2wnO1xuXG4uI3skbW9kdWxlfSB7XG5cdFxuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbi1ib3R0b206IGVtKDEyMCk7XG5cdFxuXHRAaW5jbHVkZSBicCh0YWItbC1iKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXHRcblx0Jl9fY29sIHtcblx0XHRmbGV4OiAwIDEgMzIlO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1sLWIpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IGVtKDQwKTtcblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiBcdCdsJztcblxuLiN7JG1vZHVsZX0ge1xuXHQmLXdyYXBwZXIge1xuXHRcdG1heC13aWR0aDogZW0oJHNpdGVXaWR0aCk7IFxuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXHRcblx0Ji13cmFwcGVyX19pbm5lciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogZW0oMTI4MCk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0XG5cdCYtd3JhcHBlcl9faW5uZXItLWZvb3RlciB7XG5cdFx0QGV4dGVuZCAuI3skbW9kdWxlfS13cmFwcGVyX19pbm5lcjtcblx0XHR3aWR0aDogOTIlO1xuXHRcdHBhZGRpbmc6IGVtKDMwKSAwO1xuXHR9XG59IiwKCQkiXG5cbiRtb2R1bGU6IFx0XHQnaGVhZGVyJztcblxuLiN7JG1vZHVsZX0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IxO1xuXHRcblx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cdFxuXHQmX19jb250ZW50IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRtYXgtd2lkdGg6IGVtKCRpbm5lcldpZHRoKTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRwYWRkaW5nOiBlbSgxMCkgZW0oMjApO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKGRlc2stbC1hKSB7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdH1cblx0XHRcblx0XHRAaW5jbHVkZSBicCh0YWItcy1hKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdCZfX25hdiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cdFxuXHQmX190b3AtYmFyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdCAgICBoZWlnaHQ6IGVtKDQ4KTtcblx0XHQgICAgYmFja2dyb3VuZDogMDtcblx0XHQgICAgcGFkZGluZzogMDtcblx0XHR9XG5cdH1cblx0XG5cdCZfX2xvZ28ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1heC13aWR0aDogZW0oMjAwKTtcblx0XHRtYXgtaGVpZ2h0OiBlbSgxMDApO1xuXHRcdG1hcmdpbi1yaWdodDogZW0oNTApO1xuXHRcdFxuXHRcdCYgaW1nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0XHRcblx0XHRAaW5jbHVkZSBicCh0YWItcy1hKXtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdCAgICBtYXgtd2lkdGg6IGVtKDI0MCk7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19uYXYtLW1vYmlsZS1maXJzdCB7XG5cdFx0QGV4dGVuZCAuI3skbW9kdWxlfV9fbmF2O1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKGRlc2stbC1hKSB7XG5cdFx0XHRvcmRlcjogLTE7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBlbSgzMCk7XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19idXR0b24tLXByaW1hcnkge1xuXHRcdEBleHRlbmQgJWJ1dHRvbjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IxNDtcblx0XHRtYXJnaW4tcmlnaHQ6IGVtKDEwKTtcblx0fVxuXHRcdFxuXHQmX19idXR0b24tLXNlY29uZGFyeSB7XG5cdFx0QGV4dGVuZCAuYnRuLS1zZWNvbmRhcnk7XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiBcdFx0XHRcdCdoZWFkZXItbmF2JztcblxuXG4uI3skbW9kdWxlfSB7XG4gIFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIFx0XG4gIFx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcbiAgICBcdFxuXHQgICAgJi5vcGVuIHtcblx0ICAgIFx0ZGlzcGxheTogYmxvY2s7XG5cdCAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICAgIFx0dG9wOiAwO1xuXHQgICAgXHRsZWZ0OiAwO1xuXHQgICAgXHR3aWR0aDogMTAwJTtcblx0ICAgIFx0Ym9yZGVyLWJvdHRvbTogZW0oNSkgc29saWQgI2FhYTtcblx0ICAgIFx0ei1pbmRleDogMztcblx0ICAgIH1cbiAgXHR9XG4gIFx0XG5cdCZfX2l0ZW1zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0fVxuXHR9XG5cdCAgXHRcblx0Jl9faXRlbSB7XG5cdFx0bWFyZ2luOiAwIGVtKDEwKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcjY7XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblxuXHQmX19saW5rIHtcblx0XHQkZno6MjI7XG5cdFx0Zm9udC1zaXplOiBlbSgkZnopO1xuXHQgICAgY29sb3I6IHdoaXRlO1xuXHQgICAgZm9udC13ZWlnaHQ6ICRmd0JvbGQ7XG5cdFx0cGFkZGluZzogZW0oMTUsJGZ6KTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcblx0XHRcblx0XHQmOmhvdmVyLCYuYWN0aXZle1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yODtcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0XG5cblx0ICAgIEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0ICAgIFx0Y29sb3I6ICMzNDM0MzM7XG5cdCAgICBcdFxuXHQgICAgXHRcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IGVtKDIwLCRmeikgZW0oMTAsJGZ6KTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFxuXHQgICAgXHQmOmhvdmVyIHtcblx0ICAgIFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0ICAgIFx0XHRjb2xvcjogIzM0MzQzMztcblx0ICAgIFx0fVxuXHQgICAgfVxuXHR9XG5cdFxuXHRcblx0Jl9fbGluay0tc2Vjb25kYXJ5IHtcblx0XHRmb250LXdlaWdodDogJGZ3UmVndWxhcjtcblx0fVxuXHRcblx0Jl9fc3Vie1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDEwMCU7XG5cdFx0ei1pbmRleDogMztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IxO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGxlZnQ6IDA7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuXHRcdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHR9XG5cdFx0XG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdCZfX3N1YmxpbmssJl9fc3ViZ2xhbmNle1xuXHRcdHBhZGRpbmc6IGVtKDE1KTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcblx0XHRAaW5jbHVkZSBicCh0YWItcy1hKSB7XG5cdFx0XHRwYWRkaW5nOiBlbSgyMCkgZW0oMTApO1xuXHRcdH1cblx0XHRcblx0XHRcblx0XHQmOmhvdmVye1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yODtcblx0XHR9XG5cdH1cblx0XG5cdCZfX3N1YmdsYW5jZXtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yODtcblx0fVxuXHRcblx0LmFycm93LS1kb3due1xuXHRib3JkZXI6IHNvbGlkIHdoaXRlO1xuICBcdGJvcmRlci13aWR0aDogMCBlbSgzKSBlbSgzKSAwO1xuICBcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgXHRwYWRkaW5nOiBlbSgzKTtcbiAgXHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XG4gIFx0bWFyZ2luLWJvdHRvbTogZW0oMyk7XG4gIFx0bWFyZ2luLWxlZnQ6IGVtKDMpO1xuICBcdFxuXHQgIFx0QGluY2x1ZGUgYnAodGFiLXMtYSkge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBibGFjaztcblx0XHR9XG5cdH1cbn0iLAoJCSJcblxuLy9cbi8vIEZvb3RlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRtb2R1bGU6IFx0J2Zvb3Rlcic7XG5cblxuLiN7JG1vZHVsZX17XG5cdHBhZGRpbmctYm90dG9tOiBlbSgyNik7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjE7XG5cdFxuXHQmX19pbm5lciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogZW0oMTE4MCk7XG5cdFx0d2lkdGg6IDkyJTtcblx0XHRwYWRkaW5nOiBlbSgzMCkgMDtcblx0fVxuXHRcblx0Jl9fY29weXJpZ2h0IHtcblx0XHRmb250LXNpemU6IGVtKDE0KTtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblx0XG5cdCZfX3NvY2lhbC1pY29ucyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogZW0oMTIpO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fc29jaWFsLWljb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IGVtKDcpO1xuXHR9XG5cdFxuXHQmX19jb3B5cmlnaHQtbGluayB7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRvcGFjaXR5OiAuODtcblx0XHR9XG5cdH1cblx0XG5cdCZfX2JhY2stdG8tdG9wIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdHBhZGRpbmc6IGVtKDEwKTtcblx0XHRcdGJvcmRlci10b3A6IGVtKDEpIHNvbGlkICNkZGQ7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cblx0XG5cdCZfX2xpbmsge1xuXHRcdG1hcmdpbi1yaWdodDogZW0oNSk7XG5cdFx0Y29sb3I6ICMyYTZlYmI7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGNvbG9yNjtcblx0XHR9XG5cdH1cblx0XG5cdCZfX2NhbGxiYWNrIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXHRcblx0Jl9fbGluay0tY2FsbGJhY2sge1xuXHRcdC8qIEBpbmNsdWRlIGJ1dHRvbkxpbmsoJGNvbG9yMSwgIzJmN2FkMCk7ICovXG5cdH1cblx0XG5cdCZfX2xpbmstLWVtYWlsIHtcblx0XHRjb2xvcjogJGNvbG9yUHJpbWFyeTtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuXHRcbn0iLAoJCSIkbW9kdWxlOiBcdFx0J2Zvb3Rlci1uYXYnO1xuXG4uI3skbW9kdWxlfSB7XG4gIFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFxuXHQmX19pdGVtcyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0oMTMpO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zLWEpIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogZW0oMjApO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9faXRlbSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbi1yaWdodDogZW0oMTIpO1xuXHQgICAgcGFkZGluZy1yaWdodDogZW0oMTIpO1xuXHQgICAgYm9yZGVyLXJpZ2h0OiBlbSgxKSBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG5cdCAgICBcblx0ICAgICY6bGFzdC1vZi10eXBlIHtcblx0ICAgIFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHQgICAgfVxuXHQgICAgXG5cdCAgICBAaW5jbHVkZSBicCh0YWItcy1hKSB7XG4gICAgXHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgXHRcdGJvcmRlci1ib3R0b206IGVtKDEpIHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICBcdFx0cGFkZGluZzogZW0oMTApIDA7XG4gICAgXHRcdFxuICAgIFx0XHQmOmxhc3Qtb2YtdHlwZXtcblx0XHQgICAgXHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdCAgICB9XG5cdCAgXHR9XG5cdH1cblx0XG5cdCZfX2xpbmsge1xuXHRcdFxuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgxOCk7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRvcGFjaXR5OiAuNTtcblx0XHR9XG5cdH1cbn0iLAoJCSJcblxuJWJ1dHRvbiB7XG5cdCRmejogMTg7XG5cdGZvbnQtc2l6ZTogZW0oJGZ6KTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRwYWRkaW5nOiBlbSgxNSwkZnopO1xuXHRmb250LWZhbWlseTogJGZmQmFzZTtcblx0Zm9udC13ZWlnaHQ6ICRmd0JvbGQ7XG5cdGNvbG9yOiB3aGl0ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdC8qIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAqL1xuXHRcblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogMXB4IGRvdHRlZCAkY29sb3JBY3RpdmU7XG5cdH1cbn1cblxuJG1vZHVsZTogJ2J0bic7XG5cbi4jeyRtb2R1bGV9IHtcblx0XG5cdCZfX3dyYXAge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XG5cdFx0JiAqIHtcblx0XHRcdG1hcmdpbi1yaWdodDogZW0oMjApO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLS1wcmltYXJ5IHtcblx0XHRAZXh0ZW5kICVidXR0b247XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yUHJpbWFyeTtcblx0fVxuXHRcblx0Ji0tc2Vjb25kYXJ5IHtcblx0XHRAZXh0ZW5kICVidXR0b247XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yU2Vjb25kYXJ5O1xuXHR9XG5cdFxuXHRcdFxuXHQmLS10ZXJ0aWFyeSB7XG5cdFx0QGV4dGVuZCAlYnV0dG9uO1xuXHRcdG1pbi13aWR0aDogZW0oMjAwLDE4KTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRjb2xvcjogJGNvbG9yUHJpbWFyeTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkY29sb3JQcmltYXJ5O1xuXHRcdH1cblx0fVxuXHRcblx0XHRcblx0Ji0tcXVhdGVybmFyeSB7XG5cdFx0QGV4dGVuZCAlYnV0dG9uO1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICRjb2xvclByaW1hcnk7XG5cdFx0Y29sb3I6ICRjb2xvclByaW1hcnk7XG5cdH1cblx0XG5cdCYtLXF1aW5hcnkge1xuXHRcdEBleHRlbmQgJWJ1dHRvbjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG4gICAgXHRwYWRkaW5nOiA0cHggMjBweCA1cHg7XG4gICAgXHRjb2xvcjogIzJCNkVCQjtcbiAgICBcdGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgXHRmb250LXNpemU6IDE4cHg7XG5cdH1cblx0XG5cdCYtLXZpZGVvIHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9LS10ZXJ0aWFyeTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1sZWZ0OiBlbSg2MCwxOCk7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiBlbSgyMCwxOCk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdGJvcmRlci1sZWZ0OiBlbSgxNSwxOCkgc29saWQgJGNvbG9yUHJpbWFyeTtcblx0XHRcdGJvcmRlci10b3A6IGVtKDEwLDE4KSBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1ib3R0b206IGVtKDEwLDE4KSBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiAnc2VjdG9yLWxpbmsnO1xuXG4uI3skbW9kdWxlfSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuXHRcblx0Jjpob3ZlciB7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcblx0fVxuXHRcblx0Jl9faW1hZ2Uge1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDIwKTtcblx0fVxuXHRcblx0Jl9fdGl0bGUge1xuXHRcdCRmejozNTtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0cGFkZGluZzogZW0oMjAsJGZ6KSBlbSgxMCwkZnopO1xuXHRcdGxpbmUtaGVpZ2h0OiBlbSg0MSwkZnopO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRib3JkZXItcmFkaXVzOiBlbSgzMCk7XG5cdH1cblx0XG5cdCZfX3RpdGxlLS1wcmltYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9X190aXRsZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JQcmltYXJ5O1xuXHR9XG5cdFx0XG5cdCZfX3RpdGxlLS1zZWNvbmRhcnkge1xuXHRcdEBleHRlbmQgLiN7JG1vZHVsZX1fX3RpdGxlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjEyO1xuXHR9XG5cdFx0XG5cdCZfX3RpdGxlLS10ZXJ0aWFyeSB7XG5cdFx0QGV4dGVuZCAuI3skbW9kdWxlfV9fdGl0bGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yMTM7XG5cdH1cblx0XG59IiwKCQkiJG1vZHVsZTogJ2NvbnRlbnQtYm94JztcblxuLiN7JG1vZHVsZX0ge1xuXHRwYWRkaW5nOiBlbSg0MCk7XG5cdG1hcmdpbi1ib3R0b206IGVtKDYwKTtcblx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yMTE7XG5cdGJvcmRlci1yYWRpdXM6IGVtKDMwKTtcblx0XG59IiwKCQkiJG1vZHVsZTogJ3F1b3RlJztcblxuLiN7JG1vZHVsZX0ge1xuXHRcblx0bWF4LXdpZHRoOiBlbSg4MDApO1xuXHRtYXJnaW46IDAgYXV0bztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcblx0Jl9fY29udGVudCB7XG5cdFx0bWluLWhlaWdodDogZW0oMTEwKTtcblx0XHRtYXJnaW4tYm90dG9tOiBlbSgyMCk7XG5cdH1cblx0XG5cdCZfX2F0dHIge1xuXHRcdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRcdGNvbG9yOiAkY29sb3JQcmltYXJ5O1xuXHR9XG59IiwKCQkiJG1vZHVsZTogJ2ltYWdlLXBhbmVsJztcblxuLiN7JG1vZHVsZX0ge1xuXHRcblx0ZGlzcGxheTogZmxleDtcblx0bWFyZ2luLWJvdHRvbTogZW0oNjApO1xuXHRib3JkZXItcmFkaXVzOiBlbSgzMCk7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJveC1zaGFkb3c6IC0xMHB4IC0xMHB4IDMwcHggMCByZ2JhKDIzOCwyMzgsMjM4LDAuMiksIDEwcHggMTBweCAyMHB4IDAgcmdiYSgwLDAsMCwwLjIpO1xuXHRcblx0Ji0tdmlkZW8ge1xuXHRcdEBleHRlbmQgLiN7JG1vZHVsZX07XG5cdH1cblxuXHRcblx0Jl9faW1hZ2Uge1xuXHRcdGZsZXg6IDAgMSA1MCU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFxuXHRcdCYgaW1nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JQcmltYXJ5O1xuXHRcdFx0b3BhY2l0eTogMC4yO1xuXHRcdFx0ei1pbmRleDogMTtcblx0XHR9XG5cdFx0XG5cdFx0LiN7JG1vZHVsZX0tLXZpZGVvICYge1xuXHRcdFx0XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXHRcdFx0XHRib3JkZXItbGVmdDogZW0oMTIwKSBzb2xpZCB3aGl0ZTtcblx0XHRcdFx0Ym9yZGVyLXRvcDogZW0oNjApIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiBlbSg2MCkgc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fY29udGVudCB7XG5cdFx0ZmxleDogMCAxIDUwJTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0cGFkZGluZzogZW0oMjApIGVtKDgwKTtcblx0XHRiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDAsICNCNENGRUUgMCUsICMyQjZFQkIgMTAwJSk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0oMjApO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdFxuXHRcdC4jeyRtb2R1bGV9LS12aWRlbyAmIHtcblx0XHRcdEBleHRlbmQgLmVwc2lsb247XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogZW0oNDAsMzUpO1xuXHRcdFx0XG5cdFx0XHRAaW5jbHVkZSBicCh0YWItcykge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxufSIsCgkJIiRtb2R1bGU6ICdzbWFsbC1jYXJvdXNlbCc7XG5cbi4jeyRtb2R1bGV9IHtcblx0XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbTogZW0oNjApO1xuXHRcblx0JjpiZWZvcmUsJjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IGVtKDEwMCk7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXHRcblx0JjpiZWZvcmUge1xuXHRcdGxlZnQ6IDA7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgdHJhbnNwYXJlbnQpO1xuXHR9XG5cdFxuXHQmOmFmdGVyIHtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB3aGl0ZSk7XG5cdH1cblx0XG5cdCZfX2ltYWdlIHtcblx0XHRtYXgtaGVpZ2h0OiA0Ljc1ZW07XG5cdFx0cGFkZGluZzogZW0oMTApO1xuXHRcdG9iamVjdC1maXQ6IGNvbnRhaW47XG5cdH1cblx0XG5cdCZfX3ByZXYsICZfX25leHQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRoZWlnaHQ6IGVtKDMwKTtcblx0XHR3aWR0aDogZW0oMzApO1xuXHRcdGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkY29sb3JQcmltYXJ5O1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cblx0XG5cdCZfX3ByZXYge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuXHRcdGxlZnQ6IGVtKDEwKTtcblx0XHRib3JkZXItbGVmdDogNHB4IHNvbGlkICRjb2xvclByaW1hcnk7XG5cdH1cblx0XG5cdCZfX25leHQge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcblx0XHRyaWdodDogZW0oMTApO1xuXHRcdGJvcmRlci1yaWdodDogNHB4IHNvbGlkICRjb2xvclByaW1hcnk7XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiAnc21hbGwtYmFubmVyJztcblxuLiN7JG1vZHVsZX0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLWJvdHRvbTogZW0oNDApO1xuXHRwYWRkaW5nOiBlbSgxMCkgZW0oMjApO1xuXHRib3JkZXItcmFkaXVzOiAzMHB4O1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMzM2LjMyZGVnLCAjN0Q1Q0M2IDAlLCAjQzUwMDg0IDEwMCUpO1xuXHRib3gtc2hhZG93OiAtMTBweCAtMTBweCAzMHB4IDAgcmdiYSgyMzgsMjM4LDIzOCwwLjIpLCAxMHB4IDEwcHggMjBweCAwIHJnYmEoMCwwLDAsMC4yKTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogd2hpdGU7XG5cdFxuXHQmX19pbWFnZSB7XG5cdFx0bWF4LWhlaWdodDogZW0oNDApO1xuXHRcdG1hcmdpbi1yaWdodDogZW0oNDApO1xuXHR9XG5cdFxuXHQmX190ZXh0LWJvbGQge1xuXHRcdCRmejogMjI7XG5cdFx0Zm9udC1zaXplOiBlbSgkZnopO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRcdG1hcmdpbi1yaWdodDogZW0oNDAsJGZ6KTtcblx0fVxuXHRcblx0Jl9fdGV4dCB7XG5cdFx0JGZ6OiAyMjtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRoZWlnaHQ6IGVtKDE1LDIyKTtcblx0XHRcdHdpZHRoOiBlbSgxNSwyMik7XG5cdFx0XHRsZWZ0OiAxMDAlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcblx0XHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcblx0XHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHdoaXRlO1xuXHRcdH1cblx0fVxufSIsCgkJIiRtb2R1bGU6ICdwYWNrYWdlJztcblxuLiN7JG1vZHVsZX0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogZW0oMTApO1xuXHRib3JkZXItcmFkaXVzOiBlbSgzMCk7XG5cdGJvcmRlcjogM3B4IHNvbGlkICRjb2xvcjExO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFxuXHQmX190aXRsZSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDQwKTtcblx0XHRcblx0XHQmIC5nYW1tYSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fY29udGVudCB7XG5cdFx0cGFkZGluZzogZW0oNDApO1xuXHR9XG5cdFxuXHQmX19jdGEge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBzdGlja3k7XG5cdFx0dG9wOiBlbSgxMCk7XG5cdFx0cGFkZGluZzogZW0oMjApIGVtKDYwKTtcblx0XHRib3JkZXItcmFkaXVzOiBlbSgzMCk7XG5cdFx0Ym94LXNoYWRvdzogLTEwcHggLTEwcHggMzBweCAwIHJnYmEoMjM4LDIzOCwyMzgsMC4yKSwgMTBweCAxMHB4IDIwcHggMCByZ2JhKDAsMCwwLDAuMik7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19jdGEtLXByaW1hcnkge1xuXHRcdEBleHRlbmQgLiN7JG1vZHVsZX1fX2N0YTtcblx0XHRiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjQjRDRkVFIDAlLCAjMkI2RUJCIDEwMCUpO1xuXHR9XG5cdFx0XG5cdCZfX2N0YS0tc2Vjb25kYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9X19jdGE7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDMxOC41NWRlZywgI0UyNzIyMiAwJSwgI0YwQUIwMCAxMDAlKTtcblx0fVxuXHRcdFxuXHQmX19jdGEtLXRlcnRpYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9X19jdGE7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDM0NS44M2RlZywgIzg3OTA5QSAwJSwgI0MyQ0VEQyAxMDAlKTtcblx0XHRjb2xvcjogI0ZGRjtcblx0fVxufSIsCgkJIiRtb2R1bGU6ICdwYWNrYWdlcyc7XG5cbi4jeyRtb2R1bGV9IHtcblx0XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRwYWRkaW5nOiBlbSg2MCk7XG5cdG1hcmdpbi1ib3R0b206IGVtKDIwKTtcblx0Ym9yZGVyLXJhZGl1czogMzBweDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjQjRDRkVFIDAlLCAjMkI2RUJCIDU5LjklLCAjMkI2RUJCIDEwMCUpO1xuXHRib3gtc2hhZG93OiAtMTBweCAtMTBweCAzMHB4IDAgcmdiYSgyMzgsMjM4LDIzOCwwLjIpLCAxMHB4IDEwcHggMjBweCAwIHJnYmEoMCwwLDAsMC4yKTtcblx0Y29sb3I6IHdoaXRlO1xuXHRcblx0XHRAaW5jbHVkZSBicCh0YWItbC1iKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXHRcblx0Jl9faXRlbSB7XG5cdFx0ZmxleDogMCAxIDMyJTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcblx0XHRAaW5jbHVkZSBicCh0YWItbC1iKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBlbSg0MCk7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19pbWFnZSB7XG5cdFx0bWF4LXdpZHRoOiBlbSgxNjApO1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDIwKTtcblx0fVxuXHRcblx0Jl9fdGV4dCB7XG5cdFx0JGZ6OiAzNTtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmd0JvbGQ7XG5cdH1cblx0XG5cdCZfX2N0YSB7XG5cdFx0JGZ6OiAzNTtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0bWF4LXdpZHRoOiBlbSgxNTAsJGZ6KTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xuXHRcdGxpbmUtaGVpZ2h0OiBlbSg0MCwkZnopO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0b3A6IDExMCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcblx0XHRcdGhlaWdodDogZW0oMjUsMzUpO1xuXHRcdFx0d2lkdGg6IGVtKDI1LDM1KTtcblx0XHRcdGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB3aGl0ZTtcblx0XHRcdGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHdoaXRlO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fbGluayB7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXHR9XG59IiwKCQkiJG1vZHVsZTogJ2ljb24tYnV0dG9uJztcblxuLiN7JG1vZHVsZX0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdG1heC13aWR0aDogZW0oNDQwKTtcblx0bWFyZ2luOiBlbSgtMzApIGF1dG8gNDBweDtcblx0cGFkZGluZzogZW0oMjApO1xuXHRib3JkZXItcmFkaXVzOiBlbSgzMCk7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzNDUuODNkZWcsICNFRUVFRUUgMCUsICNGRkZGRkYgMTAwJSk7XG4gIFx0Ym94LXNoYWRvdzogLTEwcHggLTEwcHggMzBweCAwIHJnYmEoMjM4LDIzOCwyMzgsMC4yKSwgMTBweCAxMHB4IDIwcHggMCByZ2JhKDAsMCwwLDAuMik7XG4gIFx0Y29sb3I6ICRjb2xvclByaW1hcnk7XG4gIFx0ei1pbmRleDogMjtcbiAgXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbiAgXHRcbiAgXHQmX19pY29uIHtcbiAgXHRcdGZsZXg6IDAgMSBhdXRvO1xuICBcdFx0bWF4LXdpZHRoOiBlbSg5MCk7XG4gIFx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgXHR9XG4gIFx0XG4gIFx0Jl9fY29udGVudCB7XG4gIFx0XHRjb2xvcjogJGNvbG9yUHJpbWFyeTtcbiAgXHRcdFxuICBcdFx0JiA6Zmlyc3QtY2hpbGQge1xuICBcdFx0XHRtYXJnaW4tYm90dG9tOiBlbSg4KTtcbiAgXHRcdH1cbiAgXHR9XG4gIFx0XG4gIFx0Jjpob3ZlciB7XG4gIFx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICBcdH1cbn0iLAoJCSIkbW9kdWxlOiAnc2l0ZS1saW5rJztcblxuLiN7JG1vZHVsZX0ge1xuXHRjb2xvcjogI0ZGRjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cblx0Jl9faW1hZ2Uge1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDYwKTtcblx0XHRtYXgtaGVpZ2h0OiBlbSgxMjApO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG5cdFxuXHQmX19pbWFnZS0tc2Vjb25kYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9X19pbWFnZTtcblx0XHRtYXJnaW4tYm90dG9tOiBlbSg0MCk7XG5cdH1cblxuXHQmX190aXRsZSB7XG5cdFx0JGZ6OiAzNTtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0oMTUsJGZ6KTtcblx0XHRmb250LXdlaWdodDogJGZ3Qm9sZDtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG1pbi1oZWlnaHQ6IGVtKDE1MCk7XG5cdFx0cGFkZGluZzogZW0oMjApO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjExO1xuXHRcdGJvcmRlci1yYWRpdXM6IGVtKDMwKTtcblx0XHRsaW5lLWhlaWdodDogZW0oMjYpO1xuXHRcdGNvbG9yOiAkY29sb3JRdWF0ZXJuYXJ5O1xuXHR9XG5cblx0Jl9fZGVzY3JpcHRpb24ge1xuXHRcdCRmejogMjI7XG5cdFx0Zm9udC1zaXplOiBlbSgkZnopO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Ji0tc2Vjb25kYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9O1xuXHRcdFxuXHR9XG5cdFxuXHQmX190aXRsZS0tc2Vjb25kYXJ5IHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9X190aXRsZTtcblx0XHRtYXJnaW46IDAgMC41ZW0gMWVtO1xuXHR9XG5cdFxuXHQmX19jb250ZW50LS1zZWNvbmRhcnkge1xuXHRcdEBleHRlbmQgLiN7JG1vZHVsZX1fX2NvbnRlbnQ7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDMzNi4zMmRlZywgIzdENUNDNiAwJSwgI0M1MDA4NCAxMDAlKTtcblx0XHRib3gtc2hhZG93OiAtMTBweCAtMTBweCAzMHB4IDAgcmdiYSgyMzgsMjM4LDIzOCwwLjIpLCAwIDEwcHggMzBweCAwIHJnYmEoMCwwLDAsMC4zKTtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG5cdH1cblx0XHRcblx0Jl9fZGVzY3JpcHRpb24tLXNlY29uZGFyeSB7XG5cdFx0QGV4dGVuZCAuI3skbW9kdWxlfV9fZGVzY3JpcHRpb247XG5cdFx0JGZ6OiAzNTtcblx0XHRmb250LXNpemU6IGVtKCRmeik7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRib3JkZXI6IDNweCBzb2xpZCAjRkZGO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuXHRcdHBhZGRpbmc6IDAuNzVlbSAwLjllbTtcblx0fVxuXHRcblx0Jl9fY29udGVudC0tc2Vjb25kYXJ5OmhvdmVyIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuXHR9IFxufSIsCgkJIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgyMCk7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIFxuICAgIC5zbWFsbC1jYXJvdXNlbCAmIHtcbiAgICBcdG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5zbGljay1kb3RzIHtcblx0XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XG5cdCYgPiBsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFxuXHRcdCYuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkY29sb3JQcmltYXJ5O1xuXHRcdH1cblx0fVxuXHRcblx0JiA+IGxpIGJ1dHRvbiB7XG5cdCAgICBsaW5lLWhlaWdodDogMDtcblx0ICAgIGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgd2lkdGg6IGVtKDMwLCAkZnpCYXNlKTtcblx0ICAgIGhlaWdodDogZW0oOCwgJGZ6QmFzZSk7XG5cdCAgICBjdXJzb3I6IHBvaW50ZXI7XG5cdCAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdCAgICBib3JkZXI6IGVtKDIsICRmekJhc2UpIHNvbGlkICRjb2xvclByaW1hcnk7XG5cdCAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0ICAgIG1hcmdpbjogMCBlbSgzKTtcblx0ICAgIFxuXHQgICAgJjpmb2N1cyB7XG5cdCAgICBcdG91dGxpbmU6IG5vbmU7XG5cdCAgICB9XG5cdH1cbn0iLAoJCSIkbW9kdWxlOiBcdCdwYW5jYWtlJztcblxuLiN7JG1vZHVsZX17XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IGVtKDQ5KTtcbiAgICB3aWR0aDogZW0oNDkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBcbiAgICAmLmFjdGl2ZSB7XG4gICAgXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgXG4gICAgJl9fbGluZSB7XG4gICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgXHRoZWlnaHQ6IGVtKDUpO1xuICAgIFx0d2lkdGg6IGVtKDMyKTtcbiAgICBcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgXHR0b3A6IDUwJTtcbiAgICBcdGxlZnQ6IDUwJTtcbiAgICBcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpdHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgXHRcbiAgICBcdC5hY3RpdmUgJiB7XG4gICAgXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjE7XG4gICAgXHR9XG4gICAgXHRcbiAgICBcdCY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBcdFx0Y29udGVudDogJyc7XG4gICAgXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0aGVpZ2h0OiBlbSg1KTtcblx0ICAgIFx0d2lkdGg6IGVtKDMyKTtcblx0ICAgIFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0ICAgIFx0XG5cdCAgICBcdC5hY3RpdmUgJiB7XG5cdCAgICBcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yMTtcblx0ICAgIFx0fVxuICAgIFx0fVxuICAgIFx0XG4gICAgXHQmOmJlZm9yZSB7XG4gICAgXHRcdHRvcDogZW0oOCk7XG4gICAgXHR9XG4gICAgXHRcbiAgICBcdCY6YWZ0ZXIge1xuICAgIFx0XHRib3R0b206IGVtKDgpO1xuICAgIFx0fVxuICAgIH1cbn0iLAoJCSIkbW9kdWxlOiBcdFx0J3Byb2ZpbGUnO1xuXG5cbi4jeyRtb2R1bGV9e1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogZW0oNDkpO1xuICAgIHdpZHRoOiBlbSg0OSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogZW0oMTApO1xuICAgIFxuICAgICYuYWN0aXZlIHtcbiAgICBcdGNvbG9yOiAkY29sb3IxO1xuICAgIFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxufSIsCgkJIiRtb2R1bGU6IFx0XHQnaGVybyc7XG5cbi4jeyRtb2R1bGV9e1xuXHRoZWlnaHQ6IGVtKDI1MCk7XG5cdGNvbG9yOiB3aGl0ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWFyZ2luLWJvdHRvbTogZW0oNjApO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFxuXHQmLS1ub2ltYWdlIHtcblx0XHRAZXh0ZW5kIC4jeyRtb2R1bGV9O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0aGVpZ2h0OiBlbSgzMDApO1xuXHR9XG5cdFxuXHQmX19pbm5lciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogLTUwJTtcblx0XHRcdGhlaWdodDogMTE4JTtcblx0XHRcdHdpZHRoOiAyMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgdG9wLCB0cmFuc3BhcmVudCA1OS43JSwgd2hpdGUgNjAlKTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0ei1pbmRleDogMTtcblx0XHR9XG5cdH1cblx0XG5cdCZfX2ZpcnN0LWhhbGYge1xuXHRcdGZsZXg6IDAgMSA0MCU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MGRlZywgI0I0Q0ZFRSAwJSwgIzg4QjBERCAyMy4yNCUsICM0NjgxQzUgNjEuNCUsICRjb2xvclByaW1hcnkgOTUlKTtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOjA7XG5cdFx0XHRsZWZ0OiA5NSU7XG5cdFx0XHRib3JkZXItdG9wOiBlbSg0MDApIHNvbGlkICMyRjZGQjk7XG5cdFx0XHRib3JkZXItcmlnaHQ6IGVtKDMwMCkgc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0XG5cdFx0XHQuI3skbW9kdWxlfS0tbm9pbWFnZSAmIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogZW0oMzAwKSBzb2xpZCAjMkY2RkI5O1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IGVtKDIwMCkgc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXHRcblx0Jl9fc2Vjb25kLWhhbGYge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmbGV4OiAwIDEgNjAlO1xuXHRcdGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgcmlnaHQsICNCNENGRUUgMCUsICM0Qzg1QzcgMzcuODYlLCAjMkI2RUJCIDEwMCUpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yUHJpbWFyeTtcblx0XHRcdG9wYWNpdHk6IDAuNjtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuODtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LiN7JG1vZHVsZX0tLW5vaW1hZ2UgJiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRmbGV4OiAxIDEgMTAwJTtcblx0XHR9XG5cdH1cblx0XG5cdCZfX3RpdGxlLXdyYXAge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblx0XHR6LWluZGV4OiAyO1xuXHRcdFxuXHRcdC4jeyRtb2R1bGV9LS1ub2ltYWdlICYge1xuXHRcdFx0dG9wOiBlbSg0MCk7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcblx0XHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Jl9fdGl0bGUge1xuXHRcdEBleHRlbmQgLmFscGhhO1xuXHRcdG1hcmdpbi1ib3R0b206IGVtKDIwLDc1KTtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXHRcdGZvbnQtc2l6ZTogMi43NWVtO1xuXHRcdFxuXHRcdC4jeyRtb2R1bGV9LS1ub2ltYWdlICYge1xuXHRcdFx0QGV4dGVuZCAuYmV0YTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGVtKDIwLDc1KTtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYnAodGFiLXMpIHtcblx0XHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDI1KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnAodGFiLXMpIHtcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgzNSk7XG5cdFx0fVxuXHR9XG5cdFxuXHQmX19zdWJ0aXRsZSB7XG5cdFx0JGZ6OjM1O1xuXHRcdGZvbnQtc2l6ZTogZW0oJGZ6KTtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKHRhYi1zKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0XHRcblx0fVxuXHRcblx0Jl9fY29udGFjdCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgIFx0cmlnaHQ6IDA7XG4gICAgXHR0b3A6IDA7XG4gICAgXHR6LWluZGV4OiAyO1xuICAgIFx0bWFyZ2luOiAwLjVlbTtcblx0fVxufSIsCgkJIi8vXG4vLyBFZGl0b3JpYWwgTWFjcm9zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBsZWdhY3kgLy8vLy8vL1xuXG4vLyBsaXN0cyBcblxuXG4vL0NvbHVtbnNcbi5lZGl0b3JDb2x1bW5zIHtcblx0d2lkdGg6IDEwMCU7XG5cdEBpbmNsdWRlIGNsZWFyZml4XG59XG4uZWRpdG9yQ29sdW1uc0lubmVyIHtcblx0ZmxvYXQ6IGxlZnQ7IFxuXHRcblx0QGluY2x1ZGUgYnAoZGVzay1zKSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cbn1cblxuLmVkaXRvckNvbHVtbnNQYWRkaW5ne1xuXHRwYWRkaW5nOiBlbSg1KTtcbn1cblxuXG4vLyBSVEUgSW1hZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5lZGl0b3JJbWdGbG9hdC1sZWZ0LFxuLmVkaXRvckxlZnRJbWFnZXtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiBhdXRvO1xuXHRtYXJnaW46IDAgZW0oJGxoQmFzZSkgZW0oJGxoQmFzZSkgMDtcbn1cbi5lZGl0b3JJbWdGbG9hdC1yaWdodCxcbi5lZGl0b3JSaWdodEltYWdle1xuXHRmbG9hdDogcmlnaHQ7XG5cdHdpZHRoOiBhdXRvO1xuXHRtYXJnaW46IDAgMCBlbSgkbGhCYXNlKSBlbSgkbGhCYXNlKTtcbn1cbi5lZGl0b3JJbWdGbG9hdC1jZW50ZXJ7XG5cdG1hcmdpbjogZW0oJGxoQmFzZSkgYXV0byBlbSgkbGhCYXNlKTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gTWFjcm8gSW1hZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pbWFnZUJveHtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ZGlzcGxheTogYmxvY2s7IFxuXHRjbGVhcjogYm90aDtcblx0bWFyZ2luOiBlbSgkbGhCYXNlKSAwO1xuXHRpbWd7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cblxuLmltYWdlQm94Q2FwdGlvbntcblx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRtYXJnaW46MCBhdXRvO1xufVxuXG4vLyBWaWRlb1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmVtYmVkLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAvL21hcmdpbi10b3A6IGVtKCRsaEJhc2UpO1xufVxuXG4uZW1iZWQtY29udGFpbmVyIGlmcmFtZSwgXG4uZW1iZWQtY29udGFpbmVyIG9iamVjdCwgXG4uZW1iZWQtY29udGFpbmVyIGVtYmVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vLyBUYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnJ0ZUNvcHkgdGFibGUge1xuXHQkZm9udFNpemU6IDE2O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHdoaXRlLDAuNik7XG5cdGZvbnQtc2l6ZTogZW0oJGZvbnRTaXplKTtcblx0bWFyZ2luOiAwIDAgMCBlbSgtODAsJGZvbnRTaXplKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiBlbSgzMCwkZm9udFNpemUpO1xuXHRtYXJnaW46IGVtKDU1LCRmb250U2l6ZSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IGVtKC02MCwkZm9udFNpemUpO1xuXHRcdGxlZnQ6IGVtKC0zMCwkZm9udFNpemUpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdH1cblx0XG5cdGgxLGgyLGgzLGg0LGg1IHtcblx0XHRjb2xvcjogJGNvbG9yNDtcblx0XHRwYWRkaW5nOiAwIGVtKDEwKSBlbSgxNCkgZW0oMTApO1xuXHR9XG5cdFxuXHRAaW5jbHVkZSBicChtb2IteGwpIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4ucnRlQ29weSB0aGVhZCB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3I0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5ydGVDb3B5IHRib2R5IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyO1xufVxuXG4ucnRlQ29weSB0aCB7XG5cdGNvbG9yOiAkY29sb3I0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRwYWRkaW5nOiAwIGVtKDEwKSBlbSgxNCkgZW0oMTApO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5ydGVDb3B5IHRkIHtcblx0cGFkZGluZzogZW0oOSkgZW0oMTIuNSkgZW0oMjApO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDI7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ucnRlQ29weSB0Ym9keSB0ciB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3I0O1xufVxuXG4uY2xlYXJlciB7XG5cdGNsZWFyOiBib3RoO1xufVxuXG4vL1xuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCb2R5IHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uZWRpdG9yRnVsbEJyZWFrIHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbi8vIEVtcGhhc2lzICYgbWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODUlO1xufVxuXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LWZhbWlseTogJGZmQmFzZTtcbn1cblxuYSBzdHJvbmd7XG5cdGZvbnQtd2VpZ2h0OiAkZndCb2xkO1xufVxuXG5lbSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuY2l0ZSB7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmVkaXRvclVuZGVybGluZSB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZWRpdG9yU3RyaWtldGhyb3VnaCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4ucnRlYnIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiBlbSgkbGhCYXNlKTtcbn1cblxuLnNlZ21lbnRfX3J0ZSB7XG5cdCRmejogMjI7XG5cdGZvbnQtc2l6ZTogZW0oMjIpO1xuXHRcblx0QGluY2x1ZGUgYnAodGFiLWwtYikge1xuXHRcdGZvbnQtc2l6ZTogZW0oJGZ6QmFzZSk7XG5cdH1cbn1cblxuLy8gQnVsbGV0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uZWRpdG9yTGlzdCxcbi5lZGl0b3JSb20sXG4uZWRpdG9yQnVsbGV0c3tcbiAgXHRtYXJnaW46IDAgMCBlbSgkbGhCYXNlKSBlbSgyMCk7XG4gIFx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG5cblxub2wuZWRpdG9yTGlzdCwgLnJ0ZUNvcHkgb2wge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbm9sLmVkaXRvclJvbSB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbnVsIHVsLFxudWwgb2wsXG5vbCBvbCxcbm9sIHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxudWwuZWRpdG9yTGlzdCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XG5cdD4gbGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmb250LWZhbWlseTogJGZmQmFzZTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAn4oCiJztcblx0XHRcdGNvbG9yOiAkY29sb3JUZXh0O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogZW0oLTE2KTtcblx0XHR9XG5cdFx0XG5cdFx0Lmx0LWllOSAmIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0fVxuXHR9XG5cdFxuXHRsaSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogZW0oMTUpO1xuXHR9XG59XG5cbi5ydGVDb3B5IG9sLCBvbC5lZGl0b3JMaXN0IHtcblx0bGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLWxlZnQ6IGVtKDYpO1xuXHR9XG59XG5cbi8vIHN1YiBhbmQgc3VwXG5zdWIsXG5zdXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGZvbnQtc2l6ZTogNzUlO1xuXHRsaW5lLWhlaWdodDogMDtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuXHR0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcblx0Ym90dG9tOiAtMC4yNWVtO1xufVxuXG5cbi8vVGV4dCBhbGlnbm1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNlbnRlckp1c3RpZnl7XG5cdHdpZHRoOiAxMDAlOyBcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubGVmdEp1c3RpZnl7XG5cdHdpZHRoOiAxMDAlOyBcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnJpZ2h0SnVzdGlmeXtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uanVzdGlmaWVke1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjoganVzdGlmeTtcblx0LXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuICAgIC1tb3otaHlwaGVuczogYXV0bztcbiAgICBoeXBoZW5zOiBhdXRvO1xufVxuXG4vLyBRdW90ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlubGluZVF1b3Rle1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG4uaW5saW5lQ2l0ZXtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbi5lZGl0b3JCbG9ja1F1b3Rle1xuXHRwYWRkaW5nOiAwIDAgMCBlbSgxNSk7XG4gIFx0bWFyZ2luOiAwIDAgZW0oJGxoQmFzZSk7XG4gIFx0XG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblx0XG5cdHNtYWxsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHQmOmJlZm9yZSB7XG5cdFx0ICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7XG5cdFx0fVxuXHR9XG59IiwKCQkiJG1vZHVsZTogXHRcdCdhbGVydC1tZXNzYWdlJztcblxuLiN7JG1vZHVsZX17XG5cdEBpbmNsdWRlIGZvbnQtc2l6ZSgxNik7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuXHQmX19jb250ZW50IHtcblx0ICAgIG1heC13aWR0aDogMTMwMHB4O1xuXHQgICAgbWFyZ2luOiBhdXRvO1xuXHQgICAgY29sb3I6ICRjb2xvcjEwOyBcblx0ICAgIHRl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 */