/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./platform-resources/platform-resources-core-user/src/main/scss/components/accordion.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* boostrap */
/* custom */
/* stylelint-disable color-no-hex */
/* stylelint-enable color-no-hex */
/* stylelint-disable font-weight-notation */
/* stylelint-enable font-weight-notation */
/* TODO: BOX-2496 Synchronizacja z admin: cms-admin/src/main/ckeditor/contents.css */
@keyframes carousel-indicator-decorator {
  from {
    stroke-dashoffset: 75px; }
  to {
    stroke-dashoffset: 0; } }

.accordion {
  margin: 35px 0; }
  .layout_column .accordion:focus-visible {
    position: relative; }
    .layout_column .accordion:focus-visible .focus {
      top: -10px;
      right: -10px;
      bottom: -10px;
      left: -10px;
      position: absolute;
      border-radius: 10px;
      z-index: 1;
      outline: none !important;
      box-shadow: 0 0 0 2px var(--color-black) inset, 0 0 0 1px var(--color-black) !important;
      border-color: var(--color-black) !important; }
      @media (forced-colors: active) {
        .layout_column .accordion:focus-visible .focus {
          outline: none !important;
          box-shadow: 0 0 0 2px var(--color-yellow) inset, 0 0 0 1px var(--color-yellow) !important;
          border-color: var(--color-yellow) !important;
          forced-color-adjust: none; } }
    @media (forced-colors: active) {
      .layout_column .accordion:focus-visible * {
        forced-color-adjust: initial; } }
  .accordion__componentHeader {
    margin: 0 0 30px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    text-align: center; }
    @media (max-width: 768.98px) {
      .accordion__componentHeader {
        text-align: left;
        margin: 0 0 20px;
        position: relative; }
        .accordion__componentHeader:before {
          content: "";
          display: block;
          width: 60px;
          height: 5px;
          background: var(--color-brand-secondary);
          border-radius: 5px; } }
  .accordion__componentHeaderHeadline {
    font-size: 32px;
    line-height: 42px;
    font-weight: 400;
    color: var(--color-title-color); }
    @media (max-width: 768.98px) {
      .accordion__componentHeaderHeadline {
        font-size: 30px;
        line-height: 38px; } }
    @media print {
      .accordion__componentHeaderHeadline {
        color: var(--color-title-color); } }
  .accordion__componentHeaderTagline {
    font-size: 18px; }
    @media (max-width: 768.98px) {
      .accordion__componentHeaderTagline {
        font-size: 14px; } }
  .accordion__wrapper {
    list-style: none !important;
    padding: 0 !important;
    border-bottom: 1px solid var(--color-border-gray); }
    @media print {
      .accordion__wrapper {
        border-bottom: 1pt solid var(--color-border-gray); } }
  .accordion__item {
    box-shadow: 0 -1px var(--color-border-gray); }
    .accordion__item.state-expanded .accordion__itemHeader .icon:before {
      content: "";
      width: 14px;
      height: 14px;
      line-height: 14px;
      font-size: 14px;
      font-family: "e-point CMS :: icons";
      display: block;
      text-align: center;
      font-style: normal !important;
      font-weight: normal !important;
      transform: scaleY(-1); }
    @media print {
      .accordion__item {
        box-shadow: unset;
        border-top: 1pt solid var(--color-border-gray); } }
    @media print {
      .accordion__item.state-expanded {
        padding-bottom: 22.5pt; }
        .accordion__item.state-expanded .accordion__itemBody {
          max-height: unset !important; } }
  .accordion__itemHeader {
    margin: 0; }
  .accordion__itemHeaderButton {
    position: relative;
    padding: 30px 20px 30px 55px;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-brand-primary);
    cursor: pointer;
    border-radius: 6px;
    border: 0;
    background: none;
    display: block;
    width: 100%;
    text-align: left; }
    .accordion__itemHeaderButton .icon:before {
      content: "";
      width: 14px;
      height: 14px;
      line-height: 14px;
      font-size: 14px;
      font-family: "e-point CMS :: icons";
      display: block;
      text-align: center;
      font-style: normal !important;
      font-weight: normal !important;
      color: var(--color-brand-primary);
      top: 35px;
      left: 22px;
      position: absolute;
      transition: 0.4s ease transform; }
    @media (max-width: 768.98px) {
      .accordion__itemHeaderButton {
        padding: 20px 10px 20px 45px; }
        .accordion__itemHeaderButton .icon:before {
          content: "";
          width: 14px;
          height: 14px;
          line-height: 14px;
          font-size: 14px;
          font-family: "e-point CMS :: icons";
          display: block;
          text-align: center;
          font-style: normal !important;
          font-weight: normal !important;
          top: 26px;
          left: 16px; } }
    @media (forced-colors: active) {
      .accordion__itemHeaderButton {
        color: var(--color-white); } }
  .accordion__itemBody {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s; }
    .accordion__itemBody.state-forced {
      max-height: none; }
  .accordion__itemBodyData {
    padding: 0 20px 30px 55px; }
    @media (max-width: 768.98px) {
      .accordion__itemBodyData {
        padding: 0 20px 20px 45px; } }
    @media (max-width: 768.98px) {
      .accordion__itemBodyData {
        font-size: 16px;
        line-height: 24px; } }
    .accordion__itemBodyData:after {
      content: "";
      display: block;
      clear: both; }
    .accordion__itemBodyData ol {
      list-style: decimal;
      padding-left: 15px; }
      .accordion__itemBodyData ol li:before {
        display: none; }
    .accordion__itemBodyData ul {
      list-style: disc;
      padding-left: 15px; }
      .accordion__itemBodyData ul li:before {
        display: none; }
    .accordion__itemBodyData p:not(:last-child) {
      margin-bottom: 10px; }
    .accordion__itemBodyData blockquote {
      margin: 0 0 20px 0;
      padding: 5px 0 5px 20px;
      border-left: 3px solid var(--color-gray);
      font-style: italic; }
      .accordion__itemBodyData blockquote p {
        margin: 0; }
    .accordion__itemBodyData h1 {
      font-size: 40px;
      line-height: 48px;
      font-weight: 400;
      color: var(--color-title-color); }
      @media (max-width: 768.98px) {
        .accordion__itemBodyData h1 {
          font-size: 34px;
          line-height: 40px; } }
      @media print {
        .accordion__itemBodyData h1 {
          color: var(--color-title-color); } }
    .accordion__itemBodyData h2 {
      font-size: 32px;
      line-height: 42px;
      font-weight: 400;
      color: var(--color-title-color); }
      @media (max-width: 768.98px) {
        .accordion__itemBodyData h2 {
          font-size: 30px;
          line-height: 38px; } }
      @media print {
        .accordion__itemBodyData h2 {
          color: var(--color-title-color); } }
    .accordion__itemBodyData h3 {
      font-size: 26px;
      line-height: 32px;
      font-weight: 400;
      color: var(--color-title-color); }
      @media (max-width: 768.98px) {
        .accordion__itemBodyData h3 {
          font-size: 26px;
          line-height: 32px; } }
      @media print {
        .accordion__itemBodyData h3 {
          color: var(--color-title-color); } }
    .accordion__itemBodyData h4 {
      font-size: 20px;
      line-height: 28px;
      font-weight: 400;
      color: var(--color-title-color); }
      @media (max-width: 768.98px) {
        .accordion__itemBodyData h4 {
          font-size: 20px;
          line-height: 28px; } }
      @media print {
        .accordion__itemBodyData h4 {
          color: var(--color-title-color); } }
    .accordion__itemBodyData a {
      color: var(--color-brand-primary);
      text-decoration: underline;
      text-decoration-thickness: 1px;
      text-underline-offset: 0.1em;
      padding: 5px;
      margin: -5px;
      border-radius: 3px;
      transition: all 0.2s ease-out; }
      .accordion__itemBodyData a:hover {
        background: var(--color-gray-light-3);
        color: var(--color-black);
        box-shadow: 0 0 0 1px var(--color-black-transparent); }
      @media (forced-colors: active) {
        .accordion__itemBodyData a:focus {
          forced-color-adjust: none;
          color: var(--color-black) !important;
          background: var(--color-yellow) !important; }
          .accordion__itemBodyData a:focus .icon:before {
            color: var(--color-black) !important; }
          .accordion__itemBodyData a:focus .icon:after {
            color: var(--color-black) !important; } }
    .accordion__itemBodyData b,
    .accordion__itemBodyData strong {
      font-weight: 700; }
    .accordion__itemBodyData em {
      font-style: italic; }
    .accordion__itemBodyData sup {
      font-size: 10px;
      padding-left: 2px;
      position: relative;
      top: -7px; }
    .accordion__itemBodyData sub {
      font-size: 10px;
      padding-left: 2px;
      position: relative;
      bottom: -3px; }
    .accordion__itemBodyData .button {
      position: relative;
      display: inline-block;
      min-height: 40px;
      min-width: 150px;
      padding: 11px 15px;
      border-radius: 100px;
      font-size: 16px;
      line-height: 1;
      text-align: center;
      transition: 0.2s all ease;
      cursor: pointer;
      background: var(--color-brand-primary);
      color: var(--color-white) !important;
      border: 0 none;
      border: 1px solid var(--color-transparent); }
      .accordion__itemBodyData .button:link, .accordion__itemBodyData .button:hover {
        text-decoration: none; }
      @media (forced-colors: active) {
        .accordion__itemBodyData .button:focus {
          forced-color-adjust: none;
          color: var(--color-black) !important;
          background: var(--color-yellow) !important; }
          .accordion__itemBodyData .button:focus .icon:before {
            color: var(--color-black) !important; }
          .accordion__itemBodyData .button:focus .icon:after {
            color: var(--color-black) !important; } }
      .accordion__itemBodyData .button:hover {
        background-color: var(--color-white);
        color: var(--color-brand-primary) !important;
        border-color: var(--color-brand-primary); }
      @media (forced-colors: active) {
        .accordion__itemBodyData .button:focus {
          forced-color-adjust: none;
          color: var(--color-black) !important;
          background: var(--color-yellow) !important; }
          .accordion__itemBodyData .button:focus .icon:before {
            color: var(--color-black) !important; }
          .accordion__itemBodyData .button:focus .icon:after {
            color: var(--color-black) !important; } }
      @media print {
        .accordion__itemBodyData .button {
          border: 1pt solid var(--color-transparent); } }
      .accordion__itemBodyData .button.secondary {
        position: relative;
        display: inline-block;
        min-height: 40px;
        min-width: 150px;
        padding: 11px 15px;
        border-radius: 100px;
        font-size: 16px;
        line-height: 1;
        text-align: center;
        transition: 0.2s all ease;
        cursor: pointer;
        background: var(--color-white-transparent-mid);
        color: var(--color-brand-primary) !important;
        border: 0 none;
        border: 1px solid var(--color-brand-primary); }
        .accordion__itemBodyData .button.secondary:link, .accordion__itemBodyData .button.secondary:hover {
          text-decoration: none; }
        @media (forced-colors: active) {
          .accordion__itemBodyData .button.secondary:focus {
            forced-color-adjust: none;
            color: var(--color-black) !important;
            background: var(--color-yellow) !important; }
            .accordion__itemBodyData .button.secondary:focus .icon:before {
              color: var(--color-black) !important; }
            .accordion__itemBodyData .button.secondary:focus .icon:after {
              color: var(--color-black) !important; } }
        .accordion__itemBodyData .button.secondary:hover {
          background-color: var(--color-brand-primary);
          color: var(--color-white) !important;
          border-color: var(--color-brand-primary); }
        @media (forced-colors: active) {
          .accordion__itemBodyData .button.secondary:focus {
            forced-color-adjust: none;
            color: var(--color-black) !important;
            background: var(--color-yellow) !important; }
            .accordion__itemBodyData .button.secondary:focus .icon:before {
              color: var(--color-black) !important; }
            .accordion__itemBodyData .button.secondary:focus .icon:after {
              color: var(--color-black) !important; } }
        @media print {
          .accordion__itemBodyData .button.secondary {
            border: 1pt solid var(--color-brand-primary); } }
    .accordion__itemBodyData .text-center {
      text-align: center; }
    .accordion__itemBodyData .text-right {
      text-align: right; }
    .accordion__itemBodyData .text-justify {
      text-align: justify; }
    .accordion__itemBodyData .lead {
      margin-bottom: 10px;
      font-size: 20px;
      font-weight: 700;
      line-height: 24px; }
      @media (max-width: 768.98px) {
        .accordion__itemBodyData .lead {
          font-size: 24px;
          line-height: 32px; } }
    .accordion__itemBodyData .decor {
      color: var(--color-brand-primary); }
    .accordion__itemBodyData .note {
      color: var(--color-gray);
      font-size: 14px;
      line-height: 18px; }
    .accordion__itemBodyData .note-small {
      color: var(--color-gray);
      font-size: 12px;
      line-height: 15px; }
    .accordion__itemBodyData .quote {
      font-size: 22px;
      line-height: 30px;
      font-style: italic; }
    .accordion__itemBodyData img {
      display: initial; }
    .accordion__itemBodyData hr {
      display: block;
      margin: 20px auto;
      border: 1px solid var(--color-gray-mid-2);
      border-bottom: 0; }
    .accordion__itemBodyData table.primary-table th {
      background-color: var(--color-brand-primary);
      color: var(--color-white);
      font-weight: 700; }
    .accordion__itemBodyData table.primary-table th,
    .accordion__itemBodyData table.primary-table td {
      border: 1px solid var(--color-border-gray);
      padding: 10px; }
    .accordion__itemBodyData table.rounded-table {
      border-collapse: separate;
      border-spacing: 0 10px; }
      .accordion__itemBodyData table.rounded-table th {
        padding: 0 20px;
        font-size: 14px;
        text-align: left;
        vertical-align: bottom; }
      .accordion__itemBodyData table.rounded-table td {
        padding: 20px;
        background-color: var(--color-gray-light-3);
        border-top: 1px solid var(--color-border-gray);
        border-bottom: 1px solid var(--color-border-gray); }
        .accordion__itemBodyData table.rounded-table td:first-child {
          border-left: 1px solid var(--color-border-gray);
          border-radius: 6px 0 0 6px; }
        .accordion__itemBodyData table.rounded-table td:last-child {
          border-right: 1px solid var(--color-border-gray);
          border-radius: 0 6px 6px 0; }
        .accordion__itemBodyData table.rounded-table td p {
          font-weight: 700; }
    @media print {
      .accordion__itemBodyData {
        padding-bottom: 0; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBOEM7UUFDOUMsaURBQWlEO1FKbkc1RDtVSXFHZSwrQ0FBK0M7VUFDL0MsMEJBQTBCO1FKdEd6QztVSXlHZSxnREFBZ0Q7VUFDaEQsMEJBQTBCO1FKMUd6QztVSTZHZSxnQkFBZ0I7SU8zRWhDO01YbENBO1FXbUNJLGlCQUFpQixJWGpDcEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9wbGF0Zm9ybS1yZXNvdXJjZXMvcGxhdGZvcm0tcmVzb3VyY2VzLWNvcmUtdXNlci9zcmMvbWFpbi9zY3NzL2NvbXBvbmVudHMvYWNjb3JkaW9uLnNjc3MiLCJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2NvbG9ycy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvdXRpbHMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL3d5c2l3eWcuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9wbGF0Zm9ybS1yZXNvdXJjZXMvcGxhdGZvcm0tcmVzb3VyY2VzLWNvcmUtdXNlci9zcmMvbWFpbi9zY3NzL2NvbXBvbmVudHMtY29tbW9uL2Nhcm91c2VsLnNjc3MiLCJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS9taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2NvbXBvbmVudC5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvYm9vdHN0cmFwLnNjc3MiLCJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS9oZWFkaW5ncy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvbGlzdHMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9wbGF0Zm9ybS1yZXNvdXJjZXMvcGxhdGZvcm0tcmVzb3VyY2VzLWNvcmUtdXNlci9zcmMvbWFpbi9zY3NzL2NvbXBvbmVudHMtY29tbW9uL2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzLy5maXh0dXJlcy9pY29ucy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2J1dHRvbnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAgICAgICAgICAgICAgICAgQGltcG9ydCBcIkBzY3NzL2NvcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LWZvY3VzYWJsZSgpO1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1oZWFkZXJzKCk7XG4gICAgbWFyZ2luOiAzNXB4IDA7XG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGFjY29yZGlvbi13cmFwcGVyO1xuICAgIH1cbiAgICAmX19pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW0oXCJhY2NvcmRpb25fX2l0ZW1IZWFkZXJcIik7XG4gICAgICAgIEBpbmNsdWRlIHN0YXRlKEVYUEFOREVEKSB7XG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMi41cHQ7XG4gICAgICAgICAgICAgICAgLmFjY29yZGlvbl9faXRlbUJvZHkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pdGVtSGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlcigpO1xuICAgIH1cbiAgICAmX19pdGVtSGVhZGVyQnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1idXR0b24oKTtcbiAgICB9XG4gICAgJl9faXRlbUJvZHkge1xuICAgICAgICBAaW5jbHVkZSBzbGlkZSgpO1xuICAgIH1cbiAgICAmX19pdGVtQm9keURhdGEge1xuICAgICAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGVudCgpO1xuICAgIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAiLCIvKiBib29zdHJhcCAqL1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAgIHhzOiAwLFxuICAgIHNtOiA0ODBweCArIDFweCxcbiAgICBtZDogNzY4cHggKyAxcHgsXG4gICAgbGc6IDk5MXB4ICsgMXB4LFxuICAgIHhsOiAxMTk5cHggKyAxcHgsXG4gICAgeHhsOiAxNjAwcHgsXG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgICBzbTogNTQwcHgsXG4gICAgbWQ6IDcyMHB4LFxuICAgIGxnOiA5NjBweCxcbiAgICB4bDogMTE0MHB4LFxuKSAhZGVmYXVsdDtcblxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDMwcHggIWRlZmF1bHQ7XG5cbi8qIGN1c3RvbSAqL1xuXG4kc2VjdGlvbi13aWR0aDogMTYwMHB4O1xuJGNvbnRhaW5lci13aWR0aDogMTE3MHB4O1xuJG5hcnJvdy13aWR0aDogODUwcHg7XG4kZ2FwOiAxNXB4O1xuXG4kaW1nOiBcIi9fZS1wb2ludC1jbXMtaW1nXCI7XG4kZm9udDogXCIvX2UtcG9pbnQtY21zLWZvbnRzXCI7XG5cbiRpY29ucy1mb250LW5hbWU6IFwiZS1wb2ludCBDTVMgOjogaWNvbnNcIjtcbiRtYWluLWZvbnQtbmFtZTogXCJlLXBvaW50IENNUyA6OiBtYWluXCI7XG4kZm9udC1mYW1pbHktYmFzZTogJG1haW4tZm9udC1uYW1lLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LXNpemUtYmFzZTogMTZweDtcbiRmb250LXNpemUtc206IDE1cHg7XG4kbGluZS1oZWlnaHQtYmFzZTogMjRweDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgY29sb3Itbm8taGV4ICovXG4kY29sb3ItcGFsZXR0ZTogKFxuICAgIFwiYnJhbmRcIjogKFxuICAgICAgICBcImJyYW5kLXByaW1hcnlcIjogIzAwODM2MyxcbiAgICAgICAgXCJicmFuZC1zZWNvbmRhcnlcIjogIzgzMDAyMCxcbiAgICApLFxuICAgIFwidGV4dFwiOiAoXG4gICAgICAgIFwidGl0bGUtY29sb3JcIjogIzI3MjcyNyxcbiAgICAgICAgXCJ0ZXh0LWNvbG9yXCI6ICM0ODQ4NDgsXG4gICAgICAgIFwiZm9vdGVyLXRleHQtY29sb3JcIjogI2FlYjJiMixcbiAgICApLFxuICAgIFwiZ3JleXNcIjogKFxuICAgICAgICBcImJsYWNrXCI6ICMxNjFhMWEsXG4gICAgICAgIFwiZ3JheS1kYXJrXCI6ICMyMzIzMjMsXG4gICAgICAgIFwiZ3JheVwiOiAjNzM3MzczLFxuICAgICAgICBcImdyYXktbWlkXCI6ICNjYWNhY2EsXG4gICAgICAgIFwiZ3JheS1taWQtMlwiOiAjZTdlN2U3LFxuICAgICAgICBcImdyYXktbWlkLTNcIjogI2VlZSxcbiAgICAgICAgXCJncmF5LWxpZ2h0XCI6ICNmMGYwZjAsXG4gICAgICAgIFwiZ3JheS1saWdodC0yXCI6ICNmOGY4ZjgsXG4gICAgICAgIFwiZ3JheS1saWdodC0zXCI6ICNmOWY5ZmEsXG4gICAgICAgIFwiZ3JheS1saWdodC00XCI6ICNmOWY2ZjMsXG4gICAgICAgIFwid2hpdGVcIjogI2ZmZmZmZixcbiAgICApLFxuICAgIFwicHJpbWFyeVwiOiAoXG4gICAgICAgIFwicmVkXCI6ICNlMDNlM2UsXG4gICAgICAgIFwicmVkLWxpZ2h0XCI6ICNlZDkwODcsXG4gICAgICAgIFwib3JhbmdlXCI6ICNlNDg1MTYsXG4gICAgICAgIFwib3JhbmdlLWxpZ2h0XCI6ICNmZmM4ODAsXG4gICAgICAgIFwieWVsbG93XCI6ICNmZmZmMDAsXG4gICAgICAgIFwiaXZvcnlcIjogI2ZmZmJlOCxcbiAgICAgICAgXCJiZWlnZVwiOiAjZjBlN2QzLFxuICAgICAgICBcImdyZWVuXCI6ICM0NzljNzIsXG4gICAgICAgIFwiZ3JlZW4tbGlnaHRcIjogIzhhOWU5NCxcbiAgICAgICAgXCJibHVlLWRhcmtcIjogIzA4Mzg0YixcbiAgICAgICAgXCJibHVlLWRhcmstMlwiOiAjMGU0MTk0LFxuICAgICAgICBcImJsdWVcIjogIzAzNGVhMixcbiAgICAgICAgXCJibHVlLTJcIjogIzI0NDZhNyxcbiAgICAgICAgXCJibHVlLWxpZ2h0XCI6ICM1NTc5YTMsXG4gICAgICAgIFwiYmx1ZS1saWdodC0yXCI6ICM0YzgwYzMsXG4gICAgICAgIFwiYmx1ZS1saWdodC0zXCI6ICNhY2M0ZTMsXG4gICAgICAgIFwiYmx1ZS1saWdodC00XCI6ICNlYWVkZjcsXG4gICAgICAgIFwicHVycGxlXCI6ICM4YzJiOTksXG4gICAgICAgIFwicHVycGxlLWxpZ2h0XCI6ICM5NTc3OTksXG4gICAgKSxcbiAgICBcImJvcmRlcnNcIjogKFxuICAgICAgICBcImJvcmRlci11bmRlcmxpbmUtZGFya1wiOiAjN2M3YzdjLFxuICAgICAgICBcImJvcmRlci11bmRlcmxpbmVcIjogIzczNzM3MyxcbiAgICAgICAgXCJib3JkZXItZ3JheVwiOiAjZTBkZGRiLFxuICAgICksXG4gICAgXCJ0cmFuc3BhcmVudHNcIjogKFxuICAgICAgICBcInRyYW5zcGFyZW50XCI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksXG4gICAgICAgIFwiYmxhY2stdHJhbnNwYXJlbnRcIjogcmdiYSgwLCAwLCAwLCAwLjEpLFxuICAgICAgICBcImJsYWNrLXRyYW5zcGFyZW50LWxheWVyXCI6IHJnYmEoMCwgMCwgMCwgMC40KSxcbiAgICAgICAgXCJibGFjay10cmFuc3BhcmVudC1saWdodFwiOiByZ2JhKDAsIDAsIDAsIDAuMDUpLFxuICAgICAgICBcIndoaXRlLXRyYW5zcGFyZW50XCI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSksXG4gICAgICAgIFwid2hpdGUtdHJhbnNwYXJlbnQtbGF5ZXJcIjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuICAgICAgICBcIndoaXRlLXRyYW5zcGFyZW50LW1pZFwiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSksXG4gICAgICAgIFwid2hpdGUtdHJhbnNwYXJlbnQtaGlnaFwiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpLFxuICAgICksXG4gICAgXCJzdGF0aWMtcGFnZXNcIjogKFxuICAgICAgICBcImVycm9yLWJsYWNrXCI6ICMwMDAsXG4gICAgICAgIFwiZXJyb3ItZ3JheVwiOiAjZWRlZGVkLFxuICAgICksXG4gICAgXCJwcmV2aWV3LXNlZ21lbnRzXCI6IChcbiAgICAgICAgXCJwcmV2aWV3LXNlZ21lbnRzLWJhY2tncm91bmRcIjogIzAwNTFhMSxcbiAgICApLFxuICAgIFwicmlzay1sZXZlbFwiOiAoXG4gICAgICAgIFwicmlzay1sZXZlbC0xXCI6ICM0OGFjOGYsXG4gICAgICAgIFwicmlzay1sZXZlbC0yXCI6ICM0ODlkNzMsXG4gICAgICAgIFwicmlzay1sZXZlbC0zXCI6ICM3ZmM5NjMsXG4gICAgICAgIFwicmlzay1sZXZlbC00XCI6ICNmZmJmMDAsXG4gICAgICAgIFwicmlzay1sZXZlbC01XCI6ICNmZjkxMDAsXG4gICAgICAgIFwicmlzay1sZXZlbC02XCI6ICNlZTM1MjQsXG4gICAgICAgIFwicmlzay1sZXZlbC03XCI6ICNlZDFiMDcsXG4gICAgKSxcbiAgICBcIm1hcC1zdHlsZXJzXCI6IChcbiAgICAgICAgXCJtYXAtY29sb3ItMVwiOiAjOWU5ZTllLFxuICAgICAgICBcIm1hcC1jb2xvci0yXCI6ICMzMDMwMzAsXG4gICAgICAgIFwibWFwLWNvbG9yLTNcIjogIzQ3NDc0NyxcbiAgICAgICAgXCJtYXAtY29sb3ItNFwiOiAjZTBlN2UwLFxuICAgICAgICBcIm1hcC1jb2xvci01XCI6ICNmZmFhMDAsXG4gICAgICAgIFwibWFwLWNvbG9yLTZcIjogI2QxZGFkZCxcbiAgICApLFxuKTtcbi8qIHN0eWxlbGludC1lbmFibGUgY29sb3Itbm8taGV4ICovXG5cbkBmdW5jdGlvbiBnZXQtY29sb3JzKCkge1xuICAgICRjb2xvcnM6ICgpO1xuICAgIEBlYWNoICRncm91cCBpbiBtYXAta2V5cygkY29sb3ItcGFsZXR0ZSkge1xuICAgICAgICAkY29sb3JzOiBtYXAtbWVyZ2UoJGNvbG9ycywgbWFwLWdldCgkY29sb3ItcGFsZXR0ZSwgJGdyb3VwKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvbG9ycztcbn1cblxuQGZ1bmN0aW9uIGdldC1jb2xvcnMtZ3JheXNjYWxlKCkge1xuICAgICRjb2xvcnM6IGdldC1jb2xvcnMoKTtcbiAgICAkY29sb3JzLWdyYXlzY2FsZTogKCk7XG4gICAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRjb2xvcnMpIHtcbiAgICAgICAgJGNvbG9ycy1ncmF5c2NhbGU6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICRjb2xvcnMtZ3JheXNjYWxlLFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICRjb2xvcjogZ3JheXNjYWxlKG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKSksXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvbG9ycy1ncmF5c2NhbGU7XG59XG5cbkBtaXhpbiBjb2xvcnMtdmFyaWFibGVzKCRncmF5c2NhbGU6IGZhbHNlKSB7XG4gICAgJGNvbG9yczogKCk7XG4gICAgQGlmICRncmF5c2NhbGUge1xuICAgICAgICAkY29sb3JzOiBnZXQtY29sb3JzLWdyYXlzY2FsZSgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkY29sb3JzOiBnZXQtY29sb3JzKCk7XG4gICAgfVxuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkY29sb3JzKSB7XG4gICAgICAgIEBpZiAkZ3JheXNjYWxlIHtcbiAgICAgICAgICAgIC0tY29sb3ItI3skY29sb3J9OiAje21hcC1nZXQoJGNvbG9ycywgJGNvbG9yKX0gIWltcG9ydGFudDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAtLWNvbG9yLSN7JGNvbG9yfTogI3ttYXAtZ2V0KCRjb2xvcnMsICRjb2xvcil9O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy5maXh0dXJlcy9pY29uc1wiO1xuXG5AbWl4aW4gZm9udC1mYWNlKCRmb250TmFtZSwgJGZpbGVOYW1lLCAkZm9udFN0eWxlLCAkZm9udFdlaWdodCkge1xuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCIjeyRmb250TmFtZX1cIjtcbiAgICAgICAgZm9udC1zdHlsZTogJGZvbnRTdHlsZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250V2VpZ2h0O1xuICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgICAgIHNyYzogdXJsKFwiI3skZmlsZU5hbWV9LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgdXJsKFwiI3skZmlsZU5hbWV9LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLW5hbWUoJGZpbGVuYW1lKSB7XG4gICAgY29udGVudDogaWNvbi1jaGFyKCRmaWxlbmFtZSk7XG59XG5cbkBtaXhpbiBpY29uLXNpemUoJHNpemUpIHtcbiAgICBzaXplOiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gICAgZm9udC1zaXplOiAkc2l6ZTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgZm9udC13ZWlnaHQtbm90YXRpb24gKi9cbkBtaXhpbiBpY29uKCRmaWxlbmFtZSwgJHNpemUpIHtcbiAgICBAaW5jbHVkZSBpY29uLW5hbWUoJGZpbGVuYW1lKTtcbiAgICBAaW5jbHVkZSBpY29uLXNpemUoJHNpemUpO1xuICAgIGZvbnQtZmFtaWx5OiAkaWNvbnMtZm9udC1uYW1lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIGZvbnQtd2VpZ2h0LW5vdGF0aW9uICovXG5cbkBtaXhpbiBpY29uLWNvbnRlbnQge1xuICAgIC5pY29uIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1iZWZvcmUtY29udGVudCB7XG4gICAgLmljb24ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGljb24tYmVmb3JlKCRmaWxlbmFtZSwgJHNpemUpIHtcbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZS1jb250ZW50KCkge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRmaWxlbmFtZSwgJHNpemUpO1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWJlZm9yZS1uYW1lKCRmaWxlbmFtZSkge1xuICAgIEBpbmNsdWRlIGljb24tYmVmb3JlLWNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnRlbnQ6IGljb24tY2hhcigkZmlsZW5hbWUpO1xuICAgIH1cbn1cblxuQG1peGluIGljb24tYmVmb3JlLXNpemUoJHNpemUpIHtcbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZS1jb250ZW50KCkge1xuICAgICAgICBjb250ZW50OiBpY29uLXNpemUoJHNpemUpO1xuICAgIH1cbn1cblxuQG1peGluIGljb24tYWZ0ZXItY29udGVudCB7XG4gICAgLmljb24ge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1hZnRlcigkZmlsZW5hbWUsICRzaXplKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1hZnRlci1jb250ZW50KCkge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRmaWxlbmFtZSwgJHNpemUpO1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWFmdGVyLW5hbWUoJGZpbGVuYW1lKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1hZnRlci1jb250ZW50KCkge1xuICAgICAgICBjb250ZW50OiBpY29uLWNoYXIoJGZpbGVuYW1lKTtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWFmdGVyLXNpemUoJHNpemUpIHtcbiAgICBAaW5jbHVkZSBpY29uLWFmdGVyLWNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnRlbnQ6IGljb24tc2l6ZSgkc2l6ZSk7XG4gICAgfVxufVxuXG5AbWl4aW4gc3RhdGUoJHN0YXRlKSB7XG4gICAgJi4je21hcC1nZXQoJHN0YXRlcywgJHN0YXRlKX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCIvKiBUT0RPOiBCT1gtMjQ5NiBTeW5jaHJvbml6YWNqYSB6IGFkbWluOiBjbXMtYWRtaW4vc3JjL21haW4vY2tlZGl0b3IvY29udGVudHMuY3NzICovXG5cbkBtaXhpbiB3eXNpd3lnKCRvbi1kYXJrLWJhY2tncm91bmQ6IGZhbHNlLCAkYWRtaW4td3lzaXd5ZzogZmFsc2UpIHtcbiAgICBAaWYgJGFkbWluLXd5c2l3eWcge1xuICAgICAgICBib2R5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgc3R5bGUtbGlzdHM7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeTtcbiAgICBAaW5jbHVkZSBjb250ZW50LWhlYWRpbmdzKCRvbi1kYXJrLWJhY2tncm91bmQpO1xuICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbms7XG4gICAgICAgIEBpbmNsdWRlIGxpbmstZm9jdXM7XG4gICAgICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgICBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgc3VwIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IC03cHg7XG4gICAgfVxuICAgIHN1YiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAtM3B4O1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWFsbCgpO1xuICAgIH1cbiAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC50ZXh0LXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIC50ZXh0LWp1c3RpZnkge1xuICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIH1cbiAgICAubGVhZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRlY29yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgIH1cbiAgICAubm90ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICB9XG4gICAgLm5vdGUtc21hbGwge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgfVxuICAgIC5xdW90ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcbiAgICB9XG4gICAgaHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktbWlkLTIpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgICB0YWJsZSB7XG4gICAgICAgICYucHJpbWFyeS10YWJsZSB7XG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5yb3VuZGVkLXRhYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgICAgICBib3JkZXItc3BhY2luZzogMCAxMHB4O1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS1saWdodC0zKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItZ3JheSk7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggMCAwIDZweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDZweCA2cHggMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGNhcm91c2VsLXNlY29uZHMtbGltaXQ6IDEwO1xuXG5AbWl4aW4gY2Fyb3VzZWwtd3JhcHBlcigkY29tcG9uZW50KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHN0YXRlKFNUT1ApIHtcbiAgICAgICAgLiN7JGNvbXBvbmVudH1fX3BhZ2luYXRpb25JbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19jb250cm9sc1BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgICAuI3skY29tcG9uZW50fV9fY29udHJvbHNTdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgc3RhdGUoU1RBVElDKSB7XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wYWdpbmF0aW9uLFxuICAgICAgICAuI3skY29tcG9uZW50fV9fY29udHJvbHMsXG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wcmV2LFxuICAgICAgICAuI3skY29tcG9uZW50fV9fbmV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBzdGF0ZShBQ1RJVkUpIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbiVjYXJvdXNlbC1zbGlkZXMge1xuICAgIEBpbmNsdWRlIGRlbGV0ZS1saXN0LXN0eWxlcztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbiVjYXJvdXNlbC1zbGlkZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIEBpbmNsdWRlIHN0YXRlKFZJU0lCTEUpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtdGh1bWItc2xpZGUge1xuICAgIEBleHRlbmQgJWNhcm91c2VsLXNsaWRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlIDA7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgc3RhdGUoQUNUSVZFKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1uYXYoJHNpemUpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UgYWxsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1saWdodCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvY3VzLWNsaWNrYWJsZTtcbiAgICBAaW5jbHVkZSBzdGF0ZShESVNBQkxFRCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgY2FsYyg1MCUgLSA0MHB4KSBub25lIG5vbmU7XG4gICAgc2l6ZTogJHNpemU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktbWlkLTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB6LWluZGV4OiAyO1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDc1cHgpO1xuICAgIH1cbn1cblxuQG1peGluIGNhcm91c2VsLWJ1dHRvbigkZGlyZWN0aW9uLCAkc2l6ZTogNDBweCkge1xuICAgIEBpbmNsdWRlIGNhcm91c2VsLW5hdigkc2l6ZSk7XG4gICAgI3skZGlyZWN0aW9ufTogLTUwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICN7JGRpcmVjdGlvbn06IDIwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAjeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImFycm93LSN7JGRpcmVjdGlvbn1cIiwgMTZweCkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgfVxufVxuXG5AbWl4aW4gY2Fyb3VzZWwtcHJldigkc2l6ZTogNDBweCkge1xuICAgIEBpbmNsdWRlIGNhcm91c2VsLWJ1dHRvbihsZWZ0LCAkc2l6ZSk7XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1uZXh0KCRzaXplOiA0MHB4KSB7XG4gICAgQGluY2x1ZGUgY2Fyb3VzZWwtYnV0dG9uKHJpZ2h0LCAkc2l6ZSk7XG59XG5cbiVjYXJvdXNlbC1wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBkZWxldGUtbGlzdC1zdHlsZXM7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgIG1hcmdpbjogMjBweCAwIDA7XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtcGFnaW5hdGlvbi1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBzaXplOiAzMHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHNpemU6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZSBhbGw7XG4gICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJWNhcm91c2VsLXBhZ2luYXRpb24tYnV0dG9uLXZhbHVlIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5O1xufVxuXG4lY2Fyb3VzZWwtcGFnaW5hdGlvbi1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAwO1xuICAgIHNpemU6IDMwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbkBtaXhpbiBjYXJvdXNlbC1wYWdpbmF0aW9uLWluZGljYXRvci1kZWNvcmF0b3IoKSB7XG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNhcm91c2VsLWluZGljYXRvci1kZWNvcmF0b3I7XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jb2xvci15ZWxsb3cpO1xuICAgIH1cbiAgICBAZm9yICRzZWNvbmRzIGZyb20gMSB0aHJvdWdoICRjYXJvdXNlbC1zZWNvbmRzLWxpbWl0IHtcbiAgICAgICAgJi0tI3skc2Vjb25kc30ge1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAjeyRzZWNvbmRzfXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1jb250cm9scy1jZW50ZXIoKSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweCAwIDAgMDtcbn1cblxuJWNhcm91c2VsLWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgbm9uZSBub25lIDAgMDtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtY29udHJvbHMtY2VudGVyKCk7XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtY29udHJvbHMtcGxheSB7XG4gICAgQGluY2x1ZGUgYWN0aW9uLWJ1dHRvbihcInBsYXlcIik7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuJWNhcm91c2VsLWNvbnRyb2xzLXN0b3Age1xuICAgIEBpbmNsdWRlIGFjdGlvbi1idXR0b24oXCJwYXVzZVwiKTtcbn1cblxuQG1peGluIGNhcm91c2VsLXBhZ2luYXRpb24taXRlbSgkY29tcG9uZW50KSB7XG4gICAgc2l6ZTogMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc3RhdGUoQUNUSVZFKSB7XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wYWdpbmF0aW9uQnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBzaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXllbGxvdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHN0YXRlKFBST0NFU1NJTkcpIHtcbiAgICAgICAgLiN7JGNvbXBvbmVudH1fX3BhZ2luYXRpb25JbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGNhcm91c2VsLWluZGljYXRvci1kZWNvcmF0b3Ige1xuICAgIGZyb20ge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogNzVweDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1nYWxsZXJ5LWZhY3RvcnkoJGNvbXBvbmVudCkge1xuICAgICZfX2ltYWdlc1dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBjYXJvdXNlbC13cmFwcGVyKCRjb21wb25lbnQpO1xuICAgICAgICBtYXgtd2lkdGg6ICRuYXJyb3ctd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAmX19pbWFnZXNDb250YWluZXIge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1jb250YWluZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgfVxuICAgICZfX2ltYWdlc1NsaWRlcyB7XG4gICAgICAgIEBleHRlbmQgJWNhcm91c2VsLXNsaWRlcztcbiAgICB9XG4gICAgJl9faW1hZ2VzU2xpZGUge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1zbGlkZTtcbiAgICAgICAgQGV4dGVuZCAlaW1hZ2Utd3JhcHBlcjtcbiAgICB9XG4gICAgJl9faW1hZ2VzSW1hZ2Uge1xuICAgICAgICBAZXh0ZW5kICVpbWFnZS1jb3ZlcjtcbiAgICB9XG4gICAgJl9faW1hZ2VzUHJldiB7XG4gICAgICAgIEBpbmNsdWRlIGNhcm91c2VsLXByZXYoODBweCk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDQwcHgpO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pbWFnZXNOZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtbmV4dCg4MHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICB0b3A6IGNhbGMoNTAlIC0gNDBweCk7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190aHVtYnNXcmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtd3JhcHBlcigkY29tcG9uZW50KTtcbiAgICAgICAgbWF4LXdpZHRoOiA4NTBweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMDtcbiAgICB9XG4gICAgJl9fdGh1bWJzQ29udGFpbmVyIHtcbiAgICAgICAgQGV4dGVuZCAlY2Fyb3VzZWwtY29udGFpbmVyO1xuICAgIH1cbiAgICAmX190aHVtYnNTbGlkZXMge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1zbGlkZXM7XG4gICAgfVxuICAgICZfX3RodW1ic1NsaWRlIHtcbiAgICAgICAgQGV4dGVuZCAlY2Fyb3VzZWwtdGh1bWItc2xpZGU7XG4gICAgICAgIGhlaWdodDogMTI1cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtIDcuNXB0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNy41cHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190aHVtYnNJbWFnZSB7XG4gICAgICAgIEBleHRlbmQgJWltYWdlLWNvdmVyO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBiYXNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtY29sb3IpO1xufVxuXG4laW1hZ2UtY292ZXIge1xuICAgIHNpemU6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbiVpbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDU1MHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIH1cbn1cblxuQG1peGluIHNsaWRlIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjRzO1xuICAgIEBpbmNsdWRlIHN0YXRlKEZPUkNFRCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIHNyLW9ubHkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBzaXplOiAxcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5AbWl4aW4gZm9jdXMtZmFjdG9yeSgkY29sb3IpIHtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigkY29sb3IpIGluc2V0LCAwIDAgMCAxcHggdmFyKCRjb2xvcikgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigkY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb2N1cygkY29sb3I6IC0tY29sb3ItYmxhY2spIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1mYWN0b3J5KCRjb2xvcik7XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgQGluY2x1ZGUgZm9jdXMtZmFjdG9yeSgtLWNvbG9yLXllbGxvdyk7XG4gICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXMtaW52ZXJ0ZWQoJGNvbG9yOiAtLWNvbG9yLXdoaXRlKSB7XG4gICAgQGluY2x1ZGUgZm9jdXMtZmFjdG9yeSgkY29sb3IpO1xuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvY3VzLWZhY3RvcnkoLS1jb2xvci15ZWxsb3cpO1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzLWdlb21ldHJ5IHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgbWFyZ2luOiAtNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuQG1peGluIG5vdC1pbi1tb2RhbCB7XG4gICAgLmxheW91dF9jb2x1bW4gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzLWNsaWNrYWJsZSB7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3IteWVsbG93KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUtY29udGVudCgpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWFmdGVyLWNvbnRlbnQoKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbWVkaWEtc20tYW5kLWxhbmRzY2FwZSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgIEBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBtZWRpYS14cy1hbmQtbGFuZHNjYXBlIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcbiAgICAgICAgQG1lZGlhIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBtaXhpbiBjb21wb25lbnQtZm9jdXNhYmxlKCRpbnZlcnRlZDogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBub3QtaW4tbW9kYWwge1xuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAuZm9jdXMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAtMTBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgQGlmICRpbnZlcnRlZCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLWludmVydGVkO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb2N1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGNvbXBvbmVudC1oZWFkZXJzKCkge1xuICAgICZfX2NvbXBvbmVudEhlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icmFuZC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19jb21wb25lbnRIZWFkZXJIZWFkbGluZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoXCJoMlwiKTtcbiAgICB9XG4gICAgJl9fY29tcG9uZW50SGVhZGVyVGFnbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT0gWyBib290c3RyYXAtYnJlYWtwb2ludHMuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KFxuICAgICRuYW1lLFxuICAgICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsXG4gICAgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cylcbikge1xuICAgICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoXG4gICAgICAgICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSxcbiAgICAgICAgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLFxuICAgICAgICBudWxsXG4gICAgKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAwLjAycHgsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQGlmICRtaW4ge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgICBAaWYgJG1heCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oXG4gICAgJGxvd2VyLFxuICAgICR1cHBlcixcbiAgICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcbiAgICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gWyBib290c3RyYXAtZ3JpZC1mcmFtZXdvcmsuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKFxuICAgICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLFxuICAgICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCxcbiAgICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcbiAgICAvLyBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gICAgJWdyaWQtY29sdW1uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMXB4OyAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGd1dHRlciAvIDIpO1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICAgICAgLy8gQWxsb3cgY29sdW1ucyB0byBzdHJldGNoIGZ1bGwgd2lkdGggYmVsb3cgdGhlaXIgYnJlYWtwb2ludHNcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29sI3skaW5maXh9LFxuICAgICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAgICAgICAuY29sI3skaW5maXh9IHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTsgLy8gUmVzZXQgZWFybGllciBncmlkIHRpZXJzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9yZGVyI3skaW5maXh9LWZpcnN0IHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vcmRlciN7JGluZml4fS1sYXN0IHtcbiAgICAgICAgICAgICAgICBvcmRlcjogJGNvbHVtbnMgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAub3JkZXIjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogJGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGVcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgICAgICAgIEBpZiBub3QoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAgICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09IFsgYm9vdHN0cmFwLWdyaWQuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi8vIEZvciBlYWNoIGJyZWFrcG9pbnQsIGRlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIGluIGEgbWVkaWEgcXVlcnlcbkBtaXhpbiBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzKFxuICAgICRtYXgtd2lkdGhzOiAkY29udGFpbmVyLW1heC13aWR0aHMsXG4gICAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xuKSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRjb250YWluZXItbWF4LXdpZHRoIGluICRtYXgtd2lkdGhzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbWFrZS1yb3coKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xuICAgIG1hcmdpbi1sZWZ0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGJlY29taW5nIHRvbyBuYXJyb3cgd2hlbiBhdCBzbWFsbGVyIGdyaWQgdGllcnMgYnlcbiAgICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gICAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDsgLy8gUHJldmVudCBjb2xsYXBzaW5nXG4gICAgcGFkZGluZy1yaWdodDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgIHBhZGRpbmctbGVmdDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICAgZmxleDogMCAwIHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG4gICAgLy8gQWRkIGEgYG1heC13aWR0aGAgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4gICAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gICAgLy8gZG8gbm90IGFwcGVhciB0byByZXF1aXJlIHRoaXMuXG4gICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAgICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gICAgbWFyZ2luLWxlZnQ6IGlmKCRudW0gPT0gMCwgMCwgcGVyY2VudGFnZSgkbnVtKSk7XG59XG4iLCIkaGVhZGluZ3Mtc2l6ZXM6IChcbiAgICBoMTogKFxuICAgICAgICA0MHB4LFxuICAgICAgICA0OHB4LFxuICAgICAgICAzNHB4LFxuICAgICAgICA0MHB4LFxuICAgICksXG4gICAgaDI6IChcbiAgICAgICAgMzJweCxcbiAgICAgICAgNDJweCxcbiAgICAgICAgMzBweCxcbiAgICAgICAgMzhweCxcbiAgICApLFxuICAgIGgzOiAoXG4gICAgICAgIDI2cHgsXG4gICAgICAgIDMycHgsXG4gICAgICAgIDI2cHgsXG4gICAgICAgIDMycHgsXG4gICAgKSxcbiAgICBoNDogKFxuICAgICAgICAyMHB4LFxuICAgICAgICAyOHB4LFxuICAgICAgICAyMHB4LFxuICAgICAgICAyOHB4LFxuICAgICksXG4pO1xuXG5AbWl4aW4gaGVhZGluZygkaGVhZGluZywgJG9uLWRhcmstYmFja2dyb3VuZDogZmFsc2UpIHtcbiAgICAkc2l6ZXM6IG1hcC1nZXQoJGhlYWRpbmdzLXNpemVzLCAkaGVhZGluZyk7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBAaWYgJG9uLWRhcmstYmFja2dyb3VuZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICBmb250LXNpemU6IG50aCgkc2l6ZXMsIDMpO1xuICAgICAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgNCk7XG4gICAgfVxuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgfVxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29udGVudC1oZWFkaW5ncygkb24tZGFyay1iYWNrZ3JvdW5kKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA0IHtcbiAgICAgICAgaCN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoXCJoI3skaX1cIiwgJG9uLWRhcmstYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gbGlzdCgkbGlzdC1zdHlsZSkge1xuICAgIGxpc3Qtc3R5bGU6ICRsaXN0LXN0eWxlO1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAvLyBXQ0FHOiB1a3J5d2FuaWUgc3BhY2ppIG8gemVyb3dlaiBzemVyb2tvxZtjaSwgZ2R5IGplc3QgemRlZmluaW93YW55IGxpc3Qtc3R5bGVcbiAgICBsaSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBudW1iZXJlZC1saXN0IHtcbiAgICBAaW5jbHVkZSBsaXN0KGRlY2ltYWwpO1xufVxuXG5AbWl4aW4gcG9pbnRlZC1saXN0IHtcbiAgICBAaW5jbHVkZSBsaXN0KGRpc2MpO1xufVxuXG5AbWl4aW4gc3R5bGUtbGlzdHMge1xuICAgIG9sIHtcbiAgICAgICAgQGluY2x1ZGUgbnVtYmVyZWQtbGlzdDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBwb2ludGVkLWxpc3Q7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVsZXRlLWxpc3Qtc3R5bGVzKCRwYWRkaW5nOiAwKSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nICFpbXBvcnRhbnQ7XG59XG4iLCJAbWl4aW4gYWNjb3JkaW9uLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGRlbGV0ZS1saXN0LXN0eWxlcztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFwdCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItZ3JheSk7XG4gICAgfVxufVxuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlciB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAzMHB4IDIwcHggMzBweCA1NXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIEBpbmNsdWRlIGljb24tYmVmb3JlKFwiYXJyb3ctZG93blwiLCAxNHB4KSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlIDM1cHggbm9uZSBub25lIDIycHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuNHMgZWFzZSB0cmFuc2Zvcm07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHggMjBweCA0NXB4O1xuICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImFycm93LWRvd25cIiwgMTRweCkge1xuICAgICAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICAgICAgbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICAgIH1cbn1cblxuQG1peGluIGFjY29yZGlvbi1pdGVtKCRhY2NvcmRpb24taGVhZCkge1xuICAgIGJveC1zaGFkb3c6IDAgLTFweCB2YXIoLS1jb2xvci1ib3JkZXItZ3JheSk7XG4gICAgQGluY2x1ZGUgc3RhdGUoRVhQQU5ERUQpIHtcbiAgICAgICAgLiN7JGFjY29yZGlvbi1oZWFkfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImFycm93LWRvd25cIiwgMTRweCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB0IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1ncmF5KTtcbiAgICB9XG59XG5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCB7XG4gICAgcGFkZGluZzogMCAyMHB4IDMwcHggNTVweDtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4IDIwcHggNDVweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgd3lzaXd5ZygpO1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIi8vIHRlbXBsYXRlIGZvciBnZW5lcmF0ZWQgZmlsZSAnLmZpeHR1cmVzL2ljb25zLnNjc3MnXG5cbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuJGljb25zLWZvbnQtZmlsZTogXCJlLXBvaW50LWNtcy1pY29uc1wiO1xuXG5AZnVuY3Rpb24gaWNvbi1jaGFyKCRmaWxlbmFtZSkge1xuICAgICRjaGFyOiBcIlwiO1xuXG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImFycm93LWRvd25cIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWE5OVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwiYXJyb3ctbGVmdFwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYTlhXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJhcnJvdy1yaWdodFwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYTliXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJhcnJvdy11cFwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYTljXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJibG9ja1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYTlkXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJjYWxlbmRhclwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYTllXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJjaGVja2VkXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhOWZcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImNsb3NlXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYTBcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImNvbXBhcmUtb2ZmXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYTFcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImNvbXBhcmUtb25cIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFhMlwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwiY29va2llc1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWEzXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJkb3dubG9hZC1jb21wcmVzc2VkXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYTRcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImRvd25sb2FkLWRvY1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWE1XCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJkb3dubG9hZC1maWxlXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYTZcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImRvd25sb2FkLWltYWdlXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYTdcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImRvd25sb2FkLXNoZWV0XCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYThcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImRvd25sb2FkLXNsaWRlc1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWE5XCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJkb3dubG9hZC12aWRlb1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWFhXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJmYWNlYm9va1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWFiXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJmZWQtdGFzay0xXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYWNcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImZpbHRlclwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWFkXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJnZW9sb2NhdGlvblwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWFlXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJnbG9iZVwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWFmXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJob21lXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjBcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImltYWdlLXBsYWNlaG9sZGVyXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjFcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImluZm9cIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFiMlwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwiaW5zdGFncmFtXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjNcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImxpbmtcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFiNFwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwibG9hZGVyXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjVcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImxvZ2luXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjZcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcImxvbmctYXJyb3ctcmlnaHRcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFiN1wiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwibWFwXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYjhcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcIm1lbnVcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFiOVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwibWVudS1jbG9zZVwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWJhXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJtaW51c1wiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWJiXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJwYXVzZVwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWJjXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJwaG9uZVwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWJkXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJwaW5cIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFiZVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwicGxheVwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWJmXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJwbHVzXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYzBcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcInJhZGlvLWNoZWNrZWRcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFjMVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwicmVtb3ZlXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYzJcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcInNlYXJjaFwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWMzXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJ0aW1lXCIge1xuICAgICAgICAkY2hhcjogXCJcXGVhYzRcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBcInR3aXR0ZXJcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFjNVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IFwidXNlclwiIHtcbiAgICAgICAgJGNoYXI6IFwiXFxlYWM2XCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gXCJ2aXNpYmlsaXR5LWxvY2tcIiB7XG4gICAgICAgICRjaGFyOiBcIlxcZWFjN1wiO1xuICAgIH1cbiAgICBAcmV0dXJuICRjaGFyO1xufVxuIiwiQG1peGluIHR5cG9ncmFwaHkge1xuICAgIHA6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwIDVweCAyMHB4O1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXkpO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIGxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjFlbTtcbn1cblxuQG1peGluIGxpbmstZm9jdXMge1xuICAgIEBpbmNsdWRlIGZvY3VzLWdlb21ldHJ5O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0LTMpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItYmxhY2stdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmb2N1cy1jbGlja2FibGU7XG59XG5cbkBtaXhpbiBsaW5rLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgbGluaztcbiAgICBAaW5jbHVkZSBsaW5rLWZvY3VzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuXG5AbWl4aW4gbGluay1oZWFkZXItc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbn1cbiIsIkBtaXhpbiBidXR0b24tYmFzZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMTFweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBhbGwgZWFzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpsaW5rLFxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvY3VzLWNsaWNrYWJsZTtcbn1cblxuQG1peGluIGJ1dHRvbi1zdHlsZWQoXG4gICAgJGZvbnQtY29sb3IsXG4gICAgJGZvbnQtY29sb3ItaG92ZXIsXG4gICAgJGJhY2tncm91bmQtY29sb3IsXG4gICAgJGJhY2tncm91bmQtY29sb3ItaG92ZXIsXG4gICAgJGJvcmRlci1jb2xvcixcbiAgICAkYm9yZGVyLWNvbG9yLWhvdmVyXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGZvbnQtY29sb3IgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcjtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG9yLWhvdmVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvci1ob3ZlcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgZm9jdXMtY2xpY2thYmxlO1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGJvcmRlcjogMXB0IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uKFxuICAgICRmb250LWNvbG9yLFxuICAgICRmb250LWNvbG9yLWhvdmVyLFxuICAgICRiYWNrZ3JvdW5kLWNvbG9yLFxuICAgICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLFxuICAgICRib3JkZXItY29sb3IsXG4gICAgJGJvcmRlci1jb2xvci1ob3ZlclxuKSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWJhc2UoKTtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGVkKFxuICAgICAgICAkZm9udC1jb2xvcixcbiAgICAgICAgJGZvbnQtY29sb3ItaG92ZXIsXG4gICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yLFxuICAgICAgICAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAgICAgJGJvcmRlci1jb2xvcixcbiAgICAgICAgJGJvcmRlci1jb2xvci1ob3ZlclxuICAgICk7XG59XG5cbkBtaXhpbiBidXR0b24tcHJpbWFyeSgkb24tZGFyay1iYWNrZ3JvdW5kOiBmYWxzZSkge1xuICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYmxhY2spLFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSlcbiAgICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXRyYW5zcGFyZW50KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXNlY29uZGFyeSgkb24tZGFyay1iYWNrZ3JvdW5kOiBmYWxzZSkge1xuICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYmxhY2stdHJhbnNwYXJlbnQpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSlcbiAgICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZS10cmFuc3BhcmVudC1taWQpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWFsbCgkb24tZGFyay1iYWNrZ3JvdW5kOiBmYWxzZSkge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1wcmltYXJ5KCRvbi1kYXJrLWJhY2tncm91bmQpO1xuICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNlY29uZGFyeSgkb24tZGFyay1iYWNrZ3JvdW5kKTtcbiAgICB9XG59XG5cbkBtaXhpbiBhY3Rpb24tYnV0dG9uKCRpY29uKSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUoJGljb24sIDEycHgpO1xuICAgIEBpbmNsdWRlIGZvY3VzLWNsaWNrYWJsZTtcbn1cblxuQG1peGluIGNvbXBhcmUtYnV0dG9uKCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImNvbXBhcmUtb2ZmXCIsIDE0cHgpIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUoXCJjb21wYXJlLW9mZlwiLCAxNHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSA1MCUgNTAlIG5vbmUgbm9uZTtcbiAgICAgICAgbWFyZ2luOiAtN3B4IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIHN0YXRlKEFDVElWRSkge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZS1uYW1lKFwiY29tcGFyZS1vblwiKTtcbiAgICB9XG59XG5cbkBtaXhpbiBjbG9zZS1idXR0b24oKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHNpemU6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGljb24tYmVmb3JlKFwiY2xvc2VcIiwgMThweCkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgfVxuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUtY29udGVudCgpIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/