/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/sass/pages/contact.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/

.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }

.breadcrumb {
  --bs-breadcrumb-padding-x: 0;
  --bs-breadcrumb-padding-y: 0;
  --bs-breadcrumb-margin-bottom: 1rem;
  --bs-breadcrumb-font-size: 0.75rem;
  --bs-breadcrumb-bg: ;
  --bs-breadcrumb-border-radius: ;
  --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: var(--bs-body-color);
  display: flex;
  flex-wrap: wrap;
  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
  margin-bottom: var(--bs-breadcrumb-margin-bottom);
  font-size: var(--bs-breadcrumb-font-size);
  list-style: none;
  background-color: var(--bs-breadcrumb-bg);
  border-radius: var(--bs-breadcrumb-border-radius); }

.breadcrumb-item + .breadcrumb-item {
  padding-left: var(--bs-breadcrumb-item-padding-x); }
  .breadcrumb-item + .breadcrumb-item::before {
    float: left;
    padding-right: var(--bs-breadcrumb-item-padding-x);
    color: var(--bs-breadcrumb-divider-color);
    content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }

.breadcrumb-item.active {
  color: var(--bs-breadcrumb-item-active-color); }

.breadcrumbs {
  position: relative;
  max-width: 100vw;
  margin-right: -0.75rem;
  margin-left: -0.75rem; }
  .breadcrumbs .breadcrumb {
    flex-wrap: nowrap;
    padding: 0.75rem;
    margin: unset;
    overflow-x: auto; }
    .breadcrumbs .breadcrumb::before, .breadcrumbs .breadcrumb::after {
      position: absolute;
      top: 0;
      display: block;
      height: 100%;
      pointer-events: none;
      content: ""; }
    .breadcrumbs .breadcrumb::before {
      left: 0;
      width: 1rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color) 0, var(--alpha-breadcrumbs-mobile-shadow-color-end)); }
    .breadcrumbs .breadcrumb::after {
      right: 0;
      width: 2rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color-end) 0, var(--alpha-breadcrumbs-mobile-shadow-color)); }
  .breadcrumbs.on-featured {
    --alpha-breadcrumbs-mobile-shadow-color: #000;
    --alpha-breadcrumbs-mobile-shadow-color-end: rgba(0, 0, 0, 0);
    top: var(--featured-image-height);
    z-index: 10;
    transform: translateY(-100%); }
    .breadcrumbs.on-featured .breadcrumb {
      --bs-breadcrumb-divider-color: currentcolor;
      --bs-breadcrumb-item-active-color: currentcolor; }
      .breadcrumbs.on-featured .breadcrumb::before, .breadcrumbs.on-featured .breadcrumb::after {
        opacity: .75; }
  .breadcrumbs.dark {
    --bs-link-color-rgb: 255, 255, 255; }
    .breadcrumbs.dark a:hover {
      --bs-link-color-rgb: 247, 247, 247; }

.breadcrumbs-on-featured:not(.has-transparent-header) .breadcrumbs {
  top: calc(var(--header-height) + var(--featured-image-height));
  transition: top .3s ease; }

.breadcrumbs-on-featured.search .content-wrapper {
  padding-top: 2rem; }

.breadcrumb-item {
  white-space: nowrap; }
  .breadcrumb-item + .breadcrumb-item::before {
    content: "\f105";
    margin-right: 0;
    line-height: var(--bs-body-line-height); }
  .breadcrumb-item + .breadcrumb-item::before {
    float: unset;
    padding-right: .25rem; }
  .breadcrumb-item.active span {
    font-weight: 700; }

@keyframes form-label-filled {
  0% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: none; }
  25% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  75% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  100% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); } }

@keyframes form-label {
  0% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); }
  25% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  75% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  100% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: none; } }

input:-webkit-autofill,
select:-webkit-autofill,
textarea:-webkit-autofill {
  box-shadow: 0 0 0 100px #fff inset;
  -webkit-text-fill-color: var(--bs-body-color); }
  input:-webkit-autofill:hover, input:-webkit-autofill:focus,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--bs-body-color);
    background: none !important; }

.grecaptcha-badge {
  visibility: collapse; }

.wpcf7 {
  font-size: 16px; }
  .wpcf7 .wpcf7-form {
    color: var(--bs-body-color);
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    .wpcf7 .wpcf7-form .form-field {
      position: relative;
      margin-bottom: 2rem;
      transition: all ease .5s; }
      .wpcf7 .wpcf7-form .form-field p:not([class]) {
        display: contents; }
      .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]) {
        float: none;
        width: 100%;
        padding-left: 0.75rem;
        margin: 0;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-text, .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-number {
          height: 2.5rem;
          color: var(--bs-body-color); }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-not-valid {
          margin: 0;
          border-color: red; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]):focus {
          outline: none; }
      .wpcf7 .wpcf7-form .form-field input[type="date"] {
        position: relative; }
        .wpcf7 .wpcf7-form .form-field input[type="date"]::-webkit-calendar-picker-indicator {
          position: absolute;
          padding-left: calc(100% - 2.5em); }
      .wpcf7 .wpcf7-form .form-field textarea {
        width: 100%;
        padding-left: 0.75rem;
        padding-top: 0.75rem;
        margin: 0;
        overflow: hidden;
        color: var(--bs-body-color);
        resize: none;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff;
        height: initial; }
        .wpcf7 .wpcf7-form .form-field textarea:focus {
          outline: none; }
        .wpcf7 .wpcf7-form .form-field textarea.wpcf7-not-valid {
          margin: 0;
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
      .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
        padding-left: 0.75rem;
        float: none;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        width: 100%;
        height: 2.5rem;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field select.wpcf7-select.wpcf7-not-valid,
        .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control.wpcf7-not-valid {
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field > label {
        position: absolute;
        top: 0.75rem;
        left: 1.5rem;
        z-index: 1;
        padding: 0;
        margin: 0;
        color: var(--bs-body-color);
        pointer-events: none;
        cursor: text;
        background: transparent;
        transition: font-size ease .5s, transform ease-in-out .5s, background-color ease .5s, padding ease .5s;
        font-size: 1rem;
        line-height: 1rem; }
      .wpcf7 .wpcf7-form .form-field.style-dark label {
        color: #fff; }
      .wpcf7 .wpcf7-form .form-field.empty label {
        animation: .5s ease-in 0s 1 form-label;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.filled label, .wpcf7 .wpcf7-form .form-field.active label {
        padding: 0 0.75rem; }
      .wpcf7 .wpcf7-form .form-field.filled label {
        animation: .5s ease-in 0s 1 form-label-filled;
        animation-direction: normal;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.active label {
        color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.active input,
      .wpcf7 .wpcf7-form .form-field.active textarea {
        border-color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.no-anim label, .wpcf7 .wpcf7-form .form-field.form-field-noanim label {
        animation: none !important;
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        padding: 0;
        margin-top: 0.5rem;
        transform: translateY(-0.25rem); }
      .wpcf7 .wpcf7-form .form-field.form-field-select label {
        position: relative; }
      .wpcf7 .wpcf7-form .form-field.form-field-acceptance input {
        width: auto; }
      .wpcf7 .wpcf7-form .form-field.form-field-rgpd, .wpcf7 .wpcf7-form .form-field.form-legal-notice {
        margin: 1rem auto;
        font-size: .7rem;
        text-align: center;
        padding: 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-double {
        display: flex; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child {
          flex: 2 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child input.wpcf7-text {
            border-right-width: 1px;
            border-radius: 10px 0 0 10px; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child {
          flex: 1 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child input.wpcf7-text {
            border-left-width: 1px;
            border-radius: 0 10px 10px 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox {
        display: flex;
        flex-direction: column;
        margin-right: -.25em;
        margin-left: -.25em; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item {
          display: flex;
          align-items: center;
          padding: 0 .25em; }
          .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label {
            cursor: pointer;
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label .wpcf7-list-item-label {
              padding-left: .5rem; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline label {
        margin-bottom: .25em; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox {
        flex-direction: row;
        flex-wrap: wrap; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox .wpcf7-list-item {
          flex: 0 0 200px; }
      .wpcf7 .wpcf7-form .form-field.form-field-date input {
        height: 2.5rem; }
      .wpcf7 .wpcf7-form .form-field.inline {
        display: flex;
        flex-direction: column; }
        .wpcf7 .wpcf7-form .form-field.inline label {
          position: static;
          line-height: 25px; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio {
          display: flex; }
          .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item {
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item input {
              width: auto;
              margin-right: .25em;
              margin-left: .25em; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-checkbox {
          flex-direction: row; }
    .wpcf7 .wpcf7-form .form-field-submit {
      text-align: center;
      display: flex;
      align-items: center; }
      .wpcf7 .wpcf7-form .form-field-submit .ajax-loader, .wpcf7 .wpcf7-form .form-field-submit .wpcf7-spinner {
        background-repeat: no-repeat;
        background-position: center;
        min-height: unset;
        position: absolute; }
    .wpcf7 .wpcf7-form span.wpcf7-list-item {
      margin: 0; }
    .wpcf7 .wpcf7-form .form-field-required {
      color: red; }
    .wpcf7 .wpcf7-form .form-field-wrap {
      display: flex;
      align-items: flex-end;
      margin-right: -15px;
      margin-left: -15px; }
      .wpcf7 .wpcf7-form .form-field-wrap .form-field-date {
        flex: 1 1;
        margin-right: 15px;
        margin-left: 15px; }
        .wpcf7 .wpcf7-form .form-field-wrap .form-field-date input {
          margin-top: 0; }
    .wpcf7 .wpcf7-form .wpcf7-form-control-wrap {
      display: block; }
      .wpcf7 .wpcf7-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
        color: red !important;
        font-size: 0.9rem;
        font-weight: normal;
        position: absolute;
        bottom: -2rem;
        left: 0.75rem;
        right: 0;
        height: 30px;
        z-index: 2; }
    .wpcf7 .wpcf7-form .form-field-desc {
      font-size: 0.8rem;
      font-style: italic;
      color: #696969; }
    .wpcf7 .wpcf7-form .wpcf7-response-output {
      text-align: center;
      border: none !important;
      font-size: .9rem;
      margin-top: 1rem; }
    .wpcf7 .wpcf7-form:not(.submitting) .ajax-loader, .wpcf7 .wpcf7-form:not(.submitting) .wpcf7-spinner {
      display: none !important; }
    .wpcf7 .wpcf7-form.sent .wpcf7-response-output {
      color: #87d37c !important; }
    .wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
      color: red !important; }
  .wpcf7 .form-row {
    display: flex;
    flex-direction: column;
    margin-right: -0.75rem;
    margin-left: -0.75rem; }
    .wpcf7 .form-row::before, .wpcf7 .form-row::after {
      display: none !important; }
    .wpcf7 .form-row > .form-col, .wpcf7 .form-row > .form-col-6, .wpcf7 .form-row > .form-col-4, .wpcf7 .form-row > .form-col-3 {
      position: relative;
      width: 100%;
      padding-right: 0.75rem !important;
      padding-left: 0.75rem !important; }
    @media (min-width: 480px) {
          .wpcf7 .wpcf7-form .form-field.inline {
            flex-direction: row; }
      .wpcf7 .form-row {
        flex-direction: row;
        flex-wrap: wrap; }
      .wpcf7 .form-row > .form-col-6 {
        flex: 0 0 50%;
        max-width: 50%; }
      .wpcf7 .form-row > .form-col-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%; }
      .wpcf7 .form-row > .form-col-3 {
        flex: 0 0 25%;
        max-width: 25%; } }
    @media (min-width: 768px) {
    .breadcrumbs .breadcrumb::before, .breadcrumbs .breadcrumb::after {
      display: none; }
      .wpcf7 .wpcf7-form {
        margin-top: 2rem; } }
    @media (min-width: 1200px) and (max-width: 1399.98px) {
  .site-footer {
    --alpha-map-default-height: 100vh; }
    .site-footer .map-block-inner {
      min-height: var(--alpha-map-default-height); } }
    @media (max-width: 959px) {
  .form-field-submit {
    order: 1; }
  .form-legal-notice,
  .form-field-rgpd {
    order: 2; }
        .wpcf7 .wpcf7-form .wpcf7-response-output {
          margin-top: 0;
          margin-bottom: 1rem; } }
    @media (max-width: 768px) {
          .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
          .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
            width: 100%; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QXhRN0I7UUE2WU0sbUJBQW1CO1FBQ25CLGVBQWU7TUE5WXJCO1FBNFpRLGFBQWE7UUFDYixjQUFjO01BN1p0QjtRQXFhUSxnQkFBZ0I7UUFDaEIsaUJBQWlCO01BdGF6QjtRQThhUSxhQUFhO1FBQ2IsY0FBYyxJQTdJZjtJQ2xRSDtJUDdESjtNQXVDUSxhQUFhO01NVnJCO1FBVU0sZ0JEMUJtRCxJTDJCbEQ7SU93RUg7RUN0R0Y7SUFDRSxpQ0FBMkI7SUFEN0I7TUFJSSwyQ0FBMkMsSUFDNUM7SUZFTDtFQUVFO0lBQ0UsUUFBUTtFQUdWOztJQUVFLFFBQVE7UUFJWjtVQXdXUSxhQUFhO1VBQ2IsbUJBQW1CLElBNVd4QjtJQW9HSztVQWpHUjs7WUFrR1UsV0FBVyxJQUVkIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdG9ycmlzaS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy92ZW5kb3JzL2ZvbnRhd2Vzb21lL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vdG9ycmlzaS10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fYnJlYWRjcnVtYi5zY3NzIiwid2VicGFjazovL3RvcnJpc2ktdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwid2VicGFjazovL3RvcnJpc2ktdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYi5zY3NzIiwid2VicGFjazovL3RvcnJpc2ktdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vdG9ycmlzaS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy9jZjctZWZmZWN0L2Fzc2V0cy9zYXNzL2NvcmUvX2FuaW1hdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2Fic3RyYWN0cy9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vdG9ycmlzaS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy9jZjctZWZmZWN0L2Fzc2V0cy9zYXNzL2Fic3RyYWN0L192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvY29yZS9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly90b3JyaXNpLXRoZW1lLy4vYXNzZXRzL3Nhc3MvcGFnZXMvY29udGFjdC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIiR1c2UtZmEtcHJvOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbiVmYSxcbiVmYXMsXG4lZmFyLFxuJWZhbCxcbiVmYWQsXG4lZmF0LFxuJWZhYiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4lZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgQGluY2x1ZGUgZmEtaWNvbi1zdGFuZGFsb25lICgpO1xufVxuXG4lZmEsXG4lZmFzIHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbiVmYXIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuJWZhbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4lZmF0IHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cbiVmYWIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZSgkY29kZSkge1xuICBAZXh0ZW5kICVmYS1pY29uLXN0YW5kYWxvbmU7XG5cbiAgQGlmICR1c2UtZmEtcHJvIHtcbiAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKTtcbiAgfSBAZWxzZSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICAgIEBleHRlbmQgJWZhO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6ICRjb2RlO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKSB7XG4gIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tc29saWQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhcztcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXI7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhbDtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXQ7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhYjtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtYmVmb3JlKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJsaWdodFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcbiAgICB9XG5cbiAgICBAaWYgJGZsb2F0aW5nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1icy1ib2R5LWxpbmUtaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtYWZ0ZXIoJGNvZGUsICRmbG9hdGluZzogZmFsc2UsICRmYS1zdHlsZTogXCJzb2xpZFwiLCAkbWFyZ2luOiAuMjVlbSkge1xuICAmOjphZnRlciB7XG4gICAgQGlmICRmYS1zdHlsZSA9PSBcInJlZ3VsYXJcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwibGlnaHRcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLWxpZ2h0KCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcInRoaW5cIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwiYnJhbmRcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLWJyYW5kKCRjb2RlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZSgkY29kZSk7XG4gICAgfVxuXG4gICAgQGlmICRmbG9hdGluZyB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG5cbiAgICBsaW5lLWhlaWdodDogdmFyKC0tYnMtYm9keS1saW5lLWhlaWdodCk7XG5cbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLmJyZWFkY3J1bWIge1xuICAvLyBzY3NzLWRvY3Mtc3RhcnQgYnJlYWRjcnVtYi1jc3MtdmFyc1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteDogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXh9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteTogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXl9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLW1hcmdpbi1ib3R0b206ICN7JGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbX07XG4gIEBpbmNsdWRlIHJmcygkYnJlYWRjcnVtYi1mb250LXNpemUsIC0tI3skcHJlZml4fWJyZWFkY3J1bWItZm9udC1zaXplKTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1iZzogI3skYnJlYWRjcnVtYi1iZ307XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogI3skYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAjeyRicmVhZGNydW1iLWRpdmlkZXItY29sb3J9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14OiAjeyRicmVhZGNydW1iLWl0ZW0tcGFkZGluZy14fTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogI3skYnJlYWRjcnVtYi1hY3RpdmUtY29sb3J9O1xuICAvLyBzY3NzLWRvY3MtZW5kIGJyZWFkY3J1bWItY3NzLXZhcnNcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteSkgdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy14KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSh2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1mb250LXNpemUpKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItYmcpO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWJvcmRlci1yYWRpdXMpKTtcbn1cblxuLmJyZWFkY3J1bWItaXRlbSB7XG4gIC8vIFRoZSBzZXBhcmF0b3IgYmV0d2VlbiBicmVhZGNydW1icyAoYnkgZGVmYXVsdCwgYSBmb3J3YXJkLXNsYXNoOiBcIi9cIilcbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gU3VwcHJlc3MgaW5saW5lIHNwYWNpbmdzIGFuZCB1bmRlcmxpbmluZyBvZiB0aGUgc2VwYXJhdG9yXG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteCk7XG4gICAgICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcik7XG4gICAgICBjb250ZW50OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXIpKSAje1wiLyogcnRsOlwifSB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXItZmxpcHBlZCkpICN7XCIqL1wifTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kaW1lbnNpb24tbm8tbm9uLW51bWVyaWMtdmFsdWVzXG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIHJlc3BvbnNpdmUgdmFsdWVzIGZvciBmb250IHNpemVzLCBwYWRkaW5ncywgbWFyZ2lucyBhbmQgbXVjaCBtb3JlXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi9tYWluL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSB2YWx1ZVxuJHJmcy1iYXNlLXZhbHVlOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJmcy11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLXVuaXQgIT0gcmVtIGFuZCAkcmZzLXVuaXQgIT0gcHgge1xuICBAZXJyb3IgXCJgI3skcmZzLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIHZhbHVlcyBzdGFydCBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuQGlmICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHB4IGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBlbSBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcmVtIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIFJlc2l6ZSB2YWx1ZXMgYmFzZWQgb24gc2NyZWVuIGhlaWdodCBhbmQgd2lkdGhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFjdG9yIG9mIGRlY3JlYXNlXG4kcmZzLWZhY3RvcjogMTAgIWRlZmF1bHQ7XG5cbkBpZiB0eXBlLW9mKCRyZnMtZmFjdG9yKSAhPSBudW1iZXIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBNb2RlLiBQb3NzaWJpbGl0aWVzOiBcIm1pbi1tZWRpYS1xdWVyeVwiLCBcIm1heC1tZWRpYS1xdWVyeVwiXG4kcmZzLW1vZGU6IG1pbi1tZWRpYS1xdWVyeSAhZGVmYXVsdDtcblxuLy8gR2VuZXJhdGUgZW5hYmxlIG9yIGRpc2FibGUgY2xhc3Nlcy4gUG9zc2liaWxpdGllczogZmFsc2UsIFwiZW5hYmxlXCIgb3IgXCJkaXNhYmxlXCJcbiRyZnMtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAxIHJlbSA9ICRyZnMtcmVtLXZhbHVlIHB4XG4kcmZzLXJlbS12YWx1ZTogMTYgIWRlZmF1bHQ7XG5cbi8vIFNhZmFyaSBpZnJhbWUgcmVzaXplIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2lzc3Vlcy8xNFxuJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZSBSRlMgYnkgc2V0dGluZyAkZW5hYmxlLXJmcyB0byBmYWxzZVxuJGVuYWJsZS1yZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIENhY2hlICRyZnMtYmFzZS12YWx1ZSB1bml0XG4kcmZzLWJhc2UtdmFsdWUtdW5pdDogdW5pdCgkcmZzLWJhc2UtdmFsdWUpO1xuXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRyZnMtYmFzZS12YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcHgge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsICRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHJlbSB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWNoZSAkcmZzLWJyZWFrcG9pbnQgdW5pdCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzXG4kcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZTogdW5pdCgkcmZzLWJyZWFrcG9pbnQpO1xuXG4vLyBSZW1vdmUgdW5pdCBmcm9tICRyZnMtYnJlYWtwb2ludCBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcHgge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHJlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcImVtXCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsIGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBtZWRpYSBxdWVyeSB2YWx1ZVxuJHJmcy1tcS12YWx1ZTogaWYoJHJmcy1icmVha3BvaW50LXVuaXQgPT0gcHgsICN7JHJmcy1icmVha3BvaW50fXB4LCAje2RpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtcmVtLXZhbHVlKX0jeyRyZnMtYnJlYWtwb2ludC11bml0fSk7XG4kcmZzLW1xLXByb3BlcnR5LXdpZHRoOiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtd2lkdGgsIG1pbi13aWR0aCk7XG4kcmZzLW1xLXByb3BlcnR5LWhlaWdodDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LWhlaWdodCwgbWluLWhlaWdodCk7XG5cbi8vIEludGVybmFsIG1peGluIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1lZGlhIHF1ZXJ5IG5lZWRzIHRvIGJlIHVzZWRcbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5IHtcbiAgQGlmICRyZnMtdHdvLWRpbWVuc2lvbmFsIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pLCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkgYW5kICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBkaXNhYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLXJ1bGUge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAvLyBBZGRpbmcgYW4gZXh0cmEgY2xhc3MgaW5jcmVhc2VzIHNwZWNpZmljaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUgbWVkaWEgcXVlcnkgdG8gb3ZlcnJpZGUgdGhlIHByb3BlcnR5XG4gICAgJixcbiAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgLmVuYWJsZS1yZnMgJixcbiAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZW5hYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5LXJ1bGUge1xuXG4gIEBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSAoKSB7XG4gICAgICAuZW5hYmxlLXJmcyAmLFxuICAgICAgJi5lbmFibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmb3JtYXR0ZWQgbm9uLXJlc3BvbnNpdmUgdmFsdWVcbkBmdW5jdGlvbiByZnMtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArICRyZnMtcmVtLXZhbHVlKX1yZW0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkdW5pdCA9PSByZW0ge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHB4IGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIDEpICogJHJmcy1yZW0tdmFsdWV9cHgsICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHJlc3BvbnNpdmUgdmFsdWUgY2FsY3VsYXRlZCBieSBSRlNcbkBmdW5jdGlvbiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgQGlmIG5vdCAkdW5pdCBvciAkdW5pdCAhPSBweCBhbmQgJHVuaXQgIT0gcmVtIHtcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJHZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgaWYoJHVuaXQgPT0gcHgsIDEsIGRpdmlkZSgxLCAkcmZzLXJlbS12YWx1ZSkpKTtcblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICBAaWYgYWJzKCR2YWx1ZSkgPD0gJHJmcy1iYXNlLXZhbHVlIG9yIG5vdCAkZW5hYmxlLXJmcyB7XG4gICAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZX1weCk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1taW46ICRyZnMtYmFzZS12YWx1ZSArIGRpdmlkZShhYnMoJHZhbHVlKSAtICRyZnMtYmFzZS12YWx1ZSwgJHJmcy1mYWN0b3IpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkdmFsdWUgYW5kIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLWRpZmY6IGFicygkdmFsdWUpIC0gJHZhbHVlLW1pbjtcblxuICAgICAgICAgIC8vIEJhc2UgdmFsdWUgZm9ybWF0dGluZ1xuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZS1taW4sICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlLW1pbn1weCk7XG5cbiAgICAgICAgICAvLyBVc2UgbmVnYXRpdmUgdmFsdWUgaWYgbmVlZGVkXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHZhbHVlIDwgMCwgLSRtaW4td2lkdGgsICRtaW4td2lkdGgpO1xuXG4gICAgICAgICAgLy8gVXNlIGB2bWluYCBpZiB0d28tZGltZW5zaW9uYWwgaXMgZW5hYmxlZFxuICAgICAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YXJpYWJsZSB3aWR0aCBiZXR3ZWVuIDAgYW5kICRyZnMtYnJlYWtwb2ludFxuICAgICAgICAgICR2YXJpYWJsZS13aWR0aDogI3tkaXZpZGUoJHZhbHVlLWRpZmYgKiAxMDAsICRyZnMtYnJlYWtwb2ludCl9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGNhbGN1bGF0ZWQgdmFsdWVcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgY2FsYyhcIiArICRtaW4td2lkdGggKyBpZigkdmFsdWUgPCAwLCBcIiAtIFwiLCBcIiArIFwiKSArICR2YXJpYWJsZS13aWR0aCArIFwiKVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBSRlMgbWl4aW5cbkBtaXhpbiByZnMoJHZhbHVlcywgJHByb3BlcnR5OiBmb250LXNpemUpIHtcbiAgQGlmICR2YWx1ZXMgIT0gbnVsbCB7XG4gICAgJHZhbDogcmZzLXZhbHVlKCR2YWx1ZXMpO1xuICAgICRmbHVpZC12YWw6IHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKTtcblxuICAgIC8vIERvIG5vdCBwcmludCB0aGUgbWVkaWEgcXVlcnkgaWYgcmVzcG9uc2l2ZSAmIG5vbi1yZXNwb25zaXZlIHZhbHVlcyBhcmUgdGhlIHNhbWVcbiAgICBAaWYgJHZhbCA9PSAkZmx1aWQtdmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWQtdmFsKTtcblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnktcnVsZSAoKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJGZsdWlkLXZhbCwgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNob3J0aGFuZCBoZWxwZXIgbWl4aW5zXG5AbWl4aW4gZm9udC1zaXplKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlKTtcbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmcpO1xufVxuXG5AbWl4aW4gcGFkZGluZy10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctdG9wKTtcbn1cblxuQG1peGluIHBhZGRpbmctcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctcmlnaHQpO1xufVxuXG5AbWl4aW4gcGFkZGluZy1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctYm90dG9tKTtcbn1cblxuQG1peGluIHBhZGRpbmctbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1sZWZ0KTtcbn1cblxuQG1peGluIG1hcmdpbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luKTtcbn1cblxuQG1peGluIG1hcmdpbi10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi10b3ApO1xufVxuXG5AbWl4aW4gbWFyZ2luLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tcmlnaHQpO1xufVxuXG5AbWl4aW4gbWFyZ2luLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBtYXJnaW4tbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWxlZnQpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byByZXBsYWNlIG5lZ2F0aXZlIHZhbHVlcyB3aXRoIDBcbkBmdW5jdGlvbiB2YWxpZC1yYWRpdXMoJHJhZGl1cykge1xuICAkcmV0dXJuOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICRyYWRpdXMge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBtYXgoJHZhbHVlLCAwKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBib3JkZXItcmFkaXVzLW1peGluc1xuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9icmVhZGNydW1iXCI7XG5cbi5icmVhZGNydW1icyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7JGNvbnRhaW5lci1wYWRkaW5nLXh9ICogLTEpO1xuICBtYXJnaW4tbGVmdDogY2FsYygjeyRjb250YWluZXItcGFkZGluZy14fSAqIC0xKTtcblxuICAuYnJlYWRjcnVtYiB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgcGFkZGluZzogJGNvbnRhaW5lci1wYWRkaW5nLXg7XG4gICAgbWFyZ2luOiB1bnNldDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kKSk7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgLmJyZWFkY3J1bWIge1xuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYub24tZmVhdHVyZWQge1xuICAgIC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcjogI3skYnJlYWRjcnVtYi1vbi1mZWF0dXJlZC1tb2JpbGUtc2hhZG93LWNvbG9yfTtcbiAgICAtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kOiAje3JnYmEoJGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvciwgMCl9O1xuICAgIHRvcDogdmFyKC0tZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0KTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuXG4gICAgLmJyZWFkY3J1bWIge1xuICAgICAgLS1icy1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICAgIC0tYnMtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogY3VycmVudGNvbG9yO1xuXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmRhcmsge1xuICAgIC0tYnMtbGluay1jb2xvci1yZ2I6ICN7aGV4LXRvLXJnYigkd2hpdGUpfTtcblxuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC0tYnMtbGluay1jb2xvci1yZ2I6ICN7aGV4LXRvLXJnYigkZ3JheS0xMDApfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJyZWFkY3J1bWJzLW9uLWZlYXR1cmVkIHtcbiAgJjpub3QoLmhhcy10cmFuc3BhcmVudC1oZWFkZXIpIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWhlYWRlci1oZWlnaHQpICsgdmFyKC0tZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0KSk7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgLjNzIGVhc2U7XG4gICAgfVxuICB9XG5cbiAgJi5zZWFyY2gge1xuICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgcGFkZGluZy10b3A6IG1hcC1nZXQoJHNwYWNlcnMsIDgpO1xuICAgIH1cbiAgfVxufVxuXG4uYnJlYWRjcnVtYi1pdGVtIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICArIC5icmVhZGNydW1iLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1iZWZvcmUoJGZhLXZhci1hbmdsZS1yaWdodCwgZmFsc2UsIFwibGlnaHRcIiwgMCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZmxvYXQ6IHVuc2V0O1xuICAgICAgcGFkZGluZy1yaWdodDogLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy92YXJpYWJsZXNcIjtcblxuJHRoZW1lLWFzc2V0LXBhdGg6IFwiLi4vaW1hZ2VzXCIgIWRlZmF1bHQ7XG4kZm9udHMtcGF0aDogXCJmb250c1wiICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb2xvciBzeXN0ZW1cbiRibGFjazogIzAwMCAhZGVmYXVsdDtcbiR3aGl0ZTogI2ZmZiAhZGVmYXVsdDtcbiRncmF5LTEwMDogI2Y3ZjdmNyAhZGVmYXVsdDtcbiRncmF5LTIwMDogI2U5ZWNlZiAhZGVmYXVsdDtcbiRncmF5LTMwMDogI2RlZTJlNiAhZGVmYXVsdDtcbiRncmF5LTUwMDogIzlkOWQ5ZCAhZGVmYXVsdDtcbiRncmF5LTYwMDogIzZjNzU3ZCAhZGVmYXVsdDtcbiRncmF5LTcwMDogIzQ5NTA1NyAhZGVmYXVsdDtcbiRncmF5LTkwMDogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbG9yLXZhcmlhYmxlc1xuJGJsdWU6ICMwMDVkYWEgIWRlZmF1bHQ7XG4kcHVycGxlOiAjNzAxZTZlICFkZWZhdWx0O1xuJGdyZWVuOiAjMDFhZTNjICFkZWZhdWx0O1xuJHJlZDogI2RjMzU0NSAhZGVmYXVsdDtcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XG4kY3lhbjogIzBkY2FmMCAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbG9ycy1tYXBcbiRjb2xvcnM6IChcbiAgXCJibHVlXCI6ICRibHVlLFxuICBcInB1cnBsZVwiOiAkcHVycGxlLFxuICBcImdyZWVuXCI6ICRncmVlbixcbiAgXCJ3aGl0ZVwiOiAkd2hpdGUsXG4gIFwiZ3JheS0xMDBcIjogJGdyYXktMTAwLFxuICBcImdyYXktNTAwXCI6ICRncmF5LTUwMCxcbiAgXCJncmF5LTkwMFwiOiAkZ3JheS05MDBcbikgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0aGVtZS1jb2xvci12YXJpYWJsZXNcbiRzdWNjZXNzOiAkZ3JlZW4gIWRlZmF1bHQ7XG4kaW5mbzogJGN5YW4gIWRlZmF1bHQ7XG4kd2FybmluZzogJHllbGxvdyAhZGVmYXVsdDtcbiRkYW5nZXI6ICRyZWQgIWRlZmF1bHQ7XG4kbGlnaHQ6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiRkYXJrOiAkZ3JheS05MDAgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0aGVtZS1jb2xvcnMtbWFwXG4kZGVmYXVsdC10aGVtZS1jb2xvcnM6IChcbiAgXCJwcmltYXJ5XCI6ICRwcmltYXJ5LFxuICBcInNlY29uZGFyeVwiOiAkc2Vjb25kYXJ5LFxuICBcInN1Y2Nlc3NcIjogJHN1Y2Nlc3MsXG4gIFwiaW5mb1wiOiAkaW5mbyxcbiAgXCJ3YXJuaW5nXCI6ICR3YXJuaW5nLFxuICBcImRhbmdlclwiOiAkZGFuZ2VyLFxuICBcImxpZ2h0XCI6ICRsaWdodCxcbiAgXCJkYXJrXCI6ICRkYXJrLFxuICBcIndoaXRlXCI6ICR3aGl0ZVxuKSAhZGVmYXVsdDtcbiR0aGVtZS1jb2xvcnM6ICgpICFkZWZhdWx0O1xuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCRkZWZhdWx0LXRoZW1lLWNvbG9ycywgJHRoZW1lLWNvbG9ycyk7XG5cbi8vIFRoZSBjb250cmFzdCByYXRpbyB0byByZWFjaCBhZ2FpbnN0IHdoaXRlLCB0byBkZXRlcm1pbmUgaWYgY29sb3IgY2hhbmdlcyBmcm9tIFwibGlnaHRcIiB0byBcImRhcmtcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgZm9yIFdDQUcgMi4wIGFyZSAzLCA0LjUgYW5kIDcuXG4kbWluLWNvbnRyYXN0LXJhdGlvOiA0LjUgIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbWl6ZSB0aGUgbGlnaHQgYW5kIGRhcmsgdGV4dCBjb2xvcnMgZm9yIHVzZSBpbiBvdXIgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG4kY29sb3ItY29udHJhc3QtZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuJGNvbG9yLWNvbnRyYXN0LWxpZ2h0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItcmFkaXVzLXZhcmlhYmxlc1xuJGJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtbGc6IC42MjVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9wdGlvbnNcbiRlbmFibGUtbmVnYXRpdmUtbWFyZ2luczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU3BhY2luZ1xuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICRzcGFjZXIgKiAuMjUsIC8vIDRweFxuICAyOiAkc3BhY2VyICogLjUsIC8vIDhweFxuICAzOiAkc3BhY2VyICogLjc1LCAvLyAxMnB4XG4gIDQ6ICRzcGFjZXIsIC8vIDE2cHhcbiAgNTogJHNwYWNlciAqIDEuMjUsIC8vIDIwcHhcbiAgNjogJHNwYWNlciAqIDEuNSwgLy8gMjRweFxuICA3OiAkc3BhY2VyICogMS43NSwgLy8gMjhweFxuICA4OiAkc3BhY2VyICogMiwgLy8gMzJweFxuICA5OiAkc3BhY2VyICogMywgLy8gNDhweFxuICAxMDogJHNwYWNlciAqIDQsIC8vIDY0cHhcbiAgMTE6ICRzcGFjZXIgKiA1IC8vIDgwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIERhcmsgU3R5bGVcbiRkYXJrLWJnLWNvbG9yOiB2YXIoLS1icy1ib2R5LWJnLWRhcmspICFkZWZhdWx0O1xuJGRhcmstdHh0LWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yLWRhcmspICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBMaWdodCBTdHlsZVxuJGxpZ2h0LWJnLWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRsaWdodC10eHQtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBIZWFkZXJcbiRoZWFkZXItYmc6IHZhcigtLWJzLWJvZHktYmcpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb290ZXJcbiRmb290ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiRjb3B5cmlnaHQtYmc6ICRmb290ZXItYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpbmtzXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbGluay1zaGFkZS1wZXJjZW50YWdlOiAyMCUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogc2hpZnQtY29sb3IoJGxpbmstY29sb3IsICRsaW5rLXNoYWRlLXBlcmNlbnRhZ2UpICFkZWZhdWx0O1xuXG4vLyBHcmlkIGNvbHVtbnNcbiRncmlkLWd1dHRlci13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb250YWluZXIgcGFkZGluZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6ICRncmlkLWd1dHRlci13aWR0aCAvIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItdmFyaWFibGVzXG4kYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiByZ2JhKCRncmF5LTkwMCwgLjE1KSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGFzcGVjdC1yYXRpb3NcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGhlYWRpbmdzLXZhcmlhYmxlc1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgKiAyICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBCdXR0b25zICsgRm9ybXNcbiRidG4tY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiBudWxsLFxuICBcInNlY29uZGFyeVwiIDogbnVsbFxuKSAhZGVmYXVsdDtcblxuJGlucHV0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXk6IC4zNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogLjc1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjEyNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXk6ICRpbnB1dC1idG4tcGFkZGluZy15ICFkZWZhdWx0O1xuJGlucHV0LXBhZGRpbmcteDogJGlucHV0LWJ0bi1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kaW5wdXQtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2c1xuLy8tLS0tLSBTaGFyZWQgdmFyaWFibGVzXG4kbmF2LWNvbG9yLWFjY2VudDogJHByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIHZhcmlhYmxlc1xuJG5hdi1saW5rLWZvbnQtc2l6ZTogbnVsbCAhZGVmYXVsdDtcbiRuYXYtbGluay1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRuYXYtbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkcHJpbWFyeSwgMzAlKSAhZGVmYXVsdDtcbiRuYXYtbGluay1kaXNhYmxlZC1jb2xvcjogJGdyYXktNjAwICFkZWZhdWx0O1xuXG4vLy0tLS0tIEFscGhhIHZhcmlhYmxlc1xuJG5hdi1jb2xvci1ob3Zlci1maXJzdC1sZXZlbDogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1jb2xvci1jdXJyZW50OiAkbmF2LWNvbG9yLWFjY2VudCAhZGVmYXVsdDtcbiRuYXYtY29sb3ItY3VycmVudC1maXJzdC1sZXZlbDogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xuJG5hdi1jb2xvci1hbmNlc3Rvcjogc2hhZGUtY29sb3IoJG5hdi1jb2xvci1hY2NlbnQsIDIwJSkgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWFuY2VzdG9yLWZpcnN0LWxldmVsOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBOYXZiYXJcbiRzdWJtZW51LWJnLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy15OiAzICogJHNwYWNlciAvIDQgIWRlZmF1bHQ7XG4kbmF2YmFyLWl0ZW0tbWFyZ2luLXg6IG51bGwgIWRlZmF1bHQ7XG4kbmF2YmFyLWl0ZW0tbWFyZ2luLXk6IG51bGwgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWNvbG9yOiAkbmF2LWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBEcm9wZG93bnNcblxuLy8tLS0tLS0gUGFnaW5hdGlvblxuJHBhZ2luYXRpb24taG92ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTW9kYWxzXG4kbW9kYWwtYmFja2Ryb3AtYmc6IGJsYWNrICFkZWZhdWx0O1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuXG4vLyBNb2RhbCBWaWRlb1xuJG1vZGFsLXZpZGVvLWJ0bi1jbG9zZS1iZy1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbW9kYWwtdmlkZW8tYnRuLWNsb3NlLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBJbWFnZSB0aHVtYm5haWxzICYgUGljdHVyZVxuXG4vLy0tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItZm9udC1zaXplOiAuNzVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBPZmZjYW52YXNcbiRvZmZjYW52YXMtYm9keS1iYWNrZHJvcC1jb2xvcjogcmdiYSgkbW9kYWwtYmFja2Ryb3AtYmcsICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtd2lkZS1zY3JlZW4tYnJlYWtwb2ludDogeHhsICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBPZmZjYW52YXMgZGVza3RvcFxuJG9mZmNhbnZhcy1kYXJrLW1vZGUtbG9nby1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1kZXNrdG9wLXdpZHRoOiA0MDBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbG9nby13aWR0aDogNjYuNjYlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1oZWFkZXItYWxpZ25lbWVudDogY2VudGVyICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eTogLjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtYm9yZGVyLWJnOiByZ2JhKCRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLW9wYWNpdHk6IC4xICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZzogcmdiYSgkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvciwgJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItb3BhY2l0eSk7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zdHlsZTogJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItc2l6ZSAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci10eXBlICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLWNvbG9yLWJnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC10aHVtYi13aWR0aDogNzUlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtZm9udC1zaXplOiAxLjEyNXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0tcGFkZGluZy15OiAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1saW5lLWhlaWdodDogMS4yNSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taWNvbi1zaXplOiAuOHJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taW1hZ2UtYm94LXNoYWRvdzogMCAwIDEuNXJlbSAuNzVyZW0gcmdiYSgkc2Vjb25kYXJ5LCAuMjUpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1ob3Zlci1pbWFnZS1ib3gtc2hhZG93OiB2YXIoLS1icy1ib3gtc2hhZG93KTtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkIHJnYmEoJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1jb2xvciwgJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1vcGFjaXR5KTtcblxuLy8tLS0tLS0tIE9mZmNhbnZhcyBkZXNrdG9wIE1lZ2EgU3VibWVudVxuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAkb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItY29sb3I7XG5cblxuLy8tLS0tLS0gTWVnYSBNZW51XG4kbWVnYW1lbnUtYmctY29sb3I6IHZhcigtLXRoZW1lLXNraW4tYmctY29sb3IpO1xuJG1lZ2FtZW51LXBhZGRpbmcteTogMXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtcGFkZGluZy15OiAuNXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtaG92ZXItdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGljdHVyZS1oYXMtb3ZlcmxheTogdHJ1ZSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJG1lZ2FtZW51LW92ZXJsYXktYmctY29sb3ItcmJnOiByZ2JhKCRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yLCAkbWVnYW1lbnUtb3ZlcmxheS1iZy1vcGFjaXR5KSAhZGVmYXVsdDtcbiRtZWdhbWVudS1waWN0dXJlLWJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbmNob3Igb2Zmc2V0XG4kYW5jaG9yLW9mZnNldDogMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV3AgQWxwaGFcbi8vIGxvZ29cbiRsb2dvLXBhZGRpbmcteTogJG5hdmJhci1wYWRkaW5nLXkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIGNvbG9ycyBjbGVhbnVwXG4kYnMtZ3JheXMtdG8ta2VlcDogKCkgIWRlZmF1bHQ7XG4kYnMtZ3JheXMtdG8tcmVtb3ZlOiAoXCIyMDBcIiwgXCIzMDBcIiwgXCI0MDBcIiwgXCI1MDBcIiwgXCI3MDBcIikgIWRlZmF1bHQ7XG4kYnMtY29sb3JzLXRvLWtlZXA6ICgpICFkZWZhdWx0O1xuJGJzLWNvbG9ycy10by1yZW1vdmU6IChcImluZGlnb1wiLCBcInBpbmtcIiwgXCJyZWRcIiwgXCJ5ZWxsb3dcIiwgXCJncmVlblwiLCBcInRlYWxcIiwgXCJjeWFuXCIsIFwibGlnaHRcIiwgXCJkYXJrXCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJvb3RzdHJhcCB1dGlsaXRpZXMgY2xlYW51cFxuJGJzLXV0aWxpdGllcy10by1yZW1vdmU6IChcImJnLW9wYWNpdHlcIikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gSGVscGVyc1xuLy8tLS0tIFNlcGFyYXRlIHRpdGxlXG4kc2VwYXJhdGUtdGl0bGUtd2lkdGg6IDgwcHggIWRlZmF1bHQ7XG4kc2VwYXJhdGUtdGl0bGUtYmc6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy0tLS0gVHJhbnNwYXJlbnQgYmFja2dyb3VuZHNcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMtb3ZlcnJpZGVzOiAoKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXM6IChcbiAgMTA6IC4xLFxuICAyNTogLjI1LFxuICBsaWdodDogLjI1LFxuICAzNTogLjM1LFxuICA1MDogLjUsXG4gIG1lZGl1bTogLjUsXG4gIDY1OiAuNjUsXG4gIDc1OiAuNzUsXG4gIHN0cm9uZzogLjc1LFxuICA5MDogLjlcbikgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzOiBtYXAtbWVyZ2UoJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcywgJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcy1vdmVycmlkZXMpO1xuJHRyYW5zcGFyZW50LWJnLWNvbG9yczogKHByaW1hcnk6ICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMsIHNlY29uZGFyeTogJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9vbHNcbi8vIENvbmZpZ3VyYXRpb24gKGFjdGl2YXRlIG9ubHkgdGhvc2UgbmVlZGVkKVxuJHRlYXNlczogKFwiZ3JpZFwiLCBcImxpc3RcIiwgXCJzaW1wbGVcIiwgXCJzaW1wbGUtcmVhbGlzYXRpb25zXCIpICFkZWZhdWx0O1xuJGZvcm1zOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBUb3AgQmFyXG4kdG9wLWJhci1oaWRlLW9uLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLWRlc2t0b3A6ICR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLW1vYmlsZSAhZGVmYXVsdDtcbiR0b3AtYmFyLXBhZGRpbmcteDogJGNvbnRhaW5lci1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kdG9wLWJhci1wYWRkaW5nLXk6IC41cmVtICFkZWZhdWx0O1xuJHRvcC1iYXItaGVpZ2h0OiBpZihudWxsICE9IGluZGV4KCRtZW51cywgXCJzZWNvbmRhcnlcIiksIDIuNXJlbSwgMS41cmVtKSAhZGVmYXVsdDtcbiR0b3AtYmFyLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kdG9wLWJhci1zb2NpYWwtbGlua3MtbWFyZ2luOiBtYXAtZ2V0KCRzcGFjZXJzLCA0KSAhZGVmYXVsdDtcbiR0b3AtYmFyLWRlZmF1bHQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLXRyYW5zcGFyZW50LWhlYWRlci1iZy1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gSGVhZGVyXG4kaGVhZGVyLWJ0bi1pY29uOiAkZmEtdmFyLXBob25lICFkZWZhdWx0O1xuJGhlYWRlci1idG4tZmEtc3R5bGU6IFwic29saWRcIiAhZGVmYXVsdDtcbiRoZWFkZXItYnRuLXNob3ctdGV4dC1icmVha3BvaW50OiAkZGVza3RvcC1icmVha3BvaW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEZlYXR1cmVkIGltYWdlXG4kZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0OiA1MHZoICFkZWZhdWx0O1xuJGhvbWUtZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0OiA1MHZoICFkZWZhdWx0O1xuJGZlYXR1cmVkLWltYWdlLW92ZXJsYXktY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJGZlYXR1cmVkLWltYWdlLW92ZXJsYXktb3BhY2l0eTogLjMgIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS10ZXh0LXRyYW5zaXRpb246IHRydWUgIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS10ZXh0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cyAhZGVmYXVsdDtcblxuLy8tLS0tLSBDb250ZW50IEFib3ZlXG4kY29udGVudC1hYm92ZS10ZXh0LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaGFwZXNcbi8vIHBvc3NpYmxlIHNoYXBlcyBhcmU6IChzcXVhcmUsIGNpcmNsZSwgdHJpYW5nbGUsIGxvemVuZ2UpXG4vLyBwb3NzaWJsZSB1bml0cyBhcmU6IChyZW06IDFyZW0sIGVtOiAxZW0sIHZ3OiAyLjV2dylcbiRzaGFwZXM6IChjaXJjbGUpICFkZWZhdWx0O1xuJHNoYXBlcy11bml0czogKHJlbTogMXJlbSkgIWRlZmF1bHQ7XG4kc2hhcGVzLWRlZmF1bHQtdW5pdDogbnRoKG50aCgkc2hhcGVzLXVuaXRzLCAxKSwgMikgIWRlZmF1bHQ7XG4kc2hhcGVzLW1heC1tdWx0aXBsaWVyOiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZXh0IGNvbnRyYXN0XG4kYWxwaGEtZW5hYmxlLWJ0bi1jbG9zZS10ZXh0LWNvbnRyYXN0LWNvbG9yczogZmFsc2UgIWRlZmF1bHQ7XG4kYWxwaGEtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiAkdGhlbWUtY29sb3JzICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRleHQgc2hhZG93XG4kYWxwaGEtdGV4dC1zaGFkb3ctY29sb3I6IGNvbG9yLWNvbnRyYXN0KHdoaXRlKSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1zbTogLjI1cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1sZzogMXJlbSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE92ZXJsYXlcbiRhbHBoYS1vdmVybGF5LWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmcgIWRlZmF1bHQ7XG4kYWxwaGEtb3ZlcmxheS1vcGFjaXR5OiAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSAhZGVmYXVsdDtcbiRhbHBoYS1vdmVybGF5LWNvbG9yczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gWiBpbmRleFxuJGFscGhhLXotaW5kZXhlczogKDEsIDIsIDEwKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaWRlYmFyXG4kc2lkZWJhcjogZmFsc2UgIWRlZmF1bHQ7XG4kc2lkZWJhci1iZy1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuJHNpZGViYXItcGFkZGluZzogbWFwLWdldCgkc3BhY2VycywgMykgIWRlZmF1bHQ7XG4kc2lkZWJhci1ib3JkZXItcmFkaXVzOiAuMzc1cmVtICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0cy1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDYpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LWNvbnRlbnQtc3BhY2VyOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRzaWRlYmFyLXdpZGdldC10aXRsZS1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LXRpdGxlLWZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRzaWRlYmFyLXdpZGdldC1saXN0LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTdXJ0aXRsZVxuJGFscGhhLXN1cnRpdGxlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXNpemUtZGVza3RvcDogJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1tYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzcGFjZXJzLCA0KSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4vLy0tLS0tIENvcHlyaWdodFxuJGFscGhhLWNvcHlyaWdodC1mb250LXNpemU6IC44MjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtY29weXJpZ2h0LWxpbmstaG92ZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kYWxwaGEtY29weXJpZ2h0LWxpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy0tLS0tIE5hdmlnYXRpb25zXG4vLy0tLS0gQ29tbW9uXG4kbmF2LWxpbmstYWZ0ZXItaGVpZ2h0OiAycHggIWRlZmF1bHQ7XG5cbi8vLS0tLSBDZW50ZXJcbiRuYXYtY2VudGVyLWxvZ28tcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXk6IDAgIWRlZmF1bHQ7XG5cbi8vLS0tLSBTdWJtZW51IG1vcnBoXG4kc3VibWVudS1tb3JwaC1taW4td2lkdGg6IDM1MHB4ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbWF4LXdpZHRoOiAzNXZ3ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1ib3JkZXItcmFkaXVzOiAuNXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtcGFkZGluZzogLjVyZW0gIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1hcnJvdy1oZWlnaHQ6IC43NXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtYXJyb3ctbGVmdDogNXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWFjdGl2ZS1tZW51LWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1hbmNlc3RvcnMtZm9udC13ZWlnaHQ6IDUwMCAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstY29sb3I6ICRuYXYtbGluay1jb2xvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstaG92ZXItY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstY29sb3ItY3VycmVudDogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbGluay1jb2xvci1hbmNlc3RvcjogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLXNjcm9sbGJhci1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1zY3JvbGxiYXItYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItbW9iaWxlLXNoYWRvdy1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHRlYXNlLWJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2UtYmFkZ2UtYmc6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuXG4kdGVhc2Utb3ZlcmxheS10ZXh0LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS10ZXh0LXNoYWRvdzogMCAwIC4yNXJlbSAjMDAwO1xuJHRlYXNlLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV29vQ29tbWVyY2VcblxuJHdjLXByaW1hcnk6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJHdvb2NvbW1lcmNlOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiR3Yy1ncmVlbjogJHN1Y2Nlc3MgIWRlZmF1bHQ7XG4kd2MtcmVkOiAkZGFuZ2VyICFkZWZhdWx0O1xuJHdjLW9yYW5nZTogJHdhcm5pbmcgIWRlZmF1bHQ7XG4kd2MtYmx1ZTogJGluZm8gIWRlZmF1bHQ7XG4kd2MtcHJpbWFyeS10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2Mtc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLXNlY29uZGFyeS10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtaGlnaGxpZ2h0OiAjYjNhZjU0ICFkZWZhdWx0O1xuJHdjLWhpZ2hsaWdodC10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtY29udGVudC1iZzogI2ZmZiAhZGVmYXVsdDtcbiR3Yy1zdWJ0ZXh0OiAjNzY3Njc2ICFkZWZhdWx0O1xuXG4kd2Mtc3RvY2staW4tc3RvY2stY29sb3I6ICR3Yy1ncmVlbiAhZGVmYXVsdDtcbiR3Yy1zdG9jay1sb3ctc3RvY2stY29sb3I6ICR3Yy1vcmFuZ2UgIWRlZmF1bHQ7XG4kd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1jb2xvcjogJHdjLW9yYW5nZSAhZGVmYXVsdDtcbiR3Yy1zdG9jay1vdXQtb2Ytc3RvY2stY29sb3I6ICR3Yy1yZWQgIWRlZmF1bHQ7XG5cbiR3Yy1zdG9jay1pbi1zdG9jay1pY29uOiAkZmEtdmFyLWNpcmNsZS1jaGVjayAhZGVmYXVsdDtcbiR3Yy1zdG9jay1sb3ctc3RvY2staWNvbjogJGZhLXZhci1jaGFydC1saW5lLWRvd24gIWRlZmF1bHQ7XG4kd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1pY29uOiAkZmEtdmFyLWNsb2NrLXJvdGF0ZS1sZWZ0ICFkZWZhdWx0O1xuJHdjLXN0b2NrLW91dC1vZi1zdG9jay1pY29uOiAkZmEtdmFyLWNpcmNsZS14bWFyayAhZGVmYXVsdDtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3Igb2xkICR3b29jb21tZXJjZSAmICR3b29jb21tZXJjZVNpZGViYXIgdmFyaWFibGVzXG5AaWYgdHlwZS1vZigkd29vY29tbWVyY2UpID09IFwiYm9vbFwiIHtcbiAgQHdhcm4gXCJVc2FnZSBvZiAkd29vY29tbWVyY2UgdmFyaWFibGUgYXMgYm9vbCBpcyBkZXByZWNhdGVkLCB1c2Ugd29vY29tbWVyY2UuZW5hYmxlZCBpbiB3b29jb21tZXJjZS55YW1sIGluc3RlYWQuXCI7XG4gICR3b29jb21tZXJjZTogbWFwLWV4dGVuZChtYXAtZ2V0KCRjb25maWctZGVmYXVsdHMsIFwid29vY29tbWVyY2VcIiksIChlbmFibGVkOiAkd29vY29tbWVyY2UpKTtcbiAgJHdvb2NvbW1lcmNlLWVuYWJsZWQ6IG1hcC1nZXQtZGVlcCgkd29vY29tbWVyY2UsIFwiZW5hYmxlZFwiKTtcbn1cblxuQGlmIHZhcmlhYmxlLWV4aXN0cyh3b29jb21tZXJjZVNpZGViYXIpIHtcbiAgQHdhcm4gXCJVc2FnZSBvZiAkd29vY29tbWVyY2VTaWRlYmFyIHZhcmlhYmxlIGRlcHJlY2F0ZWQsIHVzZSAkd29vY29tbWVyY2Utc2lkZWJhciBpbnN0ZWFkLlwiO1xuICAkd29vY29tbWVyY2Utc2lkZWJhcjogJHdvb2NvbW1lcmNlU2lkZWJhcjtcbn1cblxuLy8gQWNjb3VudFxuJGFjY291bnQtbmF2aWdhdGlvbi1pY29uczogKFxuICBkYXNoYm9hcmQ6ICRmYS12YXItaG9tZSxcbiAgb3JkZXJzOiAkZmEtdmFyLWRvbGx5LFxuICBzdWJzY3JpcHRpb25zOiAkZmEtdmFyLWNsb2NrLXJvdGF0ZS1sZWZ0LFxuICBtZW1iZXJzaGlwczogJGZhLXZhci11c2VyLWNyb3duLFxuICBkb3dubG9hZHM6ICRmYS12YXItZG93bmxvYWQsXG4gIGVkaXQtYWRkcmVzczogJGZhLXZhci1tYXAtbWFya2VyLWVkaXQsXG4gIHBheW1lbnQtbWV0aG9kczogJGZhLXZhci1jcmVkaXQtY2FyZCxcbiAgZWRpdC1hY2NvdW50OiAkZmEtdmFyLXVzZXItZWRpdCxcbiAgYm9va2luZ3M6ICRmYS12YXItY2FsZW5kYXItYWx0LFxuICBjdXN0b21lci1sb2dvdXQ6ICRmYS12YXItc2lnbi1vdXRcbikgIWRlZmF1bHQ7XG5cbi8vIEF0dHJpYnV0ZXNcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWV2ZW4tYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1sYWJlbC1jb2xvcjogJGdyYXktNzAwICFkZWZhdWx0O1xuXG4vLyBBdmFpbGFiaWxpdHlcbiR3Yy1zdG9jay1mb250LXNpemU6IC44cmVtICFkZWZhdWx0O1xuJHdjLXN0b2NrLWljb24td2lkdGg6ICRmYS1mdy13aWR0aCAhZGVmYXVsdDtcbiR3Yy1zdG9jay1pY29uLWZvbnQtc2l6ZTogJGZhLXNpemUtc2NhbGUtYmFzZSAhZGVmYXVsdDtcbiR3Yy1zdG9jay1pbmZvOiAoXG4gIGluLXN0b2NrOiAoY29sb3I6ICR3Yy1zdG9jay1pbi1zdG9jay1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWluLXN0b2NrLWljb24pLFxuICBsb3ctc3RvY2s6IChjb2xvcjogJHdjLXN0b2NrLWxvdy1zdG9jay1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWxvdy1zdG9jay1pY29uKSxcbiAgYXZhaWxhYmxlLW9uLWJhY2tvcmRlcjogKGNvbG9yOiAkd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWF2YWlsYWJsZS1vbi1iYWNrb3JkZXItaWNvbiksXG4gIG91dC1vZi1zdG9jazogKGNvbG9yOiAkd2Mtc3RvY2stb3V0LW9mLXN0b2NrLWNvbG9yLCBpY29uOiAkd2Mtc3RvY2stb3V0LW9mLXN0b2NrLWljb24pLFxuKSAhZGVmYXVsdDtcblxuXG4vLy0tLS0tIEFkZCB0byBDYXJ0IGJ1dHRvblxuJGJ0bi1hZGR0b2NhcnQtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1ob3Zlci1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1ob3Zlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1pY29uczogKFxuICBzaW1wbGU6ICRmYS12YXItc2hvcHBpbmctYmFza2V0LFxuICBncm91cGVkOiAkZmEtdmFyLWV5ZSxcbiAgdmFyaWFibGU6ICRmYS12YXItY29ncyxcbiAgYm9va2luZzogJGZhLXZhci1jYWxlbmRhci1kYXlzLFxuKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb29raW5nXG4kd2MtYm9va2luZy1kYXRlcGlja2VyLXVpLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtaG92ZXItYmc6IHNoYWRlLWNvbG9yKCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnLCAyMCUpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZzogJGdyYXktMjAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWhvdmVyLWJnOiBzaGFkZS1jb2xvcigkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmcsIDIwJSkgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1jb3N0LWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1jb3N0LWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1jb3N0LWJnKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBQcmljZSBDb2xvclxuJHdjLXByaWNlLWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLWRlbC1wcmljZS1jb2xvcjogcmdiYSgkZ3JheS01MDAsIC42KSAhZGVmYXVsdDtcblxuLy8tLS0tLSBEaXNjb3VudCBiYWRnZVxuJGJhZGdlLW9uc2FsZS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRiYWRnZS1vbnNhbGUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNaW5pIENhcnRcbiRtaW5pY2FydC1jb3VudGVyLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG1pbmljYXJ0LWNvdW50ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC10b3RhbC1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC10b3RhbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG1pbmljYXJ0LWl0ZW0tY29sb3I6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJG1pbmljYXJ0LXF0eS1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQ2FydFxuJGNhcnQtYnRuLWFjdGlvbnMtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGNhcnQtYnRuLWNoZWNrb3V0LWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1lc3NhZ2VcbiR3Yy1tZXNzYWdlLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtbWVzc2FnZS1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kd2MtbWVzc2FnZS1pY29uLWNvbG9yOiAkZ3JlZW4gIWRlZmF1bHQ7XG5cbiR3Yy1pbmZvLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtaW5mby1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kd2MtaW5mby1pY29uLWNvbG9yOiAkYmx1ZSAhZGVmYXVsdDtcblxuJHdjLWVycm9yLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtZXJyb3ItY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpICFkZWZhdWx0O1xuJHdjLWVycm9yLWljb24tY29sb3I6IHJlZCAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaWRlYmFyXG4kd2Mtc2lkZWJhci1tb2JpbGUtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHdjLXNpZGViYXItbW9iaWxlLWJhY2stdG9wLW9mZnNldC15OiAzcmVtICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY29sb3I6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1maWx0ZXItdG9nZ2xlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLWZpbHRlci10b2dnbGVyLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWNhdC1saW5rLWhvdmVyLWJnOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1ob3Zlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLWxpbmstY29sb3I6ICRuYXYtY29sb3ItY3VycmVudCAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWhvdmVyLWNvbG9yOiB0aW50LWNvbG9yKCR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWNvbG9yOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWhvdmVyLWNvbG9yOiB0aW50LWNvbG9yKCR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBUb3AgYmFyIGljb25zXG4vLy0tLS0tIFRvcCBiYXIgaWNvbnNcbiR0b3AtYmFyLWljb25zOiAoY29udGFjdDogJGZhLXZhci1lbnZlbG9wZSwgcGhvbmU6ICRmYS12YXItcGhvbmUtYWx0KSAhZGVmYXVsdDtcbiR0b3AtYmFyLWljb25zLW1hcmdpbjogLjI1cmVtICFkZWZhdWx0O1xuJHRvcC1iYXItaWNvbnMtZmEtdmFyaWFudDogXCJzb2xpZFwiICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnM6ICR0b3AtYmFyLWljb25zICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnMtbWFyZ2luOiAkdG9wLWJhci1pY29ucy1tYXJnaW4gIWRlZmF1bHQ7XG4kd2MtdG9wLWJhci1pY29ucy1mYS12YXJpYW50OiAkdG9wLWJhci1pY29ucy1mYS12YXJpYW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRlYXNlXG4kd2MtdGVhc2UtcHJvZHVjdC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtYm9yZGVyLXJhZGl1czogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1saW5rLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtbGluay1pbWFnZS1wYWRkaW5nOiAkd2MtdGVhc2UtcHJvZHVjdC1saW5rLXBhZGRpbmcgKiAtMSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWhvdmVyLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU29jaWFsIHNoYXJlIGljb25zXG4kc29jaWFsLXNoYXJlLWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjUpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBXUE1MXG4kd3BtbC1kZXY6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbHBoYSBibG9ja3Ncbi8vLS0tLS0gRmFjZWJvb2sgdmlkZW9cbiRhbHBoYS1mYi12aWRlby1sb2FkZXItYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGFscGhhLWZiLXZpZGVvLWxvYWRlci1jb2xvcjogY29sb3ItY29udHJhc3QoJGFscGhhLWZiLXZpZGVvLWxvYWRlci1iZy1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gR29vZ2xlIFJldmlld3NcbiRnb29nbGUtcmV2aWV3cy1ib3JkZXItdG9wOiA2cHggc29saWQgIzRmY2U2YSAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1ib3JkZXItcmFkaXVzOiAuMTVyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtbG9nby13aWR0aDogNTBweCAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1zY29yZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtcmF0aW5nLXN0YXItY29sb3I6ICNlNzcxMWIgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtcmF0aW5nLWNvdW50LWNvbG9yOiAjN2E3YTdhICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLXotaW5kZXg6IDIwMDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0OiAycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLW9mZnNldC1ib3R0b206ICRnb29nbGUtcmV2aWV3cy1vZmZzZXQgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0LWxlZnQ6ICRnb29nbGUtcmV2aWV3cy1vZmZzZXQgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0LXJpZ2h0OiAkZ29vZ2xlLXJldmlld3Mtb2Zmc2V0ICFkZWZhdWx0O1xuJGdvb2dsZS1iYWRnZS1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1iYWRnZS1oaWRlLW9uLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBIZXJvIGJhbm5lclxuJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC15OiAzLjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtaGVyby1iYW5uZXItb2Zmc2V0LXRvcDogJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC15ICFkZWZhdWx0O1xuJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC1ib3R0b206ICRhbHBoYS1oZXJvLWJhbm5lci1vZmZzZXQteSAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29uXG4kaWNvbi1ibG9jay1pY29uLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNYXBcbiRhbHBoYS1tYXAtZGVmYXVsdC1oZWlnaHQ6IDI1MHB4ICFkZWZhdWx0O1xuJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodC1sZzogJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodCAqIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUmF0aW5nXG4kYWxwaGEtcmF0aW5nLXN0YXItb24tY29sb3I6ICR5ZWxsb3cgIWRlZmF1bHQ7XG4kYWxwaGEtcmF0aW5nLXN0YXItb2ZmLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUmVpbnN1cmFuY2Vcbi8vLS0tLSBTb3ViYSBNYWdhc3NhIHN0eWxlc1xuJHNvdWJhLXJlaW5zdXJhbmNlLWNvbG9yczogKHByaW1hcnksIHNlY29uZGFyeSkgIWRlZmF1bHQ7XG4kc291YmEtcmVpbnN1cmFuY2UtdG9wLW9mZnNldDogMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTZXJ2aWNlc1xuJHNlcnZpY2VzLWJnLWhvdmVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc2VydmljZXMtYmctaG92ZXItY29sb3ItbGlnaHQ6ICRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvci1kYXJrOiAkc2VydmljZXMtYmctaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kc2VydmljZXMtYmctaG92ZXItb3BhY2l0eTogMSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5LWxpZ2h0OiAkc2VydmljZXMtYmctaG92ZXItb3BhY2l0eSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5LWRhcms6IC4yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbHBoYSBtb2R1bGVzXG4vLy0tLS0tIENvbW1vblxuJGxvYWRpbmctbW9kdWxlcy1iZy1jb2xvcjogcmdiYSgkd2hpdGUsIC43NSkgIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLWxvYWRlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLWxvYWRlci1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLXotaW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy0tLS0tIERlZmF1bHRcbi8vLS0tLSBQYWdlIHNjcm9sbFxuJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0OiAxNXZoICFkZWZhdWx0O1xuJHBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0IC8gMiAhZGVmYXVsdDtcbiRwYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQtZGVza3RvcDogJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0IC8gMyAhZGVmYXVsdDtcblxuLy8tLS0tLSBPcHRpb25hbFxuLy8tLS0tIEJhY2sgdG8gdG9wXG4kYmFjay10by10b3Atb2Zmc2V0LXg6IDFyZW0gIWRlZmF1bHQ7XG4kYmFjay10by10b3Atb2Zmc2V0LXk6IDFyZW0gIWRlZmF1bHQ7XG4kYmFjay10by10b3Atd2hhdHNhcHAtYnV0dG9uLW9mZnNldC15OiA0cmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLWRlZmF1bHQtYnV0dG9uLXRyYW5zbGF0ZS15OiAkYmFjay10by10b3Atb2Zmc2V0LXkgKiAtMiAhZGVmYXVsdDtcblxuLy8tLS0tIEhlYWRlciBzdGF0ZXNcbi8vLS0tIFNocnVuayBsb2dvXG4kc2hydW5rLWxvZ28taGVpZ2h0LXJhdGlvOiAuOCAhZGVmYXVsdDtcblxuLy8tLS0tIFJhbmdlIHNsaWRlclxuJHJhbmdlLXNsaWRlci13cmFwcGVyLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFJvdXNxdWlsbGVcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbjogMCBhdXRvICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLXRhYmxldDogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDgpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLW1vYmlsZTogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28taGVpZ2h0OiAkbG9nby1oZWlnaHQgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXgtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gU2VydmljZXMgQnV0dG9uXG4kc2VydmljZXMtYnV0dG9uLW1vYmlsZS1vZmZzZXQ6IC41cmVtICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJ1dHRvbi1kZXNrdG9wLW9mZnNldC1lbmQ6IDIuNXJlbSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1idXR0b24tZm9vdGVyLXBhZGRpbmctYm90dG9tOiA0LjVyZW0gIWRlZmF1bHQ7XG4kc2VydmljZXMtYnV0dG9uLWJhY2stdG8tdG9wLW9mZnNldC1ib3R0b206ICRzZXJ2aWNlcy1idXR0b24tZm9vdGVyLXBhZGRpbmctYm90dG9tICsgMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFN3aXBlclxuJHN3aXBlci10aGVtZS1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kc3dpcGVyLW5hdmlnYXRpb24tc2l6ZTogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8tLS0gVHJhbnNwYXJlbnQgSGVhZGVyXG4kdHJhbnNwYXJlbnQtaGVhZGVyLWJnLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAkZ3JheS03MDAsIHRyYW5zcGFyZW50KSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctcmFkaXVzOiAuMTI1cmVtICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLWNvbG9yOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tc2hhZG93LWNvbG9yOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1jb2xvciAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctcmFkaXVzOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLS0tLSBXaGF0c2FwcCBCdXR0b25cbiR3aGF0c2FwcC1idXR0b24tYmc6ICMyNWQzNjYgIWRlZmF1bHQ7XG4kd2hhdHNhcHAtYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2hhdHNhcHAtYnV0dG9uLW9mZnNldC14OiAxcmVtICFkZWZhdWx0O1xuJHdoYXRzYXBwLWJ1dHRvbi1vZmZzZXQteTogMXJlbSAhZGVmYXVsdDtcbiR3aGF0c2FwcC1idXR0b24tei1pbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLS0tLSBJbWFnZSBHYWxsZXJ5XG4vLyBcIm92ZXJsYXlcIiwgXCJkZWZhdWx0LW9wYWNpdHlcIiwgXCJob3Zlci1vcGFjaXR5XCIsIFwiY3VzdG9tXCJcbiRpbWFnZS1nYWxsZXJ5LWFuaW1hdGlvbi10eXBlOiBcIm92ZXJsYXlcIiAhZGVmYXVsdDtcblxuLy8tLS0gT3BhY2l0eVxuJGltYWdlLWdhbGxlcnktaW1hZ2Utb3BhY2l0eTogLjcgIWRlZmF1bHQ7XG5cbi8vLS0tIE92ZXJsYXlcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LW9wYWNpdHk6IC4xNSAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktYmFja2Ryb3AtZmlsdGVyOiBzYXR1cmF0ZSgxMjUlKSBjb250cmFzdCgxMjUlKSAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKC41KSAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbjogJGZhLXZhci1zZWFyY2gtcGx1cyAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1zdHlsZTogXCJyZWd1bGFyXCIgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tb3BhY2l0eTogLjg1ICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXRleHQtc2hhZG93OiAwIDAgLjEyNXJlbSByZ2JhKGJsYWNrLCAuNzUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMS41cmVtKSAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utb2Zmc2V0OiAuMSAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utc2NhbGU6IDEgKyAkaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWltYWdlLW9mZnNldCAhZGVmYXVsdDtcblxuLy8tLS0tIExlYWZsZXQgTWFwXG4kbWFwLW1hcmtlci1jb2xvci1kZWZhdWx0OiB2YXIoLS1icy1zZWNvbmRhcnkpICFkZWZhdWx0O1xuJG1hcC1tYXJrZXItY29sb3ItbG9hZGluZzogZ3JheSAhZGVmYXVsdDtcbiRtYXAtbWFya2VyLWNvbG9yLWFjdGl2ZTogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLS0tLSBNYXNvbnJ5XG4kbWFzb25yeS1nYWxsZXJ5LWdhcDogLjc1cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gV29vQ29tbWVyY2UgU2VhcmNoIE92ZXJsYXlcbiRzZWFyY2gtb3ZlcmxheS1iZy1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktYmctb3BhY2l0eTogLjI1ICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcjogYmx1ciguMTI1cmVtKSAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1mb3JtLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktZm9ybS1ib3JkZXItcmFkaXVzOiAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLSBXb29Db21tZXJjZSBSZXZpZXcgZm9ybVxuJHdvb2NvbW1lcmNlLXJldmlldy1mb3JtLXN0YXJzLWZvbnRzaXplOiAycmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBHdXRlbmJlcmcgYmxvY2tzXG4vLy0tLS0tIFJhbmsgTWF0aFxuLy8tLS0tIEZBUVxuJHJhbmstbWF0aC1mYXEtdXNlLWxlZ2FjeS1zdHlsZXM6IHRydWUgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm94LXNoYWRvdzogMCAuNXJlbSAuNXJlbSAtLjI1cmVtIHJnYmEoJGJsYWNrLCAuMSkgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCRzcGFjZXJzLCAxKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1jb2xvcjogJGdyYXktMjAwICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm9yZGVyOiAxcHggc29saWQgJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtaXRlbS1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAzKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWZvbnQtc2l6ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWdhcDogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1wYWRkaW5nLWJvdHRvbTogJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZ2FwICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tYm9yZGVyLWNvbG9yOiAkcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItYm90dG9tOiAkcmFuay1tYXRoLWZhcS1ib3JkZXIgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1pY29uOiAkZmEtdmFyLXF1ZXN0aW9uLWNpcmNsZSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1pY29uLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tb2Zmc2V0LXRvcDogLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLSBJbWFnZVxuJGd1dGVuYmVyZy1pbWFnZS1yYXRpb3M6IChcIjFcIiwgXCI0LzNcIiwgXCIzLzRcIiwgXCIzLzJcIiwgXCIyLzNcIiwgXCIxNi85XCIsIFwiOS8xNlwiKSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRm9udHMgb3B0aW1pemF0aW9uXG4vLy0tLS0tIEZvbnRBd2Vzb21lIGljb25zXG4kZm9udC1mYS1wcm86IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4kZm9udC1mYS1icmFuZHM6IFwiRm9udCBBd2Vzb21lIDYgQnJhbmRzXCI7XG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUuc2NzcyBmb3IgaWNvbnMgcHJvY2Vzc2luZ1xuLy8gc2VlIC4uL3ZlbmRvcnMvX2ZvbnRhd2Vzb21lLWljb25zLnNjc3MgZm9yIGF2YWlsYWJsZSBpY29ucyAmIGljb25zIGdyb3Vwc1xuLy8gJGN1c3RvbS11c2VkLWZhLWljb25zOiAoZm9udC1hd2Vzb21lLWZsYWc6ICRmYS12YXItZm9udC1hd2Vzb21lLWZsYWcsIHBsdXM6ICRmYS12YXItcGx1cyk7XG4kY3VzdG9tLXVzZWQtZmEtaWNvbnM6ICgpICFkZWZhdWx0O1xuLy8gJHVzZWQtZmEtaWNvbnMtZ3JvdXBzOiAoYWNjb21tb2RhdGlvbnMsIHdvb2NvbW1lcmNlKTtcbiR1c2VkLWZhLWljb25zLWdyb3VwczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gSWNvbnMgbGlzdFxuJGFscGhhLWZhLWljb25zLWxpc3Q6ICgpICFkZWZhdWx0O1xuJGFscGhhLWZhLWljb25zLWxpc3QtY29sb3I6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJGFscGhhLWZhLWljb25zLWxpc3Qtc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGFscGhhLWZhLWljb25zLWxpc3QtY29sb3JzOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU2xpY2tcbiRzbGljay1mb250LXBhdGg6IFwifnNsaWNrLWNhcm91c2VsL3NsaWNrL2ZvbnRzL1wiO1xuJHNsaWNrLWZvbnQtZmFtaWx5OiAkZm9udC1mYS1wcm87XG5cbi8vLS0tLS0tIENGNyBFZmZlY3RcbiRjb2xvci1mb3JtLXRleHQ6IHZhcigtLWJzLWJvZHktY29sb3IpICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmlsbGVkOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yKSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLWJvdHRvbTogMnJlbSAhZGVmYXVsdDtcbiRmb3JtLWd1dHRlcjogLjc1cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ6IC43cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW5vLWFuaW0tbWFyZ2luLXRvcDogLjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZTogLS4yNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWVycm9yLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEJvb3RzdHJhcCBSZXNwb25zaXZlIEltYWdlIFJhdGlvXG4vLyBtdXN0IGJlIGEgbGlzdCBvZiByYXRpb3MgZm9ybWF0dGVkIGxpa2UgdGhpczogKDEgMSksICg0IDMpLCAoMyAyKSwgKDE2IDkpLCAoMjEgOSlcbiRtZWRpYS1yYXRpb3M6ICgpICFkZWZhdWx0O1xuIiwiLy8gZnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBmYS1jb250ZW50OiBjb252ZW5pZW5jZSBmdW5jdGlvbiB1c2VkIHRvIHNldCBjb250ZW50IHByb3BlcnR5XG5AZnVuY3Rpb24gZmEtY29udGVudCgkZmEtdmFyKSB7XG4gIEByZXR1cm4gdW5xdW90ZShcIlxcXCIjeyAkZmEtdmFyIH1cXFwiXCIpO1xufVxuXG4vLyBmYS1kaXZpZGU6IE9yaWdpbmFsbHkgb2J0YWluZWQgZnJvbSB0aGUgQm9vdHN0cmFwIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcFxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyOiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbi8vXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAyMSBUd2l0dGVyLCBJbmMuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAyMSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AZnVuY3Rpb24gZmEtZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gICRxdW90aWVudDogMDtcbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDEge1xuICAgIEByZXR1cm4gJGRpdmlkZW5kO1xuICB9XG4gIEB3aGlsZSAkcmVtYWluZGVyID49ICRkaXZpc29yIHtcbiAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICB9XG4gIEBpZiAkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+IDAge1xuICAgICRyZW1haW5kZXI6IGZhLWRpdmlkZSgkcmVtYWluZGVyICogMTAsICRkaXZpc29yLCAkcHJlY2lzaW9uIC0gMSkgKiAuMTtcbiAgfVxuICBAcmV0dXJuICgkcXVvdGllbnQgKyAkcmVtYWluZGVyKSAqICRzaWduO1xufVxuIiwiQGtleWZyYW1lcyBmb3JtLWxhYmVsLWZpbGxlZCB7XG4gIDAlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgMjUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmb3JtLWxhYmVsIHtcbiAgMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMCkgdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC10cmFuc2xhdGUpO1xuICB9XG4gIDI1JSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC10cmFuc2xhdGUpO1xuICB9XG4gIDc1JSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLy8tLS0tLS0tLS0tLS0gQm9vdHN0cmFwXG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuXG4vLy8gUmVtb3ZlIHRoZSB1bml0IG9mIGEgbGVuZ3RoXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1iZXIgLSBOdW1iZXIgdG8gcmVtb3ZlIHVuaXQgZnJvbVxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgPT0gXCJudW1iZXJcIiBhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlcjtcbn1cblxuQGZ1bmN0aW9uIHB4MnJlbSgkcHgsICRmb250LWJhc2UtcmVtOiAkZm9udC1zaXplLWJhc2UsICRmb250LWJhc2UtcHg6IDE2KSB7XG4gICRmb250LWJhc2Utc2l6ZTogc3RyaXAtdW5pdCgkZm9udC1iYXNlLXB4KSAqIHN0cmlwLXVuaXQoJGZvbnQtYmFzZS1yZW0pO1xuXG4gIEByZXR1cm4gKHN0cmlwLXVuaXQoJHB4KSAvICRmb250LWJhc2Utc2l6ZSkgKiAxcmVtO1xufVxuXG4vLyBBZGQgYSBuZXcgdXRpbGl0eSB0byBCb290c3RyYXAgdXRpbGl0aWVzXG5AZnVuY3Rpb24gYm9vdHN0cmFwLWFkZC11dGlsaXR5KCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSwgJHByb3BlcnRpZXMpIHtcbiAgJGJzLXV0aWxpdGllczogbWFwLW1lcmdlKFxuICAgICRicy11dGlsaXRpZXMsXG4gICAgKFxuICAgICAgJHV0aWxpdHkta2V5OiAkcHJvcGVydGllc1xuICAgIClcbiAgKTtcblxuICBAcmV0dXJuICRicy11dGlsaXRpZXM7XG59XG5cbi8vIFJlbW92ZSBhbiB1dGlsaXR5IGZyb20gQm9vdHN0cmFwIHV0aWxpdGllc1xuQGZ1bmN0aW9uIGJvb3RzdHJhcC1yZW1vdmUtdXRpbGl0eSgkYnMtdXRpbGl0aWVzLCAkdXRpbGl0eS1rZXkpIHtcbiAgJGJzLXV0aWxpdGllczogbWFwLXJlbW92ZSgkYnMtdXRpbGl0aWVzLCAkdXRpbGl0eS1rZXkpO1xuXG4gIEByZXR1cm4gJGJzLXV0aWxpdGllcztcbn1cblxuLy8gTWVyZ2UgdXRpbGl0eSBwcm9wZXJ0aWVzIHdpdGggYW4gZXhpc3Rpbmcgb25lXG5AZnVuY3Rpb24gYm9vdHN0cmFwLW1lcmdlLXV0aWxpdGllcygkYnMtdXRpbGl0aWVzLCAkdXRpbGl0eS1rZXksICRwcm9wZXJ0aWVzKSB7XG4gICRicy11dGlsaXRpZXM6IG1hcC1tZXJnZShcbiAgICAkYnMtdXRpbGl0aWVzLFxuICAgIChcbiAgICAgICR1dGlsaXR5LWtleTogbWFwLW1lcmdlKFxuICAgICAgICBtYXAtZ2V0KCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSksXG4gICAgICAgICRwcm9wZXJ0aWVzXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIEByZXR1cm4gJGJzLXV0aWxpdGllcztcbn1cblxuLy8tLS0tLS0tLS0tLS0gQWxwaGFcbkBmdW5jdGlvbiBoZXgtdG8tcmdiKCRjb2xvcikge1xuICBAcmV0dXJuICN7cmVkKCRjb2xvcil9LCAje2dyZWVuKCRjb2xvcil9LCAje2JsdWUoJGNvbG9yKX07XG59XG5cbkBmdW5jdGlvbiBlbmNvZGVjb2xvcigkc3RyaW5nKSB7XG4gIEBpZiB0eXBlLW9mKCRzdHJpbmcpID09IFwiY29sb3JcIiBhbmQgc3RyLWluZGV4KCN7JHN0cmluZ30sIFwiI1wiKSA9PSAxIHtcbiAgICAkaGV4OiBzdHItc2xpY2UoaWUtaGV4LXN0cigkc3RyaW5nKSwgNCk7XG4gICAgJHN0cmluZzogdW5xdW90ZShcIiN7JGhleH1cIik7XG5cbiAgICBAcmV0dXJuIFwiJTIzXCIgKyAkc3RyaW5nO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5AZnVuY3Rpb24gc3RyLXNwbGl0KCRzdHJpbmcsICRzZXBhcmF0b3IpIHtcbiAgLy8gZW1wdHkgYXJyYXkvbGlzdFxuICAkc3BsaXQtYXJyOiAoKTtcbiAgLy8gZmlyc3QgaW5kZXggb2Ygc2VwYXJhdG9yIGluIHN0cmluZ1xuICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VwYXJhdG9yKTtcbiAgLy8gbG9vcCB0aHJvdWdoIHN0cmluZ1xuICBAd2hpbGUgJGluZGV4ICE9IG51bGwge1xuICAgIC8vIGdldCB0aGUgc3Vic3RyaW5nIGZyb20gdGhlIGZpcnN0IGNoYXJhY3RlciB0byB0aGUgc2VwYXJhdG9yXG4gICAgJGl0ZW06IHN0ci1zbGljZSgkc3RyaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAvLyBwdXNoIGl0ZW0gdG8gYXJyYXlcbiAgICAkc3BsaXQtYXJyOiBhcHBlbmQoJHNwbGl0LWFyciwgJGl0ZW0pO1xuICAgIC8vIHJlbW92ZSBpdGVtIGFuZCBzZXBhcmF0b3IgZnJvbSBzdHJpbmdcbiAgICAkc3RyaW5nOiBzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgMSk7XG4gICAgLy8gZmluZCBuZXcgaW5kZXggb2Ygc2VwYXJhdG9yXG4gICAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlcGFyYXRvcik7XG4gIH1cbiAgLy8gYWRkIHRoZSByZW1haW5pbmcgc3RyaW5nIHRvIGxpc3QgKHRoZSBsYXN0IGl0ZW0pXG4gICRzcGxpdC1hcnI6IGFwcGVuZCgkc3BsaXQtYXJyLCAkc3RyaW5nKTtcblxuICBAcmV0dXJuICRzcGxpdC1hcnI7XG59XG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9IFwic3RyaW5nXCIge1xuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuXCI7XG4gIH1cblxuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpID09IFwiLVwiO1xuICAkbnVtYmVyczogKFwiMFwiOiAwLCBcIjFcIjogMSwgXCIyXCI6IDIsIFwiM1wiOiAzLCBcIjRcIjogNCwgXCI1XCI6IDUsIFwiNlwiOiA2LCBcIjdcIjogNywgXCI4XCI6IDgsIFwiOVwiOiA5KTtcblxuICBAZm9yICRpIGZyb20gaWYoJG1pbnVzLCAyLCAxKSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09IFwiLlwiKSB7XG4gICAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAgICRkaWdpdHM6IDE7XG4gICAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5AZnVuY3Rpb24gdG8tdW5pdCgkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSBcInN0cmluZ1wiIHtcbiAgICBAZXJyb3IgXCJWYWx1ZSBmb3IgYHRvLXVuaXRgIHNob3VsZCBiZSBhIHN0cmluZy5cIjtcbiAgfVxuXG4gICR1bml0czogKFwicHhcIjogMXB4LCBcImNtXCI6IDFjbSwgXCJtbVwiOiAxbW0sIFwiJVwiOiAxJSwgXCJjaFwiOiAxY2gsIFwicGNcIjogMXBjLCBcImluXCI6IDFpbiwgXCJlbVwiOiAxZW0sIFwicmVtXCI6IDFyZW0sIFwicHRcIjogMXB0LCBcImV4XCI6IDFleCwgXCJ2d1wiOiAxdncsIFwidmhcIjogMXZoLCBcInZtaW5cIjogMXZtaW4sIFwidm1heFwiOiAxdm1heCk7XG4gICRwYXJzZWQtdW5pdDogZmFsc2U7XG5cbiAgQGVhY2ggJHVuaXQgaW4gJHVuaXRzIHtcbiAgICAvLyBzdHItaW5kZXggLSBmaW5kIHN1YnN0cmluZyBpbiBhIHN0cmluZ1xuICAgIC8vICdweCcgaW4gJzEwcHgnIGZvciBleGFtcGxlXG5cbiAgICAvLyAkdW5pdCBpcyBhIHBhaXIgb2YgWydweCc6IDFweF0gKGl0ZW0gaW4gJHVuaXRzKVxuICAgIC8vIG50aChbJ3B4JzogMXB4XSwgMSkgcmV0dXJucyAncHgnXG4gICAgLy8gbnRoKFsncHgnOiAxcHhdLCAyKSByZXR1cm5zIDFweFxuXG4gICAgQGlmIChzdHItaW5kZXgoJHZhbHVlLCBudGgoJHVuaXQsIDEpKSkge1xuICAgICAgJHBhcnNlZC11bml0OiBudGgoJHVuaXQsIDIpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAobm90ICRwYXJzZWQtdW5pdCkge1xuICAgIEBlcnJvciBcIkludmFsaWQgdW5pdCBgI3skdmFsdWV9YC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcnNlZC11bml0O1xufVxuXG5AZnVuY3Rpb24gdmFsdWUtdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAkdHlwZS1vZjogdHlwZS1vZigkdmFsdWUpO1xuXG4gIEBpZiAkdHlwZS1vZiA9PSBcIm1hcFwiIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICBAZWFjaCAkbWFwLWtleSwgJG1hcC12YWx1ZSBpbiAkdmFsdWUge1xuICAgICAgJG51bWJlci12YWx1ZTogdmFsdWUtdG8tbnVtYmVyKCRtYXAtdmFsdWUpO1xuICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgkbWFwLWtleTogJG51bWJlci12YWx1ZSkpO1xuICAgIH1cblxuICAgICR2YWx1ZTogJHJlc3VsdDtcbiAgfSBAZWxzZSBpZiAkdHlwZS1vZiA9PSBcImxpc3RcIiB7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgQGVhY2ggJGxpc3QtdmFsdWUgaW4gJHZhbHVlIHtcbiAgICAgICRudW1iZXItdmFsdWU6IHZhbHVlLXRvLW51bWJlcigkbGlzdC12YWx1ZSk7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJG51bWJlci12YWx1ZSk7XG4gICAgfVxuXG4gICAgJHZhbHVlOiAkcmVzdWx0O1xuICB9IEBlbHNlIGlmICR0eXBlLW9mID09IFwic3RyaW5nXCIge1xuICAgICRudW1iZXI6IHRvLW51bWJlcigkdmFsdWUpO1xuICAgICR1bml0OiB0by11bml0KCR2YWx1ZSk7XG4gICAgJHZhbHVlOiAkbnVtYmVyICogJHVuaXQ7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG1hcC1nZXQtZGVlcCgkY29uZmlnLCAkcGF0aCwgJHRvLW51bWJlcjogZmFsc2UsICRkZWZhdWx0LXZhbHVlOiBudWxsKSB7XG4gICRzcGxpdDogc3RyLXNwbGl0KCRwYXRoLCBcIi5cIik7XG5cbiAgQGlmIHR5cGUtb2YoJGNvbmZpZykgPT0gXCJtYXBcIiBhbmQgbGVuZ3RoKCRwYXRoKSA+IDAge1xuICAgICRsYXN0LWtleTogbGVuZ3RoKCRzcGxpdCk7XG4gICAgJGN1cnJlbnQtY29uZmlnOiAkY29uZmlnO1xuXG4gICAgQGVhY2ggJGNvbmZpZy1rZXkgaW4gJHNwbGl0IHtcbiAgICAgIEBpZiAodHlwZS1vZigkY3VycmVudC1jb25maWcpID09IFwibWFwXCIgYW5kIG1hcC1oYXMta2V5KCRjdXJyZW50LWNvbmZpZywgJGNvbmZpZy1rZXkpKSB7XG4gICAgICAgICRpOiBpbmRleCgkc3BsaXQsICRjb25maWcta2V5KTtcbiAgICAgICAgJGN1cnJlbnQtY29uZmlnOiBtYXAtZ2V0KCRjdXJyZW50LWNvbmZpZywgJGNvbmZpZy1rZXkpO1xuXG4gICAgICAgIEBpZiAkaSA9PSAkbGFzdC1rZXkge1xuICAgICAgICAgICRyZXR1cm4tdmFsdWU6ICRjdXJyZW50LWNvbmZpZztcblxuICAgICAgICAgIEBpZiAkdG8tbnVtYmVyIHtcbiAgICAgICAgICAgICRyZXR1cm4tdmFsdWU6IHZhbHVlLXRvLW51bWJlcigkcmV0dXJuLXZhbHVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAcmV0dXJuICRyZXR1cm4tdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICRkZWZhdWx0LXZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGRlZmF1bHQtdmFsdWU7XG59XG5cbi8vIEBzZWUgaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvNzUyNWYwNTQ2NDc5YWNkMWQ2ZTFcbkBmdW5jdGlvbiBtYXAtZXh0ZW5kKCRvYmplY3QsICRvYmplY3RzLi4uLyosICRkZWVwICovKSB7XG4gICRsYXN0OiBudGgoJG9iamVjdHMsIC0xKTtcbiAgJGRlZXA6ICRsYXN0ID09IHRydWU7XG4gICRtYXg6IGlmKCRkZWVwLCBsZW5ndGgoJG9iamVjdHMpIC0gMSwgbGVuZ3RoKCRvYmplY3RzKSk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGFsbCBtYXBzIGluICRvYmplY3RzLi4uXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgLy8gU3RvcmUgY3VycmVudCBtYXBcbiAgICAkY3VycmVudDogbnRoKCRvYmplY3RzLCAkaSk7XG5cbiAgICAvLyBJZiBub3QgaW4gZGVlcCBtb2RlLCBzaW1wbHkgbWVyZ2UgY3VycmVudCBtYXAgd2l0aCBvYmplY3RcbiAgICBAaWYgbm90ICRkZWVwIHtcbiAgICAgICRvYmplY3Q6IG1hcC1tZXJnZSgkb2JqZWN0LCAkY3VycmVudCk7XG4gICAgfVxuXG4gICAgLy8gSWYgaW4gZGVlcCBtb2RlXG4gICAgQGVsc2Uge1xuICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0dXBsZXMgaW4gY3VycmVudCBtYXBcbiAgICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkY3VycmVudCB7XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGEgbmVzdGVkIG1hcCBhbmQgc2FtZSBrZXkgZnJvbSBvYmplY3QgaXMgYSBuZXN0ZWQgbWFwIGFzIHdlbGxcbiAgICAgICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm1hcFwiIGFuZCB0eXBlLW9mKG1hcC1nZXQoJG9iamVjdCwgJGtleSkpID09IFwibWFwXCIge1xuICAgICAgICAgIC8vIFJlY3Vyc2l2ZSBleHRlbmRcbiAgICAgICAgICAkdmFsdWU6IG1hcC1leHRlbmQobWFwLWdldCgkb2JqZWN0LCAka2V5KSwgJHZhbHVlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBNZXJnZSBjdXJyZW50IHR1cGxlIHdpdGggb2JqZWN0XG4gICAgICAgICRvYmplY3Q6IG1hcC1tZXJnZSgkb2JqZWN0LCAoJGtleTogJHZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkb2JqZWN0O1xufVxuXG5AZnVuY3Rpb24gaGFzLW1lbnUtdHlwZSgkbWVudXMtbGlzdCwgJG1lbnUpIHtcbiAgQHJldHVybiBpbmRleCgkbWVudXMtbGlzdCwgJG1lbnUpICE9IG51bGw7XG59XG5cbkBmdW5jdGlvbiBoYXMtb2ZmY2FudmFzKCRtZW51cy1saXN0KSB7XG4gIEByZXR1cm4gaGFzLW1lbnUtdHlwZSgkbWVudXMtbGlzdCwgXCJvZmZjYW52YXNcIikgb3IgaGFzLW1lbnUtdHlwZSgkbWVudXMtbGlzdCwgXCJvZmZjYW52YXMtc2ltcGxlXCIpO1xufVxuXG5AZnVuY3Rpb24gbGlzdC11bmlxdWUoJGxpc3QpIHtcbiAgJHJlc3VsdDogKCk7XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgaW5kZXgoJHJlc3VsdCwgJGl0ZW0pIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuIiwiJGZvcm0tZGVmYXVsdC1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kZm9ybS1ndXR0ZXI6IC41cmVtICFkZWZhdWx0O1xuJGZvcm0taW5wdXQtdGV4dC1oZWlnaHQ6IDIuNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxcmVtO1xuJGZvcm0tbGFiZWwtZ3V0dGVyLXRvcDogY2FsYygoI3skZm9ybS1pbnB1dC10ZXh0LWhlaWdodH0gLSAjeyRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0fSkgLyAyKSAgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDogJGZvcm0tZ3V0dGVyICogMiAgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0ICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtdHJhbnNsYXRlOiAtMS4ycmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS10cmFuc2xhdGU6ICRmb3JtLWxhYmVsLXRyYW5zbGF0ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW5vLWFuaW0tbWFyZ2luLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkOiAuN3JlbSAhZGVmYXVsdDtcbiRmb3JtLWVycm9yLWZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1czogLjI1cmVtICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLW1hcmdpbi10b3AtdGFibGV0OiAkZm9ybS1maWVsZC1tYXJnaW4tdG9wICogMiAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLW1hcmdpbi1ib3R0b206IDEuNXJlbSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLXRleHQ6ICM0YjUwNTUgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS10ZXh0LXN0eWxlLWRhcms6ICAjZmZmICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmlsbGVkOiAjYWExNjM2ICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tc3VibWl0OiAkY29sb3ItZm9ybS1maWxsZWQgIWRlZmF1bHQ7XG4kY29sb3ItY2hlY2tib3gtY2hlY2tlZDogJGNvbG9yLWZvcm0tZmlsbGVkICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tbWFpbC1zZW50OiAjODdkMzdjICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZXJyb3JzOiByZWQgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyOiAkY29sb3ItZm9ybS10ZXh0ICFkZWZhdWx0O1xuXG4kZmllbGQtZGVzYy1zaXplOiAuOHJlbSAhZGVmYXVsdDtcbiRmaWVsZC1kZXNjLWNvbG9yOiAjNjk2OTY5ICFkZWZhdWx0O1xuJGZpZWxkLWRlc2Mtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiIsImlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwMHB4ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQgaW5zZXQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgdmlzaWJpbGl0eTogY29sbGFwc2U7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAvLyBkaXNwbGF5IGZvcm0gcmVzcG9uc2Ugb3V0cHV0IGFib3ZlIHN1Ym1pdCBidXR0b24gJiBsZWdhbCBub3RpY2Ugb24gbW9iaWxlICYgdGFibGV0XG4gIC5mb3JtLWZpZWxkLXN1Ym1pdCB7XG4gICAgb3JkZXI6IDE7XG4gIH1cblxuICAuZm9ybS1sZWdhbC1ub3RpY2UsXG4gIC5mb3JtLWZpZWxkLXJncGQge1xuICAgIG9yZGVyOiAyO1xuICB9XG59XG5cbi53cGNmNyB7XG4gIGZvbnQtc2l6ZTogJGZvcm0tZGVmYXVsdC1mb250LXNpemU7XG5cbiAgLndwY2Y3LWZvcm0ge1xuICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3A7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZm9ybS1maWVsZC1tYXJnaW4tdG9wLXRhYmxldDtcbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1maWVsZC1tYXJnaW4tYm90dG9tO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuXG4gICAgICBwOm5vdChbY2xhc3NdKSB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgICY6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKTpub3QoW3R5cGU9XCJjaGVja2JveFwiXSkge1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZm9ybS1maWVsZC1ib3JkZXI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZSAuNHM7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICYud3BjZjctdGV4dCwgJi53cGNmNy1udW1iZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9ybS1pbnB1dC10ZXh0LWhlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYud3BjZjctbm90LXZhbGlkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICZbdHlwZT1cImRhdGVcIl0ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICY6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTAwJSAtIDIuNWVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGV4dGFyZWEge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZSAuNHM7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmb3JtLWZpZWxkLWlucHV0LWJhY2tncm91bmQ7XG4gICAgICAgIGhlaWdodDogaW5pdGlhbDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi53cGNmNy1ub3QtdmFsaWQge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZWxlY3Qud3BjZjctc2VsZWN0LFxuICAgICAgc2VsZWN0LndwY2Y3LWZvcm0tY29udHJvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJGZvcm0taW5wdXQtdGV4dC1oZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmb3JtLWZpZWxkLWlucHV0LWJhY2tncm91bmQ7XG5cbiAgICAgICAgJi53cGNmNy1ub3QtdmFsaWQge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogJGZvcm0tbGFiZWwtZ3V0dGVyLXRvcDtcbiAgICAgICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBmb250LXNpemUgZWFzZSAuNXMsIHRyYW5zZm9ybSBlYXNlLWluLW91dCAuNXMsIGJhY2tncm91bmQtY29sb3IgZWFzZSAuNXMsIHBhZGRpbmcgZWFzZSAuNXM7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgICYuc3R5bGUtZGFyayB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dC1zdHlsZS1kYXJrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZW1wdHkge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiAuNXMgZWFzZS1pbiAwcyAxIGZvcm0tbGFiZWw7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5maWxsZWQsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBwYWRkaW5nOiAwICRmb3JtLWd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZpbGxlZCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBhbmltYXRpb246IC41cyBlYXNlLWluIDBzIDEgZm9ybS1sYWJlbC1maWxsZWQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS1maWxsZWQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1maWxsZWQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm5vLWFuaW0sXG4gICAgICAmLmZvcm0tZmllbGQtbm9hbmltIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbi10b3A6ICRmb3JtLWxhYmVsLW5vLWFuaW0tbWFyZ2luLXRvcDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtbm8tYW5pbS10cmFuc2xhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1zZWxlY3Qge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1hY2NlcHRhbmNlIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1yZ3BkLFxuICAgICAgJi5mb3JtLWxlZ2FsLW5vdGljZSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgICAgICBmb250LXNpemU6IC43cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1kb3VibGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxleDogMjtcblxuICAgICAgICAgICAgaW5wdXQud3BjZjctdGV4dCB7XG4gICAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMCAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICAgICBpbnB1dC53cGNmNy10ZXh0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWNoZWNrYm94IHtcbiAgICAgICAgLndwY2Y3LWNoZWNrYm94IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtLjI1ZW07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0uMjVlbTtcblxuICAgICAgICAgIC53cGNmNy1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC4yNWVtO1xuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY2hlY2tib3gtaW5saW5lIHtcbiAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuMjVlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAud3BjZjctY2hlY2tib3gge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICAgIGZsZXg6IDAgMCAyMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWRhdGUge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgaGVpZ2h0OiAkZm9ybS1pbnB1dC10ZXh0LWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmlubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLndwY2Y3LXJhZGlvIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuMjVlbTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC53cGNmNy1jaGVja2JveCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLXN1Ym1pdCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgLmFqYXgtbG9hZGVyLCAud3BjZjctc3Bpbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogdW5zZXQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtcmVxdWlyZWQge1xuICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycztcbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC13cmFwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuXG4gICAgICAuZm9ybS1maWVsZC1kYXRlIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycyAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6ICRmb3JtLWVycm9yLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0ycmVtO1xuICAgICAgICBsZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtZGVzYyB7XG4gICAgICBmb250LXNpemU6ICRmaWVsZC1kZXNjLXNpemU7XG4gICAgICBmb250LXN0eWxlOiAkZmllbGQtZGVzYy1zdHlsZTtcbiAgICAgIGNvbG9yOiAkZmllbGQtZGVzYy1jb2xvcjtcbiAgICB9XG5cbiAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5zdWJtaXR0aW5nKSB7XG4gICAgICAuYWpheC1sb2FkZXIsIC53cGNmNy1zcGlubmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc2VudCB7XG4gICAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLW1haWwtc2VudCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaW52YWxpZCB7XG4gICAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycyAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZ3JpZFxuICAuZm9ybS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0kZm9ybS1ndXR0ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0kZm9ybS1ndXR0ZXI7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAmID4gLmZvcm0tY29sIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1yaWdodDogJGZvcm0tZ3V0dGVyICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wtNiB7XG4gICAgICBAZXh0ZW5kIC5mb3JtLWNvbDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wtNCB7XG4gICAgICBAZXh0ZW5kIC5mb3JtLWNvbDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIGZsZXg6IDAgMCAzMy4zMyU7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wtMyB7XG4gICAgICBAZXh0ZW5kIC5mb3JtLWNvbDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICAgIG1heC13aWR0aDogMjUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy9ncmlkLnlhbWxcIjtcclxuQGltcG9ydCBcImNvbmZpZy90ZW1wbGF0ZXMueWFtbFwiO1xyXG5AaW1wb3J0IFwiY29uZmlnL3RoZW1lLnlhbWxcIjtcclxuQGltcG9ydCBcImNvbmZpZy93b29jb21tZXJjZS55YW1sXCI7XHJcbkBpbXBvcnQgXCJ+QG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL3lhbWwtdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCJhc3NldHMvc2Fzcy9pbml0XCI7XG5AaW1wb3J0IFwiLi4vaW5pdFwiO1xuXG4vLyA9PT0gV1AgQUxQSEEgQVNTRVRTXG5AaW1wb3J0IFwifkBuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL3BhZ2VzL2NvbnRhY3RcIjtcblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KHhsKSB7XG4gIC5zaXRlLWZvb3RlciB7XG4gICAgLS1hbHBoYS1tYXAtZGVmYXVsdC1oZWlnaHQ6IDEwMHZoO1xuXG4gICAgLm1hcC1ibG9jay1pbm5lciB7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1hbHBoYS1tYXAtZGVmYXVsdC1oZWlnaHQpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/