*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

@font-face {
  font-family: 'OpenSans';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/opensans-regular-webfont.woff2") format("woff2"), url("../fonts/opensans-regular-webfont.woff") format("woff"); }

@font-face {
  font-family: 'OpenSans';
  font-style: italic;
  font-weight: normal;
  src: url("../fonts/opensans-italic-webfont.woff2") format("woff2"), url("../fonts/opensans-italic-webfont.woff") format("woff"); }

@font-face {
  font-family: 'OpenSans';
  font-style: normal;
  font-weight: bold;
  src: url("../fonts/opensans-bold-webfont.woff2") format("woff2"), url("../fonts/opensans-bold-webfont.woff") format("woff"); }

@font-face {
  font-family: 'OpenSans';
  font-style: italic;
  font-weight: bold;
  src: url("../fonts/opensans-bolditalic-webfont.woff2") format("woff2"), url("../fonts/opensans-bolditalic-webfont.woff") format("woff"); }

@font-face {
  font-family: 'PlayfairDisplay';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/playfairdisplay-regular-webfont.woff2") format("woff2"), url("../fonts/playfairdisplay-regular-webfont.woff") format("woff"); }

@font-face {
  font-family: 'PlayfairDisplay';
  font-style: italic;
  font-weight: normal;
  src: url("../fonts/playfairdisplay-italic-webfont.woff2") format("woff2"), url("../fonts/playfairdisplay-italic-webfont.woff") format("woff"); }

@font-face {
  font-family: 'PlayfairDisplay';
  font-style: normal;
  font-weight: bold;
  src: url("../fonts/playfairdisplay-bold-webfont.woff2") format("woff2"), url("../fonts/playfairdisplay-bold-webfont.woff") format("woff"); }

@font-face {
  font-family: 'PlayfairDisplay';
  font-style: italic;
  font-weight: bold;
  src: url("../fonts/playfairdisplay-bolditalic-webfont.woff2") format("woff2"), url("../fonts/playfairdisplay-bolditalic-webfont.woff") format("woff"); }

.sidebar-right-none .webform-submission-form label {
  display: inline-block;
  width: 30%;
  padding-right: 0.625rem; }

.sidebar-right-none .webform-submission-form input {
  width: 65%; }

.sidebar-right-none .webform-submission-form .form-type-checkbox label {
  width: calc(100% - 2.5rem); }

.sidebar-right-none .webform-submission-form .form-type-checkbox input {
  width: 1.25rem;
  margin-right: 0.3125rem; }

@media (max-width: 48em) {
  .sidebar-right-none .webform-submission-form label {
    width: 100%; }
  .sidebar-right-none .webform-submission-form input {
    width: 100%;
    margin-right: 0; }
  .sidebar-right-none .webform-submission-form .form-type-checkbox label {
    width: calc(100% - 2.5rem);
    padding-right: 0; }
  .sidebar-right-none .webform-submission-form .form-type-checkbox input {
    width: 1.25rem; } }

.sidebar-right .webform-submission-form label,
.sidebar-right .webform-submission-form input:not([type='submit']),
.sidebar-right .webform-submission-form select {
  width: 100%; }

.sidebar-right .webform-submission-form .form-type-checkbox label {
  width: calc(100% - 2.5rem);
  padding-right: 0; }

.sidebar-right .webform-submission-form .form-type-checkbox input {
  width: 1.25rem; }

body {
  background-color: white; }

.layout-container {
  max-width: calc(75rem + 2.5rem);
  margin: 0 auto;
  padding: 0 1.25rem; }

header.site-header {
  margin: 0 auto;
  max-width: calc(13.75rem + (100% - 15rem)); }

main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 auto;
  max-width: calc(13.75rem + (100% - 15rem)); }
  @media (max-width: 67.5em) {
    main {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; } }

.overflow-container {
  width: 100vw;
  margin-left: calc((100vw - 100%)/-2); }
  .overflow-container .inner-wrapper {
    max-width: 75rem;
    margin: 0 auto;
    margin: 0 calc((100vw - 75rem)/2 + 1.25rem/2); }

@media (max-width: 77.5em) {
  .overflow-container .inner-wrapper {
    margin: 0 calc(1.25rem + 1.25rem/2); } }

img,
media {
  max-height: 100%;
  max-width: 100%; }

.messages {
  margin-bottom: 1.25rem; }

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  color: #33393d;
  font-family: "PlayfairDisplay", serif;
  font-size: "100%";
  line-height: 1.625em;
  -webkit-font-variant-ligatures: no-common-ligatures;
  font-variant-ligatures: no-common-ligatures;
  -webkit-font-feature-settings: 'liga' 0, 'clig' 0;
  font-feature-settings: 'liga' 0, 'clig' 0; }

h1.page-title {
  margin-top: 0;
  font-family: 'OpenSans';
  font-size: 1.625rem;
  color: #33393d; }

a {
  color: #0066cc;
  -webkit-transition: .25s;
  -o-transition: .25s;
  transition: .25s; }
  a:hover, a:focus {
    color: #465a75; }

.layout-content {
  -webkit-box-ordinal-group: 3;
  -ms-flex-order: 2;
  order: 2; }
  @media (max-width: 67.5em) {
    .layout-content {
      margin-bottom: 1.875rem; } }
  .sidebar-right .layout-content {
    width: calc(6.25rem + ((100% - 15rem) / 12 * 6)); }
    @media (max-width: 67.5em) {
      .sidebar-right .layout-content {
        width: calc(10rem + ((100% - 15rem) / 12 * 9)); } }
    @media (max-width: 60em) {
      .sidebar-right .layout-content {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        width: calc(13.75rem + (100% - 13.75rem)); } }
  .sidebar-right-none .layout-content {
    width: calc(10rem + ((100% - 15rem) / 12 * 9)); }
    @media (max-width: 60em) {
      .sidebar-right-none .layout-content {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        width: calc(13.75rem + (100% - 13.75rem)); } }

.region-footer {
  margin-top: 3.75rem;
  background-color: #6c9666;
  color: white; }
  .region-footer .inner-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 2.625rem 0; }
  @media (max-width: 48em) {
    .region-footer .inner-wrapper {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center; } }
  @media (max-width: 60em) {
    .region-footer {
      margin-top: 0; } }

.region-header {
  width: 100%;
  padding-top: 0.9375rem; }
  .region-header .branding {
    border-bottom: 15px solid #6c9666; }
    .region-header .branding .inner-wrapper {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      padding-bottom: 0.625rem; }
  .region-header .logo {
    width: 200px; }
  .region-header .site-name {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    margin: 0.125rem 0 0.375rem;
    font-size: 1.5rem;
    font-weight: bold;
    text-transform: uppercase; }
  @media (max-width: 60em) {
    .region-header .branding {
      margin-bottom: 0.9375rem;
      text-align: center; }
      .region-header .branding .inner-wrapper {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        padding-left: 0; } }
  @media (max-width: 48em) {
    .region-header .logo {
      width: 150px; }
    .region-header .site-name {
      font-size: 1.25rem; } }

.layout-sidebar-left {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 1;
  order: 1;
  width: calc(2.5rem + ((100% - 15rem) / 12 * 3));
  margin-right: 1.25rem; }
  @media (max-width: 60em) {
    .layout-sidebar-left {
      -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
      order: 3;
      width: calc(13.75rem + (100% - 13.75rem));
      margin-right: 0;
      padding-left: 0; }
      .layout-sidebar-left > * > * {
        margin-top: 1.875rem;
        margin-bottom: 1.875rem; } }

.layout-sidebar-right {
  -webkit-box-ordinal-group: 4;
  -ms-flex-order: 3;
  order: 3;
  width: calc(2.5rem + ((100% - 15rem) / 12 * 3));
  margin-left: 1.25rem; }
  @media (max-width: 67.5em) {
    .layout-sidebar-right {
      width: calc(10rem + ((100% - 15rem) / 12 * 9));
      margin-left: calc(2.5rem + ((100% - 15rem) / 12 * 3));
      padding-left: 1.25rem; } }
  @media (max-width: 60em) {
    .layout-sidebar-right {
      -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
      order: 2;
      width: calc(13.75rem + (100% - 13.75rem));
      margin-left: 0;
      padding-left: 0; } }

nav.breadcrumb {
  margin: 1.25rem 0;
  padding-bottom: 0; }
  nav.breadcrumb a {
    color: #33393d; }

a.btn,
input[type='submit'] {
  display: inline-block;
  min-width: 125px;
  padding: 10px 20px;
  background-color: #465a75;
  border: 0;
  font-family: 'OpenSans';
  font-weight: bold;
  color: white;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  -webkit-transition: .25s;
  -o-transition: .25s;
  transition: .25s; }
  a.btn:hover, a.btn:active,
  input[type='submit']:hover,
  input[type='submit']:active {
    background-color: rgba(70, 90, 117, 0.8); }
  a.btn.color-green,
  input[type='submit'].color-green {
    background-color: #6c9666;
    color: white; }
    a.btn.color-green:hover, a.btn.color-green:active,
    input[type='submit'].color-green:hover,
    input[type='submit'].color-green:active {
      background-color: #567851; }
  a.btn.color-white,
  input[type='submit'].color-white {
    background-color: white;
    color: #465a75; }
    a.btn.color-white:hover, a.btn.color-white:active,
    input[type='submit'].color-white:hover,
    input[type='submit'].color-white:active {
      background-color: rgba(255, 255, 255, 0.8); }

@media (max-width: 35.5em) {
  a.btn,
  input[type='submit'] {
    min-width: 0; } }

.responsive-menu-block-wrapper {
  padding-top: 0.625rem;
  text-align: center; }
  .responsive-menu-block-wrapper .menu-item {
    padding-top: 0; }
  .responsive-menu-block-wrapper .menu-item--expanded {
    list-style: none; }
  .responsive-menu-block-wrapper ul.sub-nav.menu {
    margin-left: 0; }
  .responsive-menu-block-wrapper .horizontal-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .responsive-menu-block-wrapper .horizontal-menu li {
      border-top: 1px solid white;
      border-right: 1px solid white; }
      .responsive-menu-block-wrapper .horizontal-menu li a {
        padding: .6em .8em .8em;
        line-height: 1.4em;
        text-decoration: none;
        color: black; }
  .responsive-menu-block-wrapper ul#horizontal-menu > li {
    margin: 0 0.625rem;
    border-right: 0; }
    .responsive-menu-block-wrapper ul#horizontal-menu > li > a {
      border-bottom: 0.3125rem solid transparent; }
  .responsive-menu-block-wrapper ul#horizontal-menu .menu-item--active-trail > a {
    font-weight: bold; }
  .responsive-menu-block-wrapper ul#horizontal-menu > .menu-item--active-trail > a {
    border-bottom: 0.3125rem solid #6c9666;
    border-right: 0; }
  .responsive-menu-block-wrapper ul#horizontal-menu li.sfHover a {
    background-color: whitesmoke; }
    .responsive-menu-block-wrapper ul#horizontal-menu li.sfHover a:hover, .responsive-menu-block-wrapper ul#horizontal-menu li.sfHover a:focus {
      background-color: #6c9666;
      color: white; }
  .responsive-menu-block-wrapper ul#horizontal-menu li:hover, .responsive-menu-block-wrapper ul#horizontal-menu li:focus {
    background-color: whitesmoke; }
  .responsive-menu-block-wrapper ul#horizontal-menu > li.sfHover {
    border-right: 0; }
  .responsive-menu-block-wrapper ul#horizontal-menu > .menu-item--active-trail.sfHover > a {
    border-bottom: 0.3125rem solid transparent; }

.responsive-menu-toggle {
  position: absolute; }

.responsive-menu-toggle-icon::before,
.responsive-menu-toggle-icon::after,
.responsive-menu-toggle-icon span.icon {
  background: #33393d; }

.layout-sidebar-left .block-menu h2 {
  margin-bottom: 0;
  font-family: 'OpenSans';
  font-size: 1.25rem;
  font-weight: bold;
  color: #33393d; }

.layout-sidebar-left .block-menu a {
  text-decoration: none; }

.layout-sidebar-left .block-menu ul.menu li.menu-item {
  margin-top: 0.375rem;
  font-family: 'PlayfairDisplay';
  font-weight: normal; }
  .layout-sidebar-left .block-menu ul.menu li.menu-item a {
    color: #33393d; }

.layout-sidebar-left .block-menu > ul.menu {
  margin-top: 0;
  margin-left: 0; }
  .layout-sidebar-left .block-menu > ul.menu > li.menu-item {
    font-family: 'OpenSans';
    font-size: 1.125rem;
    font-weight: bold; }
    .layout-sidebar-left .block-menu > ul.menu > li.menu-item > a {
      color: #6c9666; }

@media (max-width: 60em) {
  .layout-sidebar-left .block-menu {
    display: none; } }

.standard-copy h2 {
  font-family: 'OpenSans';
  font-size: 1.25rem;
  color: #465a75; }

.standard-copy h3 {
  font-family: 'OpenSans';
  font-size: 1.125rem;
  color: #465a75; }

.standard-copy ul,
.standard-copy ol {
  margin: 1em 0;
  padding-left: 2.5rem; }

table {
  width: 100%; }
  table caption {
    padding: 0.9375rem;
    background-color: #6c9666;
    font-family: 'OpenSans';
    font-weight: bold;
    color: white; }
  table thead {
    background-color: whitesmoke;
    border-bottom: 2px solid #666666;
    text-align: left;
    font-weight: bold;
    color: #465a75; }
    table thead th {
      padding: 0.9375rem 1.25rem; }
  table tbody {
    color: #33393d; }
    table tbody th,
    table tbody td {
      padding: 1.5625rem 1.25rem;
      border-bottom: 2px solid #666666; }
    table tbody th {
      border-right: 3px solid #666666;
      text-align: left; }

.block-nsbf-footer-contact-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  width: calc(8.75rem + ((100% - 15rem) / 12 * 8)); }
  .block-nsbf-footer-contact-block h2 {
    margin-top: 0;
    font-size: 1.5rem;
    text-transform: uppercase; }
  .block-nsbf-footer-contact-block p {
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 1em;
    text-indent: -1em; }
  .block-nsbf-footer-contact-block a {
    color: inherit; }
  .block-nsbf-footer-contact-block .layout {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    max-width: 31.25rem;
    font-family: 'OpenSans'; }
    .block-nsbf-footer-contact-block .layout > div {
      width: 50%; }
  .block-nsbf-footer-contact-block .phone {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
    margin-bottom: 1em;
    padding-right: 1.875rem; }
  .block-nsbf-footer-contact-block .fax {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
    margin-bottom: 1em;
    padding-left: 1.875rem; }
  .block-nsbf-footer-contact-block .address-physical {
    -webkit-box-ordinal-group: 4;
    -ms-flex-order: 3;
    order: 3;
    padding-right: 1.875rem; }
  .block-nsbf-footer-contact-block .address-mailing {
    -webkit-box-ordinal-group: 5;
    -ms-flex-order: 4;
    order: 4;
    padding-left: 1.875rem; }
  @media (max-width: 48em) {
    .block-nsbf-footer-contact-block {
      width: auto; }
      .block-nsbf-footer-contact-block h2 {
        font-size: 1.375rem;
        text-align: center; }
      .block-nsbf-footer-contact-block .fax,
      .block-nsbf-footer-contact-block .address-mailing {
        text-align: right; } }
  @media (max-width: 35.5em) {
    .block-nsbf-footer-contact-block h2 {
      font-size: 1.25rem; }
    .block-nsbf-footer-contact-block .layout > div {
      width: 100%;
      padding: 0;
      text-align: center; }
    .block-nsbf-footer-contact-block .phone {
      margin-bottom: 0; }
    .block-nsbf-footer-contact-block .address-physical {
      margin-bottom: 1em; } }

.block-nsbf-footer-social-media-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  width: calc(3.75rem + ((100% - 15rem) / 12 * 4)); }
  .block-nsbf-footer-social-media-block a {
    margin-right: 0.9375rem;
    text-decoration: none; }
    .block-nsbf-footer-social-media-block a:last-of-type {
      margin-right: 0; }
  .block-nsbf-footer-social-media-block svg {
    fill: white;
    height: 2.25rem;
    width: 2.25rem; }
    .block-nsbf-footer-social-media-block svg:hover, .block-nsbf-footer-social-media-block svg:focus {
      fill: rgba(255, 255, 255, 0.8);
      -webkit-transition: .25s;
      -o-transition: .25s;
      transition: .25s; }
  @media (max-width: 48em) {
    .block-nsbf-footer-social-media-block {
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      width: 100%;
      margin-top: 3.125rem; } }
  @media (max-width: 35.5em) {
    .block-nsbf-footer-social-media-block {
      margin-top: 2.1875rem; } }

.paragraph--type--columns-2 .field--name-field-columns-2-copy {
  -webkit-columns: 2;
  -moz-columns: 2;
  columns: 2;
  margin-top: 1rem; }
  .paragraph--type--columns-2 .field--name-field-columns-2-copy > div {
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
    break-inside: avoid-column;
    page-break-inside: avoid; }
    .paragraph--type--columns-2 .field--name-field-columns-2-copy > div:first-child > * {
      margin-top: 0; }

@media (max-width: 35.5em) {
  .paragraph--type--columns-2 .field--name-field-columns-2-copy {
    -webkit-columns: unset;
    -moz-columns: unset;
    columns: unset; } }

.paragraph--type--fellows-listing-block .item-list ul {
  -webkit-column-count: 2;
  -moz-column-count: 2;
  column-count: 2;
  list-style: none; }
  .paragraph--type--fellows-listing-block .item-list ul li {
    margin: 0; }

@media (max-width: 48em) {
  .paragraph--type--fellows-listing-block .item-list ul {
    -webkit-column-count: unset;
    -moz-column-count: unset;
    column-count: unset; } }

.paragraph--type--front-page-blocks-row {
  padding: 2.5rem 0; }
  .paragraph--type--front-page-blocks-row .field--name-field-fp-blocks-row-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between; }
    .paragraph--type--front-page-blocks-row .field--name-field-fp-blocks-row-item > .field__item {
      width: calc(3.75rem + ((100% - 15rem) / 12 * 4)); }
  .paragraph--type--front-page-blocks-row h2 {
    padding-bottom: 1.1875rem;
    border-bottom: 4px solid #465a75;
    font-family: 'OpenSans';
    text-align: center; }
  .paragraph--type--front-page-blocks-row .cta-link {
    text-align: center; }
    .paragraph--type--front-page-blocks-row .cta-link a {
      margin-top: 2.5rem; }
  @media (max-width: 48em) {
    .paragraph--type--front-page-blocks-row .field--name-field-fp-blocks-row-item {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .paragraph--type--front-page-blocks-row .field--name-field-fp-blocks-row-item > .field__item {
        width: calc(13.75rem + (100% - 13.75rem));
        margin-top: 1.875rem; }
        .paragraph--type--front-page-blocks-row .field--name-field-fp-blocks-row-item > .field__item:first-of-type {
          margin-top: 0; }
    .paragraph--type--front-page-blocks-row h2 {
      padding-bottom: 1rem; }
    .paragraph--type--front-page-blocks-row .cta-link a {
      margin-top: 1rem; } }

.paragraph--type--hero-slider .paragraph--type--hero-slide {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.paragraph--type--hero-slider img {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 66.67%;
  height: 33.33%; }

.paragraph--type--hero-slider .text-wrapper {
  position: absolute;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  overflow: hidden;
  width: 33.33%;
  height: 100%;
  padding: 1.625rem;
  background-color: #465a75;
  color: white; }

.paragraph--type--hero-slider h2 {
  margin: 0;
  font-family: 'OpenSans';
  font-weight: normal;
  line-height: 1.25em; }

.paragraph--type--hero-slider .cta-link {
  margin-top: 2rem; }

.paragraph--type--hero-slider .slick-prev,
.paragraph--type--hero-slider .slick-next {
  z-index: 10;
  width: 1.875rem;
  height: 1.875rem; }
  .paragraph--type--hero-slider .slick-prev::before,
  .paragraph--type--hero-slider .slick-next::before {
    font-size: 1.875rem; }

.paragraph--type--hero-slider .slick-prev {
  left: 0.9375rem; }

.paragraph--type--hero-slider .slick-next {
  right: 0.9375rem; }

@media (max-width: 60em) {
  .paragraph--type--hero-slider h2 {
    font-size: 1.25rem; } }

@media (max-width: 48em) {
  .paragraph--type--hero-slider .paragraph--type--hero-slide {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
  .paragraph--type--hero-slider img {
    width: 100%; }
  .paragraph--type--hero-slider .text-wrapper {
    position: static;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%; }
  .paragraph--type--hero-slider h2 {
    -ms-flex-negative: 999999;
    flex-shrink: 999999; }
  .paragraph--type--hero-slider .cta-link {
    margin-top: 0;
    margin-left: 0.9375rem; } }

@media (max-width: 35.5em) {
  .paragraph--type--hero-slider .text-wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding: 1rem; }
  .paragraph--type--hero-slider h2 {
    font-size: 1rem; }
  .paragraph--type--hero-slider .cta-link {
    margin-top: 1.125rem;
    margin-left: 0; } }

.paragraph--type--front-page-news-block {
  padding: 2.5rem 0;
  background-color: #6c9666;
  color: white; }
  .paragraph--type--front-page-news-block h2 {
    margin-top: 0;
    margin-bottom: 1.875rem;
    font-family: 'OpenSans';
    font-size: 1.75rem;
    font-weight: bold;
    text-align: center; }
  .paragraph--type--front-page-news-block a {
    color: white; }
  .paragraph--type--front-page-news-block .view-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between; }
  .paragraph--type--front-page-news-block .views-row {
    width: calc(2.5rem + ((100% - 15rem) / 12 * 3));
    padding-top: 0.3125rem;
    border-top: 4px solid white; }
    .paragraph--type--front-page-news-block .views-row .date {
      font-family: 'OpenSans';
      font-size: 0.875rem; }
    .paragraph--type--front-page-news-block .views-row .title {
      line-height: 1.25em; }
      .paragraph--type--front-page-news-block .views-row .title a {
        text-decoration: none; }
        .paragraph--type--front-page-news-block .views-row .title a:hover, .paragraph--type--front-page-news-block .views-row .title a:focus {
          text-decoration: underline; }
  .paragraph--type--front-page-news-block .more-link {
    margin-top: 1.25rem;
    font-family: 'OpenSans';
    text-transform: uppercase; }
    .paragraph--type--front-page-news-block .more-link a {
      text-decoration: none; }
      .paragraph--type--front-page-news-block .more-link a::after {
        content: ' \2192'; }
      .paragraph--type--front-page-news-block .more-link a:hover, .paragraph--type--front-page-news-block .more-link a:focus {
        text-decoration: underline; }
  @media (max-width: 60em) {
    .paragraph--type--front-page-news-block .view-content {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
    .paragraph--type--front-page-news-block .views-row {
      width: calc(6.25rem + ((100% - 15rem) / 12 * 6));
      margin-bottom: 2.5rem; } }
  @media (max-width: 48em) {
    .paragraph--type--front-page-news-block .views-row {
      width: calc(13.75rem + (100% - 13.75rem)); } }

.paragraph--type--inline-image.size--50 {
  width: 50%; }
  .paragraph--type--inline-image.size--50.position--center {
    margin: 0.9375rem auto; }
  .paragraph--type--inline-image.size--50.position--left {
    float: left;
    margin: 0.9375rem 0.9375rem 0.9375rem 0; }
  .paragraph--type--inline-image.size--50.position--right {
    float: right;
    margin: 0.9375rem 0; }
  @media (max-width: 35.5em) {
    .paragraph--type--inline-image.size--50 {
      width: 100%; }
      .paragraph--type--inline-image.size--50.position--left {
        margin-right: 0; }
      .paragraph--type--inline-image.size--50.position--right {
        margin-left: 0; } }

.paragraph--type--inline-image figure {
  margin: 0;
  background-color: whitesmoke; }
  .paragraph--type--inline-image figure img {
    display: grid; }
  .paragraph--type--inline-image figure figcaption {
    padding: .5em .75em;
    font-size: 0.875rem;
    line-height: 1.3; }

.paragraph--type--sidebar-copy {
  padding: 12.5%;
  background-color: whitesmoke; }
  .paragraph--type--sidebar-copy h2 {
    margin-top: 0;
    font-family: 'OpenSans';
    font-size: 1.125rem; }
  @media (max-width: 67.5em) {
    .paragraph--type--sidebar-copy {
      padding: 1.875rem; } }
  @media (max-width: 35.5em) {
    .paragraph--type--sidebar-copy {
      width: 100vw;
      margin-left: calc((100vw - 100%)/-2); } }

.js-tabs .js-tablist {
  list-style: none;
  padding: 0;
  border-bottom: 1px solid #6c9666; }

.js-tabs .js-tablist__item {
  display: inline-block;
  font-family: 'OpenSans'; }
  .js-tabs .js-tablist__item a {
    display: block;
    padding: .2em 1em;
    background-color: rgba(108, 150, 102, 0.25);
    color: #33393d;
    text-decoration: none;
    cursor: pointer; }
    .js-tabs .js-tablist__item a[aria-selected='true'] {
      background-color: #6c9666;
      color: white; }

.js-tabs .js-tabcontent[aria-hidden='true'] {
  display: none; }

@media (max-width: 35.5em) {
  .js-tabs .js-tablist__item {
    width: 100%; } }

.page-node-type-front-page .layout-content {
  width: 100%; }
  @media (max-width: 67.5em) {
    .page-node-type-front-page .layout-content {
      margin-bottom: 0.25rem; } }

.page-node-type-front-page .region-footer {
  margin-top: 0.25rem; }

.page-node-type-news .field--name-field-news-tags .tag {
  display: inline-block;
  margin-top: 5px;
  padding: 2px 10px;
  background-color: #6c9666;
  border-radius: 5px;
  font-family: 'OpenSans';
  font-size: 0.875rem;
  color: white; }

.view-news-aggregate-page.view-display-id-page_1 .views-row {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid #33393d; }
  .view-news-aggregate-page.view-display-id-page_1 .views-row:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: 0; }

.view-news-aggregate-page.view-display-id-page_1 .date {
  font-family: 'OpenSans'; }

.view-news-aggregate-page.view-display-id-page_1 .title {
  font-family: 'OpenSans';
  font-size: 1.5rem;
  font-weight: bold;
  color: #465a75; }

.view-news-aggregate-page.view-display-id-page_1 .summary {
  margin: 0.9375rem 0; }

.view-news-aggregate-page.view-display-id-page_1 .read-more a {
  font-weight: bold; }
  .view-news-aggregate-page.view-display-id-page_1 .read-more a::after {
    content: ' 	\2192'; }

.view-news-aggregate-page.view-display-id-page_1 .feed-icons {
  margin-top: 1.25rem; }

#views-exposed-form-news-aggregate-page-page-1 .form-item {
  width: 100%;
  overflow: hidden; }

#views-exposed-form-news-aggregate-page-page-1 > div:first-of-type > .form-item {
  margin-top: 0; }

#views-exposed-form-news-aggregate-page-page-1 label {
  display: block;
  font-family: 'OpenSans';
  font-weight: bold; }

#views-exposed-form-news-aggregate-page-page-1 select {
  width: 100%;
  max-width: 100%;
  font-family: 'OpenSans'; }
  #views-exposed-form-news-aggregate-page-page-1 select option {
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: pre-wrap; }

.block-views-blocknews-recent-news-block-block-1 h2 {
  margin-top: 0;
  border-bottom: 1px solid #33393d;
  font-family: 'OpenSans';
  font-size: 1.125rem; }

.block-views-blocknews-recent-news-block-block-1 .views-row {
  margin-top: 1.25rem; }
  .block-views-blocknews-recent-news-block-block-1 .views-row:first-of-type {
    margin-top: 0; }

.block-views-blocknews-recent-news-block-block-1 .date {
  font-family: 'OpenSans';
  font-size: 0.75rem;
  line-height: 1.25em; }

.block-views-blocknews-recent-news-block-block-1 .title {
  line-height: 1.25em; }
  .block-views-blocknews-recent-news-block-block-1 .title a {
    text-decoration: none; }
    .block-views-blocknews-recent-news-block-block-1 .title a:hover, .block-views-blocknews-recent-news-block-block-1 .title a:focus {
      text-decoration: underline; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhcmlhYmxlcy9fZ3JpZC5zY3NzIiwidmFyaWFibGVzL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19mb3Jtcy5zY3NzIiwiYWJzdHJhY3Rpb25zL19nZW5lcmljX21peGlucy5zY3NzIiwiYmFzZS9fbGF5b3V0LnNjc3MiLCJ2YXJpYWJsZXMvX2NvbG9ycy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L19zdS1tYXRoLnNjc3MiLCJiYXNlL19tZWRpYS5zY3NzIiwiYmFzZS9fbWVzc2FnZXMuc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsInJlZ2lvbnMvX2NvbnRlbnQuc2NzcyIsInJlZ2lvbnMvX2Zvb3Rlci5zY3NzIiwicmVnaW9ucy9faGVhZGVyLnNjc3MiLCJyZWdpb25zL19zaWRlYmFyX2xlZnQuc2NzcyIsInJlZ2lvbnMvX3NpZGViYXJfcmlnaHQuc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19zdGFuZGFyZF9jb3B5LnNjc3MiLCJjb21wb25lbnRzL190YWJsZXMuc2NzcyIsImJsb2Nrcy9fZm9vdGVyX2NvbnRhY3RfYmxvY2suc2NzcyIsImJsb2Nrcy9fZm9vdGVyX3NvY2lhbF9tZWRpYV9ibG9jay5zY3NzIiwicGFyYWdyYXBocy9fY29sdW1uc18yLnNjc3MiLCJwYXJhZ3JhcGhzL19mZWxsb3dzX2xpc3RpbmdfYmxvY2suc2NzcyIsInBhcmFncmFwaHMvX2Zyb250X3BhZ2VfYmxvY2tzX3Jvdy5zY3NzIiwicGFyYWdyYXBocy9fZnJvbnRfcGFnZV9oZXJvX3NsaWRlci5zY3NzIiwicGFyYWdyYXBocy9fZnJvbnRfcGFnZV9uZXdzX2Jsb2NrLnNjc3MiLCJwYXJhZ3JhcGhzL19pbmxpbmVfaW1hZ2Uuc2NzcyIsInBhcmFncmFwaHMvX3NpZGViYXJfY29weS5zY3NzIiwicGFyYWdyYXBocy9fdGFicy5zY3NzIiwibm9kZXMvX2Zyb250X3BhZ2Uuc2NzcyIsIm5vZGVzL19uZXdzLnNjc3MiLCJ2aWV3cy9fbmV3c19hZ2dyZWdhdGVfcGFnZS5zY3NzIiwidmlld3MvX25ld3NfcmVjZW50X25ld3NfYmxvY2suc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQ0E7OztFQVFFLCtCQUE4QjtFQUc5Qix1QkFBc0IsRUFDdkI7O0FDdkREO0VBQ0Usd0JBQXVCO0VBQ3ZCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsa0lBQzRELEVBQUE7O0FBRzlEO0VBQ0Usd0JBQXVCO0VBQ3ZCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsZ0lBQzJELEVBQUE7O0FBRzdEO0VBQ0Usd0JBQXVCO0VBQ3ZCLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsNEhBQ3lELEVBQUE7O0FBRzNEO0VBQ0Usd0JBQXVCO0VBQ3ZCLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsd0lBQytELEVBQUE7O0FBR2pFO0VBQ0UsK0JBQThCO0VBQzlCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsZ0pBQ21FLEVBQUE7O0FBR3JFO0VBQ0UsK0JBQThCO0VBQzlCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsOElBQ2tFLEVBQUE7O0FBR3BFO0VBQ0UsK0JBQThCO0VBQzlCLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsMElBQ2dFLEVBQUE7O0FBR2xFO0VBQ0UsK0JBQThCO0VBQzlCLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsc0pBQ3NFLEVBQUE7O0FDNUR0RTtFQUVJLHNCQUFxQjtFQUNyQixXQUFVO0VBQ1Ysd0JDa0Q2QixFRGpEOUI7O0FBTEg7RUFRSSxXQUFVLEVBQ1g7O0FBVEg7RUFhTSwyQkFBZ0MsRUFDakM7O0FBZEw7RUFpQk0sZUNxQzJCO0VEcEMzQix3QkNvQzJCLEVEbkM1Qjs7QUNRSDtFRDNCRjtJQXdCTSxZQUFXLEVBQ1o7RUF6Qkw7SUE0Qk0sWUFBVztJQUNYLGdCQUFlLEVB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QjtFNkJwRC9CLHFCN0JvRCtCO0U2Qm5EL0IsOEIzQk93QixFMkJBekI7RUFYSDtJQU9NLGNBQWE7SUFDYixlQUFjO0lBQ2QsY0FBYSxFQUNkOztBQVZMO0VBY0ksd0JBQXVCLEVBQ3hCOztBQWZIO0VBa0JJLHdCQUF1QjtFQUN2QixrQjdCb0MrQjtFNkJuQy9CLGtCQUFpQjtFQUNqQixlM0JkcUIsRTJCZXRCOztBQXRCSDtFQXlCSSxvQkFBbUIsRUFDcEI7O0FBMUJIO0VBOEJNLGtCQUFpQixFQUtsQjtFQW5DTDtJQWlDUSxtQkFBa0IsRUFDbkI7O0FBbENQO0VBdUNJLG9CN0JnQitCLEU2QmZoQzs7QUFHSDtFQUVJLFlBQVc7RUFDWCxpQkFBZ0IsRUFDakI7O0FBSkg7RUFTUSxjQUFhLEVBQ2Q7O0FBVlA7RUFlSSxlQUFjO0VBQ2Qsd0JBQXVCO0VBQ3ZCLGtCQUFpQixFQUNsQjs7QUFsQkg7RUFxQkksWUFBVztFQUNYLGdCQUFlO0VBQ2Ysd0JBQXVCLEVBTXhCO0VBN0JIO0lBMEJNLDJCQUF1QjtJQUF2Qix3QkFBdUI7SUFDdkIsc0JBQXFCLEVBQ3RCOztBQ3ZFTDtFQUVJLGNBQWE7RUFDYixpQzVCUXdCO0U0QlB4Qix3QkFBdUI7RUFDdkIsb0I5QmtEK0IsRThCakRoQzs7QUFOSDtFQVNJLG9COUI4QytCLEU4QnpDaEM7RUFkSDtJQVlNLGNBQWEsRUFDZDs7QUFiTDtFQWlCSSx3QkFBdUI7RUFDdkIsbUI5QnFDK0I7RThCcEMvQixvQkFBbUIsRUFDcEI7O0FBcEJIO0VBdUJJLG9CQUFtQixFQVVwQjtFQWpDSDtJQTBCTSxzQkFBcUIsRUFNdEI7SUFoQ0w7TUE4QlEsMkJBQTBCLEVBQzNCIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCcmVha3BvaW50cy5cbi8vIEBUT0RPOiBDaGFuZ2UgdG8gYnJlYWtwb2ludC1zYXNzIGh0dHBzOi8vZ2l0aHViLmNvbS9hdC1pbXBvcnQvYnJlYWtwb2ludC93aWtpL1Jlc3BvbmQtVG9cbiRicmVha3BvaW50czogKFxuICAvLyBCYXNlZCBvbiBhIGJhc2UgZm9udC1zaXplIG9mIDE2cHguXG4gICdtb2JpbGUnOiAoXG4gICAgbWF4LXdpZHRoOiAzNS41ZW0gLy8gNTY4cHhcbiAgKSxcbiAgJ3RhYmxldCc6IChcbiAgICBtYXgtd2lkdGg6IDQ4ZW0gLy8gNzY4cHhcbiAgKSxcbiAgJ3NtYWxsJzogKFxuICAgIG1heC13aWR0aDogNjBlbSAvLyA5NjBweFxuICApLFxuICAnbWVkaXVtJzogKFxuICAgIG1heC13aWR0aDogNjcuNWVtIC8vIDEwODBweFxuICApLFxuICAnbGFyZ2UnOiAoXG4gICAgbWF4LXdpZHRoOiA3NWVtIC8vIDEyMDBweFxuICApLFxuICAnbGFyZ2Utdy1wYWRkaW5nJzogKFxuICAgIG1heC13aWR0aDogNzcuNWVtIC8vIDEyNDBweFxuICApLFxuICAnbWF4JzogKFxuICAgIG1pbi13aWR0aDogNzUuMDFlbSAvLyAxMjAwLjE2cHhcbiAgKSxcbik7XG4vLyBTdXN5IENvbmZpZy5cbi8vIFNlZSBodHRwOi8vb2RkYmlyZC5uZXQvMjAxNy8wNi8xMy9zdXN5LXNwcmVhZC8gZm9yIHNwcmVhZC9zcHJlYWQtY29udGFpbmVyLlxuJHN1c3k6IChcbiAgY29sdW1uczogc3VzeS1yZXBlYXQoMTIpLFxuICBndXR0ZXJzOiAxLjI1cmVtLFxuICBjb250YWluZXItc3ByZWFkOiAnd2lkZScsXG4gIHNwcmVhZDogJ25hcnJvdycsXG4gIGNvbnRhaW5lcjogNzVyZW0sIC8vIDEyMDBweFxuICAvLyAgZGVidWc6IChcbiAgLy8gICAgaW1hZ2U6IHNob3csXG4gIC8vICAgIGNvbG9yOiByZ2JhKCM2NmYsIC4yNSksXG4gIC8vICAgIG91dHB1dDogYmFja2dyb3VuZCxcbiAgLy8gICksXG4pO1xuXG4kZ3JpZC1tYXgtd2lkdGg6IG1hcC1nZXQoJHN1c3ksICdjb250YWluZXInKTtcblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcblxuICAvLyBGaXJlZm94IChkZXNrdG9wIG9yIEFuZHJvaWQpIDI4LVxuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgLy8gQ2hyb21lIDktLCBTYWZhcmkgNS0sIGlPUyA0LjItLCBBbmRyb2lkIDMtLCBCbGFja2JlcnJ5IDctXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAvL0ZpcmVmb3ggMjkrLCBJRSA4KywgQ2hyb21lIDEwKywgU2FmYXJpIDUuMSssIE9wZXJhIDkuNSssIGlPUyA1KywgT3BlcmEgTWluaSBBbnl0aGluZywgQmxhY2tiZXJyeSAxMCssIEFuZHJvaWQgNCsgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IHVybCgnLi4vZm9udHMvb3BlbnNhbnMtcmVndWxhci13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL29wZW5zYW5zLXJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IHVybCgnLi4vZm9udHMvb3BlbnNhbnMtaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvb3BlbnNhbnMtaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHNyYzogdXJsKCcuLi9mb250cy9vcGVuc2Fucy1ib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvb3BlbnNhbnMtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcmM6IHVybCgnLi4vZm9udHMvb3BlbnNhbnMtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL29wZW5zYW5zLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1BsYXlmYWlyRGlzcGxheSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3BsYXlmYWlyZGlzcGxheS1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvcGxheWZhaXJkaXNwbGF5LXJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1BsYXlmYWlyRGlzcGxheSc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3BsYXlmYWlyZGlzcGxheS1pdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy9wbGF5ZmFpcmRpc3BsYXktaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpckRpc3BsYXknO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcmM6IHVybCgnLi4vZm9udHMvcGxheWZhaXJkaXNwbGF5LWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy9wbGF5ZmFpcmRpc3BsYXktYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUGxheWZhaXJEaXNwbGF5JztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3BsYXlmYWlyZGlzcGxheS1ib2xkaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvcGxheWZhaXJkaXNwbGF5LWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbiRiYXNlLWZvbnQtc2l6ZTogMTZweDtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNnB4O1xuJGJhc2UtZm9udC1mYW1pbHk6ICdQbGF5ZmFpckRpc3BsYXknLCBzZXJpZjtcbiIsIi53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSB7XG4gIC5zaWRlYmFyLXJpZ2h0LW5vbmUgJiB7XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMHB4KTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogNjUlO1xuICAgIH1cblxuICAgIC5mb3JtLXR5cGUtY2hlY2tib3gge1xuICAgICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3tyZW0oNDBweCl9KTtcbiAgICAgIH1cblxuICAgICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogcmVtKDIwcHgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg1cHgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8odGFibGV0KSB7XG4gICAgICBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLXR5cGUtY2hlY2tib3gge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7cmVtKDQwcHgpfSk7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICB3aWR0aDogcmVtKDIwcHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItcmlnaHQgJiB7XG4gICAgbGFiZWwsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdzdWJtaXQnXSksIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmZvcm0tdHlwZS1jaGVja2JveCB7XG4gICAgICBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAje3JlbSg0MHB4KX0pO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiByZW0oMjBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9yaXpvbnRhbC1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiBtYXAtZ2V0KCRzdXN5LCAnY29udGFpbmVyJyk7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5AbWl4aW4gcmVzcG9uZC10bygkbmFtZSkge1xuICAvLyBSZXRyaWV2ZXMgdGhlIHZhbHVlIGZyb20gdGhlIGtleVxuICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG5cbiAgLy8gSWYgdGhlIGtleSBleGlzdHMgaW4gdGhlIG1hcFxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgIC8vIFByaW50cyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIHRoZSB2YWx1ZVxuICAgIEBtZWRpYSAje2luc3BlY3QobWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7IC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCBpbiB0aGUgbWFwXG4gICAgQGVycm9yICdVbmZvcnR1bmF0ZWx5LCBubyB2YWx1ZSBjb3VsZCBiZSByZXRyaWV2ZWQgZnJvbSBgI3skbmFtZX1gLiAnXG4gICAgKyAnUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgIG1hcC4nO1xuICB9XG59XG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4ge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pbXBvcnRhbnRcbiAgd2lkdGg6IDFweDtcbn1cblxuLy8gQ29udmVydCBweCB0byByZW1cbkBmdW5jdGlvbiByZW0oJHBpeGVscywgJGNvbnRleHQ6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgKHVuaXRsZXNzKCRwaXhlbHMpKSB7XG4gICAgJHBpeGVsczogJHBpeGVscyAqIDFweDtcbiAgfVxuXG4gIEBpZiAodW5pdGxlc3MoJGNvbnRleHQpKSB7XG4gICAgJGNvbnRleHQ6ICRjb250ZXh0ICogMXB4O1xuICB9XG5cbiAgQHJldHVybiAkcGl4ZWxzIC8gJGNvbnRleHQgKiAxcmVtO1xufVxuXG4vLyBDb252ZXJ0IHB4IHRvIGVtXG5AZnVuY3Rpb24gZW0oJHBpeGVscywgJGNvbnRleHQ6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgKHVuaXRsZXNzKCRwaXhlbHMpKSB7XG4gICAgJHBpeGVsczogJHBpeGVscyAqIDFweDtcbiAgfVxuXG4gIEBpZiAodW5pdGxlc3MoJGNvbnRleHQpKSB7XG4gICAgJGNvbnRleHQ6ICRjb250ZXh0ICogMXB4O1xuICB9XG5cbiAgQHJldHVybiAkcGl4ZWxzIC8gJGNvbnRleHQgKiAxZW07XG59XG5cbi8vIFN0cmlwIHVuaXRzXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuIiwiYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbn1cblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgbWl4aW5zLWJlZm9yZS1kZWNsYXJhdGlvbnNcbi8vIFRoaXMgbXVzdCBhIGJ1Zy5cbi5sYXlvdXQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiBjYWxjKCN7JGdyaWQtbWF4LXdpZHRofSArICN7cmVtKDQwcHgpfSk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIHJlbSgyMHB4KTtcbn1cblxuaGVhZGVyLnNpdGUtaGVhZGVyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IHNwYW4oMTIgb2YgMTIpO1xufVxuXG5tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogc3BhbigxMiBvZiAxMik7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhtZWRpdW0pIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cblxuLm92ZXJmbG93LWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDB2dztcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTAwJSkvLTIpO1xuXG4gIC5pbm5lci13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgbWFyZ2luOiAwIGNhbGMoKDEwMHZ3IC0gI3skZ3JpZC1tYXgtd2lkdGh9KS8yICsgI3tndXR0ZXIoKX0vMik7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC10byhsYXJnZS13LXBhZGRpbmcpIHtcbiAgLm92ZXJmbG93LWNvbnRhaW5lciB7XG4gICAgLmlubmVyLXdyYXBwZXIge1xuICAgICAgbWFyZ2luOiAwIGNhbGMoI3tyZW0oMjBweCl9ICsgI3tndXR0ZXIoKX0vMik7XG4gICAgfVxuICB9XG59XG4iLCIkd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KTsgLy8gI2ZmZmZmZlxuJHdoaXRlLTgwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC44KTsgLy8gI2ZmZmZmZlxuJGJsYWNrOiByZ2IoMCwgMCwgMCk7IC8vICMwMDAwMDBcblxuJGdyZWVuOiByZ2IoMTA4LCAxNTAsIDEwMik7IC8vICM2Yzk2NjZcbiRncmVlbi0yNTogcmdiYSgxMDgsIDE1MCwgMTAyLCAuMjUpOyAvLyAjNmM5NjY2XG4kZ3JlZW4tODA6IHJnYmEoMTA4LCAxNTAsIDEwMiwgLjgpOyAvLyAjNmM5NjY2XG4kcHVycGxlOiByZ2IoNzAsIDkwLCAxMTcpOyAvLyAjNDY1YTc1XG4kcHVycGxlLTgwOiByZ2JhKDcwLCA5MCwgMTE3LCAuOCk7IC8vICM0NjVhNzVcbiRibHVlOiByZ2IoMCwgMTAyLCAyMDQpOyAvLyAjMDA2NmNjXG5cbiRncmF5LXN0ZWVsOiByZ2IoNTEsIDU3LCA2MSk7IC8vICMzMzM5M2RcbiRncmF5LW1lZGl1bTogcmdiKDEwMiwgMTAyLCAxMDIpOyAvLyAjNjY2NjY2XG4kZ3JheS1saWdodDogcmdiKDI0NSwgMjQ1LCAyNDUpOyAvLyAjZjVmNWY1XG4iLCIvLy8gR3JpZCBNYXRoIEVuZ2luZVxuLy8vID09PT09PT09PT09PT09PT1cbi8vLyBUaGUgYHN1YCBmdW5jdGlvbnMgZ2l2ZSB5b3UgZGlyZWN0IGFjY2VzcyB0byB0aGUgbWF0aCBsYXllcixcbi8vLyB3aXRob3V0IGFueSBzeW50YXgtc3VnYXIgbGlrZSBzaG9ydGhhbmQgcGFyc2luZywgYW5kIG5vcm1hbGl6YXRpb24uXG4vLy8gSWYgeW91IHByZWZlciBuYW1lZCBhcmd1bWVudHMsIGFuZCBzdHJpcHBlZC1kb3duIHN5bnRheCxcbi8vLyB5b3UgY2FuIHVzZSB0aGVzZSBmdW5jdGlvbnMgZGlyZWN0bHkgaW4geW91ciBjb2RlIOKAk1xuLy8vIHJlcGxhY2luZyBgc3BhbmAsIGBndXR0ZXJgLCBhbmQgYHNsaWNlYC5cbi8vL1xuLy8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgYWxzbyB1c2VmdWxcbi8vLyBmb3IgYnVpbGRpbmcgbWl4aW5zIG9yIG90aGVyIGV4dGVuc2lvbnMgdG8gU3VzeS5cbi8vLyBBcHBseSB0aGUgU3VzeSBzeW50YXggdG8gbmV3IG1peGlucyBhbmQgZnVuY3Rpb25zLFxuLy8vIHVzaW5nIG91ciBcIlBsdWdpbiBIZWxwZXJzXCIsXG4vLy8gb3Igd3JpdGUgeW91ciBvd24gc3ludGF4IGFuZCBwYXNzIHRoZSBub3JtYWxpemVkIHJlc3VsdHMgYWxvbmdcbi8vLyB0byBgc3VgIGZvciBjb21waWxhdGlvbi5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy9cbi8vLyBAc2VlIHN1LXNwYW5cbi8vLyBAc2VlIHN1LWd1dHRlclxuLy8vIEBzZWUgc3Utc2xpY2Vcbi8vLyBAaWdub3JlIF9zdS1zdW1cbi8vLyBAaWdub3JlIF9zdS1jYWxjLXNwYW5cbi8vLyBAaWdub3JlIF9zdS1jYWxjLXN1bVxuLy8vIEBpZ25vcmUgX3N1LW5lZWRzLWNhbGMtb3V0cHV0XG5cblxuXG4vLyBTdSBTcGFuXG4vLyAtLS0tLS0tXG4vLy8gQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyBhIENTUy1yZWFkeSBzcGFuIHdpZHRoLFxuLy8vIGJhc2VkIG9uIG5vcm1hbGl6ZWQgc3BhbiBhbmQgY29udGV4dCBkYXRhIOKAk1xuLy8vIGEgbG93LWxldmVsIHZlcnNpb24gb2YgYHN1c3ktc3BhbmAsXG4vLy8gd2l0aCBhbGwgb2YgdGhlIGxvZ2ljIGFuZCBub25lIG9mIHRoZSBzeW50YXggc3VnYXIuXG4vLy9cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCB1bml0bGVzcyBudW1iZXJzIHdpbGwgcmV0dXJuIGAlYCB2YWx1ZXMuXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggY29tcGFyYWJsZSB1bml0c1xuLy8vICAgd2lsbCByZXR1cm4gYSB2YWx1ZSBpbiB0aGUgdW5pdHMgcHJvdmlkZWQuXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggYSBtaXggb2YgdW5pdHMsXG4vLy8gICBvciBhIGNvbWJpbmF0aW9uIG9mIHVudGlsZXNzIG51bWJlcnMgYW5kIHVuaXQtbGVuZ3Rocyxcbi8vLyAgIHdpbGwgcmV0dXJuIGEgYGNhbGMoKWAgc3RyaW5nLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAc2VlIHN1c3ktc3BhblxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXIgfCBsaXN0fSAkc3BhbiAtXG4vLy8gICBOdW1iZXIgb3IgbGlzdCBvZiBncmlkIGNvbHVtbnMgdG8gc3BhblxuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGF2YWlsYWJsZVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYHNwYW5gIGNvdW50XG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkY29udGFpbmVyLXNwcmVhZCBbJHNwcmVhZF0gLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBjb2x1bW5zYCBjb3VudFxuLy8vIEBwYXJhbSB7aW50ZWdlcn0gJGxvY2F0aW9uIFsxXSAtXG4vLy8gICBPcHRpb25hbCBwb3NpdGlvbiBvZiBzdWItc3BhbiBhbW9uZyBmdWxsIHNldCBvZiBjb2x1bW5zXG4vLy9cbi8vLyBAcmV0dXJuIHtsZW5ndGh9IC1cbi8vLyAgIFJlbGF0aXZlIG9yIHN0YXRpYyBsZW5ndGggb2YgYSBzcGFuIG9uIHRoZSBncmlkXG5AZnVuY3Rpb24gc3Utc3BhbihcbiAgJHNwYW4sXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJGNvbnRhaW5lci1zcHJlYWQ6ICRzcHJlYWQsXG4gICRsb2NhdGlvbjogMVxuKSB7XG4gICRzcGFuOiBzdS12YWxpZC1zcGFuKCRzcGFuKTtcbiAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAkZ3V0dGVyczogc3UtdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG4gICRzcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkc3ByZWFkKTtcblxuICBAaWYgKHR5cGUtb2YoJHNwYW4pID09ICdudW1iZXInKSB7XG4gICAgQGlmIChub3QgdW5pdGxlc3MoJHNwYW4pKSB7XG4gICAgICBAcmV0dXJuICRzcGFuO1xuICAgIH1cblxuICAgICRsb2NhdGlvbjogc3UtdmFsaWQtbG9jYXRpb24oJHNwYW4sICRsb2NhdGlvbiwgJGNvbHVtbnMpO1xuICAgICRzcGFuOiBzdS1zbGljZSgkc3BhbiwgJGNvbHVtbnMsICRsb2NhdGlvbiwgJHZhbGlkYXRlOiBmYWxzZSk7XG4gIH1cblxuICBAaWYgX3N1LW5lZWRzLWNhbGMtb3V0cHV0KCRzcGFuLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQsIG5vdCAndmFsaWRhdGUnKSB7XG4gICAgQHJldHVybiBfc3UtY2FsYy1zcGFuKCRzcGFuLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQsICRjb250YWluZXItc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJyk7XG4gIH1cblxuICAkc3Bhbi13aWR0aDogX3N1LXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQsICR2YWxpZGF0ZTogZmFsc2UpO1xuXG4gIEBpZiB1bml0bGVzcygkc3Bhbi13aWR0aCkge1xuICAgICRjb250YWluZXItc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJGNvbnRhaW5lci1zcHJlYWQpO1xuICAgICRjb250YWluZXI6IF9zdS1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCAkY29udGFpbmVyLXNwcmVhZCwgJHZhbGlkYXRlOiBmYWxzZSk7XG4gICAgQHJldHVybiBwZXJjZW50YWdlKCRzcGFuLXdpZHRoIC8gJGNvbnRhaW5lcik7XG4gIH1cblxuICBAcmV0dXJuICRzcGFuLXdpZHRoO1xufVxuXG5cblxuLy8gU3UgR3V0dGVyXG4vLyAtLS0tLS0tLS1cbi8vLyBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIGEgQ1NTLXJlYWR5IGd1dHRlciB3aWR0aCxcbi8vLyBiYXNlZCBvbiBub3JtYWxpemVkIGdyaWQgZGF0YSDigJNcbi8vLyBhIGxvdy1sZXZlbCB2ZXJzaW9uIG9mIGBzdXN5LWd1dHRlcmAsXG4vLy8gd2l0aCBhbGwgb2YgdGhlIGxvZ2ljIGFuZCBub25lIG9mIHRoZSBzeW50YXggc3VnYXIuXG4vLy9cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCB1bml0bGVzcyBudW1iZXJzIHdpbGwgcmV0dXJuIGAlYCB2YWx1ZXMuXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggY29tcGFyYWJsZSB1bml0c1xuLy8vICAgd2lsbCByZXR1cm4gYSB2YWx1ZSBpbiB0aGUgdW5pdHMgcHJvdmlkZWQuXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggYSBtaXggb2YgdW5pdHMsXG4vLy8gICBvciBhIGNvbWJpbmF0aW9uIG9mIHVudGlsZXNzIG51bWJlcnMgYW5kIHVuaXQtbGVuZ3Rocyxcbi8vLyAgIHdpbGwgcmV0dXJuIGEgYGNhbGMoKWAgc3RyaW5nLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAc2VlIHN1c3ktZ3V0dGVyXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJGNvbnRhaW5lci1zcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBjb2x1bW5zYCBjb3VudFxuLy8vXG4vLy8gQHJldHVybiB7bGVuZ3RofSAtXG4vLy8gICBSZWxhdGl2ZSBvciBzdGF0aWMgbGVuZ3RoIG9mIG9uZSBndXR0ZXIgaW4gYSBncmlkXG5AZnVuY3Rpb24gc3UtZ3V0dGVyKFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRjb250YWluZXItc3ByZWFkXG4pIHtcbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgIEBpZiAoJGd1dHRlcnMgPT0gMCkgb3IgKG5vdCB1bml0bGVzcygkZ3V0dGVycykpIHtcbiAgICAgIEByZXR1cm4gJGd1dHRlcnM7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9zdS1uZWVkcy1jYWxjLW91dHB1dCgkZ3V0dGVycywgJGNvbHVtbnMsICRndXR0ZXJzLCAtMSwgbm90ICd2YWxpZGF0ZScpIHtcbiAgICBAcmV0dXJuIF9zdS1jYWxjLXNwYW4oJGd1dHRlcnMsICRjb2x1bW5zLCAkZ3V0dGVycywgLTEsICRjb250YWluZXItc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJyk7XG4gIH1cblxuICAkY29udGFpbmVyOiBfc3Utc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgJGNvbnRhaW5lci1zcHJlYWQpO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlcnMgLyAkY29udGFpbmVyKTtcbn1cblxuXG5cbi8vIFN1IFNsaWNlXG4vLyAtLS0tLS0tLVxuLy8vIFJldHVybnMgYSBsaXN0IG9mIGNvbHVtbnNcbi8vLyBiYXNlZCBvbiBhIGdpdmVuIHNwYW4vbG9jYXRpb24gc2xpY2Ugb2YgdGhlIGdyaWQg4oCTXG4vLy8gYSBsb3ctbGV2ZWwgdmVyc2lvbiBvZiBgc3VzeS1zbGljZWAsXG4vLy8gd2l0aCBhbGwgb2YgdGhlIGxvZ2ljIGFuZCBub25lIG9mIHRoZSBzeW50YXggc3VnYXIuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBzZWUgc3VzeS1zbGljZVxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRzcGFuIC1cbi8vLyAgIE51bWJlciBvZiBncmlkIGNvbHVtbnMgdG8gc3BhblxuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRsb2NhdGlvbiBbMV0gLVxuLy8vICAgU3RhcnRpbmcgaW5kZXggb2YgYSBzcGFuIGluIHRoZSBsaXN0IG9mIGNvbHVtbnNcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHtsaXN0fSAtXG4vLy8gICBTdWJzZXQgbGlzdCBvZiBncmlkIGNvbHVtbnMsIGJhc2VkIG9uIHNwYW4gYW5kIGxvY2F0aW9uXG5AZnVuY3Rpb24gc3Utc2xpY2UoXG4gICRzcGFuLFxuICAkY29sdW1ucyxcbiAgJGxvY2F0aW9uOiAxLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkY29sdW1uczogc3UtdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICAgJGxvY2F0aW9uOiBzdS12YWxpZC1sb2NhdGlvbigkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG4gIH1cblxuICAkZmxvb3I6IGZsb29yKCRzcGFuKTtcbiAgJHN1Yi1jb2x1bW5zOiAoKTtcblxuICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRvICgkbG9jYXRpb24gKyAkZmxvb3IpIHtcbiAgICAkc3ViLWNvbHVtbnM6IGFwcGVuZCgkc3ViLWNvbHVtbnMsIG50aCgkY29sdW1ucywgJGkpKTtcbiAgfVxuXG4gIEBpZiAkZmxvb3IgIT0gJHNwYW4ge1xuICAgICRyZW1haW5kZXI6ICRzcGFuIC0gJGZsb29yO1xuICAgICRjb2x1bW46ICRsb2NhdGlvbiArICRmbG9vcjtcbiAgICAkc3ViLWNvbHVtbnM6IGFwcGVuZCgkc3ViLWNvbHVtbnMsIG50aCgkY29sdW1ucywgJGNvbHVtbikgKiAkcmVtYWluZGVyKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN1Yi1jb2x1bW5zO1xufVxuXG5cblxuLy8gU3UgU3VtXG4vLyAtLS0tLS1cbi8vLyBHZXQgdGhlIHRvdGFsIHN1bSBvZiBjb2x1bW4tdW5pdHMgaW4gYSBsYXlvdXQuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXIgaW4gY29sdW1uLWNvbXBhcmFibGUgdW5pdHNcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBjb2x1bW5zYCBjb3VudFxuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlcn0gLVxuLy8vICAgVG90YWwgc3VtIG9mIGNvbHVtbi11bml0cyBpbiBhIGdyaWRcbkBmdW5jdGlvbiBfc3Utc3VtKFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1zcGFuKCRjb2x1bW5zKTtcbiAgICAkZ3V0dGVyczogc3UtdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG4gICAgJHNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRzcHJlYWQpO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIGNvbHVtbi1zdW1cbiAgJGNvbHVtbi1zdW06IDA7XG4gIEBlYWNoICRjb2x1bW4gaW4gJGNvbHVtbnMge1xuICAgICRjb2x1bW4tc3VtOiAkY29sdW1uLXN1bSArICRjb2x1bW47XG4gIH1cblxuICAkZ3V0dGVyLXN1bTogKGNlaWwobGVuZ3RoKCRjb2x1bW5zKSkgKyAkc3ByZWFkKSAqICRndXR0ZXJzO1xuICAkdG90YWw6IGlmKCgkZ3V0dGVyLXN1bSA+IDApLCAkY29sdW1uLXN1bSArICRndXR0ZXItc3VtLCAkY29sdW1uLXN1bSk7XG5cbiAgQHJldHVybiAkdG90YWw7XG59XG5cblxuXG4vLyBTdSBDYWxjXG4vLyAtLS0tLS0tXG4vLy8gUmV0dXJuIGEgdXNhYmxlIHNwYW4gd2lkdGggYXMgYSBgY2FsYygpYCBmdW5jdGlvbixcbi8vLyBpbiBvcmRlciB0byBjcmVhdGUgbWl4ZWQtdW5pdCBncmlkcy5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlciB8IGxpc3R9ICRzcGFuIC1cbi8vLyAgIFByZS1zbGljZWQgbGlzdCBvZiBncmlkIGNvbHVtbnMgdG8gc3BhblxuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGF2YWlsYWJsZVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYHNwYW5gIGNvdW50XG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkY29udGFpbmVyLXNwcmVhZCBbJHNwcmVhZF0gLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBjb2x1bW5zYCBjb3VudFxuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2xlbmd0aH0gLVxuLy8vICAgUmVsYXRpdmUgb3Igc3RhdGljIGxlbmd0aCBvZiBhIHNwYW4gb24gdGhlIGdyaWRcbkBmdW5jdGlvbiBfc3UtY2FsYy1zcGFuKFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkY29udGFpbmVyLXNwcmVhZDogJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJHNwYW46IHN1LXZhbGlkLXNwYW4oJHNwYW4pO1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgICAkZ3V0dGVyczogc3UtdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG4gICAgJHNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRzcHJlYWQpO1xuICAgICRjb250YWluZXItc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJGNvbnRhaW5lci1zcHJlYWQpO1xuICB9XG5cbiAgLy8gU3BhbiBhbmQgY29udGV4dFxuICAkc3BhbjogX3N1LWNhbGMtc3VtKCRzcGFuLCAkZ3V0dGVycywgJHNwcmVhZCwgbm90ICd2YWxpZGF0ZScpO1xuICAkY29udGV4dDogX3N1LWNhbGMtc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgJGNvbnRhaW5lci1zcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcblxuICAvLyBGaXhlZCBhbmQgZmx1aWRcbiAgJGZpeGVkLXNwYW46IG1hcC1nZXQoJHNwYW4sICdmaXhlZCcpO1xuICAkZmx1aWQtc3BhbjogbWFwLWdldCgkc3BhbiwgJ2ZsdWlkJyk7XG4gICRmaXhlZC1jb250ZXh0OiBtYXAtZ2V0KCRjb250ZXh0LCAnZml4ZWQnKTtcbiAgJGZsdWlkLWNvbnRleHQ6IG1hcC1nZXQoJGNvbnRleHQsICdmbHVpZCcpO1xuXG4gICRjYWxjOiAnI3skZml4ZWQtc3Bhbn0nO1xuICAkZmx1aWQtY2FsYzogJygxMDAlIC0gI3skZml4ZWQtY29udGV4dH0pJztcblxuICAvLyBGbHVpZC12YWx1ZXNcbiAgQGlmIChub3QgJGZsdWlkLXNwYW4pIHtcbiAgICAkZmx1aWQtY2FsYzogbnVsbDtcbiAgfSBAZWxzZSBpZiAoJGZsdWlkLXNwYW4gIT0gJGZsdWlkLWNvbnRleHQpIHtcbiAgICAkZmx1aWQtc3BhbjogJyogI3skZmx1aWQtc3Bhbn0nO1xuICAgICRmbHVpZC1jb250ZXh0OiBpZigkZmx1aWQtY29udGV4dCwgJy8gI3skZmx1aWQtY29udGV4dH0nLCAnJyk7XG4gICAgJGZsdWlkLWNhbGM6ICcoI3skZmx1aWQtY2FsYyAkZmx1aWQtY29udGV4dCAkZmx1aWQtc3Bhbn0pJztcbiAgfVxuXG4gIEBpZiAkZmx1aWQtY2FsYyB7XG4gICAgJGNhbGM6IGlmKCgkY2FsYyAhPSAnJyksICcjeyRjYWxjfSArICcsICcnKTtcbiAgICAkY2FsYzogJyN7JGNhbGMgKyAkZmx1aWQtY2FsY30nO1xuICB9XG5cbiAgQHJldHVybiBjYWxjKCN7dW5xdW90ZSgkY2FsYyl9KTtcbn1cblxuXG5cbi8vIFN1IENhbGMtU3VtXG4vLyAtLS0tLS0tLS0tLVxuLy8vIEdldCB0aGUgdG90YWwgc3VtIG9mIGZpeGVkIGFuZCBmbHVpZCBjb2x1bW4tdW5pdHNcbi8vLyBmb3IgY3JlYXRpbmcgYSBtaXhlZC11bml0IGxheW91dCB3aXRoIGBjYWxjKClgIHZhbHVlcy5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBhdmFpbGFibGVcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXIgaW4gY29sdW1uLWNvbXBhcmFibGUgdW5pdHNcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBzcGFuYCBjb3VudFxuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge21hcH0gLVxuLy8vICAgTWFwIHdpdGggYGZpeGVkYCBhbmQgYGZsdWlkYCBrZXlzXG4vLy8gICBjb250YWluaW5nIHRoZSBwcm9wZXIgbWF0aCBhcyBzdHJpbmdzXG5AZnVuY3Rpb24gX3N1LWNhbGMtc3VtKFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1zcGFuKCRjb2x1bW5zKTtcbiAgICAkZ3V0dGVyczogc3UtdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG4gICAgJHNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRzcHJlYWQpO1xuICB9XG5cbiAgJGZsdWlkOiAwO1xuICAkZml4ZWQ6ICgpO1xuICAkY2FsYzogbnVsbDtcblxuICAvLyBHdXR0ZXJzXG4gICRndXR0ZXJzOiAgJGd1dHRlcnMgKiAobGVuZ3RoKCRjb2x1bW5zKSArICRzcHJlYWQpO1xuXG4gIC8vIENvbHVtbnNcbiAgQGVhY2ggJGNvbCBpbiBhcHBlbmQoJGNvbHVtbnMsICRndXR0ZXJzKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRjb2wpIHtcbiAgICAgICRmbHVpZDogJGZsdWlkICsgJGNvbDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRmaXhlZDogX3N1LW1hcC1hZGQtdW5pdHMoJGZpeGVkLCAkY29sKTtcbiAgICB9XG4gIH1cblxuICAvLyBDb21waWxlIEZpeGVkIFVuaXRzXG4gIEBlYWNoICR1bml0LCAkdG90YWwgaW4gJGZpeGVkIHtcbiAgICBAaWYgKCR0b3RhbCAhPSAoMCAqICR0b3RhbCkpIHtcbiAgICAgICRjYWxjOiBpZigkY2FsYywgJyN7JGNhbGN9ICsgI3skdG90YWx9JywgJyN7JHRvdGFsfScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGMgbnVsbCBvciBzdHJpbmdcbiAgQGlmICRjYWxjIHtcbiAgICAkY2FsYzogaWYoc3RyLWluZGV4KCRjYWxjLCAnKycpLCAnKCN7JGNhbGN9KScsICcjeyRjYWxjfScpO1xuICB9XG5cbiAgLy8gRmx1aWQgMCA9PiBudWxsXG4gICRmbHVpZDogaWYoKCRmbHVpZCA9PSAwKSwgbnVsbCwgJGZsdWlkKTtcblxuXG4gIC8vIFJldHVybiBtYXBcbiAgJHJldHVybjogKFxuICAgICdmaXhlZCc6ICRjYWxjLFxuICAgICdmbHVpZCc6ICRmbHVpZCxcbiAgKTtcblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cblxuXG4vLyBOZWVkcyBDYWxjXG4vLyAtLS0tLS0tLS0tXG4vLy8gQ2hlY2sgaWYgYGNhbGMoKWAgd2lsbCBiZSBuZWVkZWQgaW4gZGVmaW5pbmcgYSBzcGFuLFxuLy8vIGlmIHRoZSBuZWNlc3NhcnkgdW5pdHMgaW4gYSBncmlkIGFyZSBub3QgY29tcGFyYWJsZS5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRzcGFuIC1cbi8vLyAgIFNsaWNlIG9mIGNvbHVtbnMgdG8gc3BhblxuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBhdmFpbGFibGUgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlclxuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYHNwYW5gIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7Ym9vbH0gLVxuLy8vICAgYFRydWVgIHdoZW4gdW5pdHMgZG8gbm90IG1hdGNoLCBhbmQgYGNhbGMoKWAgd2lsbCBiZSByZXF1aXJlZFxuQGZ1bmN0aW9uIF9zdS1uZWVkcy1jYWxjLW91dHB1dChcbiAgJHNwYW4sXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJHNwYW46IHN1LXZhbGlkLXNwYW4oJHNwYW4pO1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgICAkZ3V0dGVyczogc3UtdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG4gIH1cblxuICAkaGFzLWd1dHRlcjogaWYoKGxlbmd0aCgkc3BhbikgPiAxKSBvciAoJHNwcmVhZCA+PSAwKSwgdHJ1ZSwgZmFsc2UpO1xuICAkY2hlY2s6IGlmKCRoYXMtZ3V0dGVyLCBhcHBlbmQoJHNwYW4sICRndXR0ZXJzKSwgJHNwYW4pO1xuICAkc2FmZS1zcGFuOiBfc3UtaXMtY29tcGFyYWJsZSgkY2hlY2suLi4pO1xuXG4gIEBpZiAoJHNhZmUtc3BhbiA9PSAnc3RhdGljJykge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH0gQGVsc2UgaWYgKG5vdCAkc2FmZS1zcGFuKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgJHNhZmUtZmx1aWQ6IF9zdS1pcy1jb21wYXJhYmxlKCRndXR0ZXJzLCAkY29sdW1ucy4uLik7XG5cbiAgQHJldHVybiBub3QgJHNhZmUtZmx1aWQ7XG59XG4iLCJpbWcsXG5tZWRpYSB7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIi5tZXNzYWdlcyB7XG4gIG1hcmdpbi1ib3R0b206IHJlbSgyMHB4KTtcbn1cbiIsImh0bWwge1xuICAvLyBNb2RpZnkgZGVmYXVsdCBmb250IHNtb290aGluZzogaHR0cHM6Ly9kYXZpZHdhbHNoLm5hbWUvZm9udC1zbW9vdGhpbmcuXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBjb2xvcjogJGdyYXktc3RlZWw7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBzdHJpcC11bml0KCRiYXNlLWZvbnQtc2l6ZSkgLyAxNiAqIDEwMCArICclJztcbiAgbGluZS1oZWlnaHQ6IGVtKCRiYXNlLWxpbmUtaGVpZ2h0KTtcbiAgLy8gaHR0cHM6Ly9oZWxweC5hZG9iZS5jb20vdHlwZWtpdC91c2luZy9vcGVuLXR5cGUtc3ludGF4Lmh0bWwjbGlnYVxuICAvLyBDbGllbnQgZGlzbGlrZWQgbGlnYXR1cmUgaW4gTGF0byBmb250LCBzcGVjaWZpY2FsbHksIGluICdzdGFmZmluZycuXG4gIC8vICdmZmknIGdvdCBnbG9iYmVkIHRvZ2V0aGVyLiBDaHJvbWUgaGFzIGxpZ2F0dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQuXG4gIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vLWNvbW1vbi1saWdhdHVyZXM7XG4gIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMCwgJ2NsaWcnIDA7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMCwgJ2NsaWcnIDA7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDAsICdjbGlnJyAwO1xufVxuXG5oMS5wYWdlLXRpdGxlIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gIG1hcmdpbi10b3A6IDA7XG4gIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICBmb250LXNpemU6IHJlbSgyNnB4KTtcbiAgY29sb3I6ICRncmF5LXN0ZWVsO1xufVxuXG5hIHtcbiAgY29sb3I6ICRibHVlO1xuICB0cmFuc2l0aW9uOiAuMjVzO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkcHVycGxlO1xuICB9XG59XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1ibG9jayBtaXhpbnMtYmVmb3JlLWRlY2xhcmF0aW9uc1xuLy8gVGhpcyBtdXN0IGEgYnVnLlxuLmxheW91dC1jb250ZW50IHtcbiAgb3JkZXI6IDI7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhtZWRpdW0pIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gIH1cblxuICAuc2lkZWJhci1yaWdodCAmIHtcbiAgICB3aWR0aDogc3Bhbig2IG9mIDEyKTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XG4gICAgICB3aWR0aDogc3Bhbig5IG9mIDEyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKHNtYWxsKSB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIHdpZHRoOiBzcGFuKDEyIG9mIDEyIG5hcnJvdyk7XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItcmlnaHQtbm9uZSAmIHtcbiAgICB3aWR0aDogc3Bhbig5IG9mIDEyKTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oc21hbGwpIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgd2lkdGg6IHNwYW4oMTIgb2YgMTIgbmFycm93KTtcbiAgICB9XG4gIH1cbn1cbiIsIi5yZWdpb24tZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogcmVtKDYwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgLmlubmVyLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogcmVtKDQycHgpIDA7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKHRhYmxldCkge1xuICAgIC5pbm5lci13cmFwcGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oc21hbGwpIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG4iLCIucmVnaW9uLWhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogcmVtKDE1cHgpO1xuXG4gIC5icmFuZGluZyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMTVweCBzb2xpZCAkZ3JlZW47XG5cbiAgICAuaW5uZXItd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTBweCk7XG4gICAgfVxuICB9XG5cbiAgLmxvZ28ge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxuXG4gIC5zaXRlLW5hbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIG1hcmdpbjogcmVtKDJweCkgMCByZW0oNnB4KTtcbiAgICBmb250LXNpemU6IHJlbSgyNHB4KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xuICAgIC5icmFuZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5pbm5lci13cmFwcGVyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8odGFibGV0KSB7XG4gICAgLmxvZ28ge1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgIH1cblxuICAgIC5zaXRlLW5hbWUge1xuICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1ibG9jayBtaXhpbnMtYmVmb3JlLWRlY2xhcmF0aW9uc1xuLy8gVGhpcyBtdXN0IGEgYnVnLlxuLmxheW91dC1zaWRlYmFyLWxlZnQge1xuICBvcmRlcjogMTtcbiAgd2lkdGg6IHNwYW4oMyBvZiAxMik7XG4gIG1hcmdpbi1yaWdodDogZ3V0dGVyKCk7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xuICAgIG9yZGVyOiAzO1xuICAgIHdpZHRoOiBzcGFuKDEyIG9mIDEyIG5hcnJvdyk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgIC8vIEFkZCBtYXJnaW4gdG8gYmxvY2sgaW5zaWRlIHJlZ2lvbi5cbiAgICA+ICogPiAqIHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIG1peGlucy1iZWZvcmUtZGVjbGFyYXRpb25zXG4vLyBUaGlzIG11c3QgYSBidWcuXG4ubGF5b3V0LXNpZGViYXItcmlnaHQge1xuICBvcmRlcjogMztcbiAgd2lkdGg6IHNwYW4oMyBvZiAxMik7XG4gIG1hcmdpbi1sZWZ0OiBndXR0ZXIoKTtcblxuICBAaW5jbHVkZSByZXNwb25kLXRvKG1lZGl1bSkge1xuICAgIHdpZHRoOiBzcGFuKDkgb2YgMTIpO1xuICAgIG1hcmdpbi1sZWZ0OiBzcGFuKDMgb2YgMTIpO1xuICAgIHBhZGRpbmctbGVmdDogZ3V0dGVyKCk7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKHNtYWxsKSB7XG4gICAgb3JkZXI6IDI7XG4gICAgd2lkdGg6IHNwYW4oMTIgb2YgMTIgbmFycm93KTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbiIsIm5hdi5icmVhZGNydW1iIHsgLy9zYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgbWFyZ2luOiByZW0oMjBweCkgMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgYSB7XG4gICAgY29sb3I6ICRncmF5LXN0ZWVsO1xuICB9XG59XG4iLCIvLyBCdXR0b25zIGFyZSBUZWFsIGJ5IGRlZmF1bHQuXG5hLmJ0biwgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50cyBmb3JjZS1hdHRyaWJ1dGUtbmVzdGluZ1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTI1cHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTtcbiAgYm9yZGVyOiAwO1xuICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiAuMjVzO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTgwO1xuICB9XG5cbiAgJi5jb2xvci1ncmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ3JlZW4sIDEwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5jb2xvci13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGNvbG9yOiAkcHVycGxlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtODA7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtdG8obW9iaWxlKSB7XG4gIGEuYnRuLCAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc3VibWl0J10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmdcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbn1cbiIsIi8vIFJlc3BvbnNpdmUgbWVudSBTQ1NTLlxuXG4ucmVzcG9uc2l2ZS1tZW51LWJsb2NrLXdyYXBwZXIge1xuICBwYWRkaW5nLXRvcDogcmVtKDEwcHgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLy8gT3ZlcnJpZGUgbW9kdWxlLXByb3ZpZGVkIENTUy5cbiAgLm1lbnUtaXRlbSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cblxuICAubWVudS1pdGVtLS1leHBhbmRlZCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIHVsLnN1Yi1uYXYubWVudSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLmhvcml6b250YWwtbWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGxpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkd2hpdGU7XG5cbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAuNmVtIC44ZW0gLjhlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTWVudSBzdHlsaW5nLlxuICB1bCNob3Jpem9udGFsLW1lbnUgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHMgbm8taWRzXG4gICAgLy8gVG9wIGxldmVsIGl0ZW1zIG9ubHkuXG4gICAgPiBsaSB7XG4gICAgICBtYXJnaW46IDAgcmVtKDEwcHgpO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuXG4gICAgICA+IGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oNXB4KSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgLSBhbGwgbWVudSBpdGVtcy5cbiAgICAubWVudS1pdGVtLS1hY3RpdmUtdHJhaWwge1xuICAgICAgPiBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIC0gdG9wIGxldmVsIG1lbnUgaXRlbXMgb25seS5cbiAgICA+IC5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbCB7XG4gICAgICA+IGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oNXB4KSBzb2xpZCAkZ3JlZW47XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb3ZlciAtIGFsbCBtZW51IGl0ZW1zLlxuICAgIGxpIHtcbiAgICAgICYuc2ZIb3ZlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgY2xhc3MtbmFtZS1mb3JtYXRcbiAgICAgICAgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XG5cbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb3ZlciAtIHRvcCBsZXZlbCBpdGVtcyBvbmx5LlxuICAgID4gbGkuc2ZIb3ZlciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50cyBjbGFzcy1uYW1lLWZvcm1hdFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBhbmQgSG92ZXIgLSB0b3AgbGV2ZWwgaXRlbXMgb25seS5cbiAgICA+IC5tZW51LWl0ZW0tLWFjdGl2ZS10cmFpbC5zZkhvdmVyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBjbGFzcy1uYW1lLWZvcm1hdFxuICAgICAgPiBhIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDVweCkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5yZXNwb25zaXZlLW1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucmVzcG9uc2l2ZS1tZW51LXRvZ2dsZS1pY29uOjpiZWZvcmUsIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3Rpbmdcbi5yZXNwb25zaXZlLW1lbnUtdG9nZ2xlLWljb246OmFmdGVyLCAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIGZvcmNlLXBzZXVkby1uZXN0aW5nXG4ucmVzcG9uc2l2ZS1tZW51LXRvZ2dsZS1pY29uIHNwYW4uaWNvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICBiYWNrZ3JvdW5kOiAkZ3JheS1zdGVlbDtcbn1cblxuLmxheW91dC1zaWRlYmFyLWxlZnQge1xuICAuYmxvY2stbWVudSB7XG4gICAgaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAkZ3JheS1zdGVlbDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICB1bC5tZW51IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBsaS5tZW51LWl0ZW0geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDZweCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXJEaXNwbGF5JztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogJGdyYXktc3RlZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUb3AgbGV2ZWwgaXRlbXMuXG4gICAgPiB1bC5tZW51IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgID4gbGkubWVudS1pdGVtIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zdGFuZGFyZC1jb3B5IHtcbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgIC8vbWFyZ2luOiByZW0oMjZweCkgMCByZW0oMTZweCk7XG4gICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgLy9saW5lLWhlaWdodDogMS4yOGVtO1xuICAgIGNvbG9yOiAkcHVycGxlO1xuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgIGNvbG9yOiAkcHVycGxlO1xuICB9XG5cbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmctbGVmdDogcmVtKDQwcHgpO1xuICB9XG59XG4iLCJ0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IHJlbSgxNXB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGdyYXktbWVkaXVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRwdXJwbGU7XG5cbiAgICB0aCB7XG4gICAgICBwYWRkaW5nOiByZW0oMTVweCkgcmVtKDIwcHgpO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHtcbiAgICBjb2xvcjogJGdyYXktc3RlZWw7XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiByZW0oMjVweCkgcmVtKDIwcHgpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRncmF5LW1lZGl1bTtcbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAkZ3JheS1tZWRpdW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuIiwiXG4uYmxvY2stbnNiZi1mb290ZXItY29udGFjdC1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiBzcGFuKDggb2YgMTIpO1xuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB0ZXh0LWluZGVudDogLTFlbTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLmxheW91dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWF4LXdpZHRoOiByZW0oNTAwcHgpO1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuXG4gICAgPiBkaXYge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gIH1cblxuICAucGhvbmUge1xuICAgIG9yZGVyOiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzBweCk7XG4gIH1cblxuICAuZmF4IHtcbiAgICBvcmRlcjogMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgcGFkZGluZy1sZWZ0OiByZW0oMzBweCk7XG4gIH1cblxuICAuYWRkcmVzcy1waHlzaWNhbCB7XG4gICAgb3JkZXI6IDM7XG4gICAgcGFkZGluZy1yaWdodDogcmVtKDMwcHgpO1xuICB9XG5cbiAgLmFkZHJlc3MtbWFpbGluZyB7XG4gICAgb3JkZXI6IDQ7XG4gICAgcGFkZGluZy1sZWZ0OiByZW0oMzBweCk7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKHRhYmxldCkge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiByZW0oMjJweCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmZheCxcbiAgICAuYWRkcmVzcy1tYWlsaW5nIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8obW9iaWxlKSB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgfVxuXG4gICAgLmxheW91dCB7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBob25lIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmFkZHJlc3MtcGh5c2ljYWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbiAgfVxufVxuIiwiLmJsb2NrLW5zYmYtZm9vdGVyLXNvY2lhbC1tZWRpYS1ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgd2lkdGg6IHNwYW4oNCBvZiAxMik7XG5cbiAgYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiByZW0oMTVweCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIHN2ZyB7XG4gICAgZmlsbDogJHdoaXRlO1xuICAgIGhlaWdodDogcmVtKDM2cHgpO1xuICAgIHdpZHRoOiByZW0oMzZweCk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgZmlsbDogJHdoaXRlLTgwO1xuICAgICAgdHJhbnNpdGlvbjogLjI1cztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKHRhYmxldCkge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IHJlbSg1MHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8obW9iaWxlKSB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDM1cHgpO1xuICB9XG59XG4iLCIucGFyYWdyYXBoLS10eXBlLS1jb2x1bW5zLTIge1xuICAuZmllbGQtLW5hbWUtZmllbGQtY29sdW1ucy0yLWNvcHkge1xuICAgIGNvbHVtbnM6IDI7XG4gICAgbWFyZ2luLXRvcDogcmVtKDE2cHgpO1xuXG4gICAgPiBkaXYge1xuICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICA+ICoge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKG1vYmlsZSkge1xuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jb2x1bW5zLTItY29weSB7XG4gICAgICBjb2x1bW5zOiB1bnNldDtcbiAgICB9XG4gIH1cbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLWZlbGxvd3MtbGlzdGluZy1ibG9jayB7XG4gIC5pdGVtLWxpc3Qge1xuICAgIHVsIHtcbiAgICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8odGFibGV0KSB7XG4gICAgLml0ZW0tbGlzdCB7XG4gICAgICB1bCB7XG4gICAgICAgIGNvbHVtbi1jb3VudDogdW5zZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucGFyYWdyYXBoLS10eXBlLS1mcm9udC1wYWdlLWJsb2Nrcy1yb3cge1xuICBwYWRkaW5nOiByZW0oNDBweCkgMDtcblxuICAuZmllbGQtLW5hbWUtZmllbGQtZnAtYmxvY2tzLXJvdy1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgID4gLmZpZWxkX19pdGVtIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBjbGFzcy1uYW1lLWZvcm1hdFxuICAgICAgd2lkdGg6IHNwYW4oNCBvZiAxMik7XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTlweCk7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRwdXJwbGU7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmN0YS1saW5rIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg0MHB4KTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKHRhYmxldCkge1xuICAgIC5maWVsZC0tbmFtZS1maWVsZC1mcC1ibG9ja3Mtcm93LWl0ZW0ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IC5maWVsZF9faXRlbSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgY2xhc3MtbmFtZS1mb3JtYXRcbiAgICAgICAgd2lkdGg6IHNwYW4oMTIgb2YgMTIgbmFycm93KTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMwcHgpO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTZweCk7XG4gICAgfVxuXG4gICAgLmN0YS1saW5rIHtcbiAgICAgIGEge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTZweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucGFyYWdyYXBoLS10eXBlLS1oZXJvLXNsaWRlciB7XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWhlcm8tc2xpZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiA2Ni42NyU7XG4gICAgaGVpZ2h0OiAzMy4zMyU7XG4gIH1cblxuICAudGV4dC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDMzLjMzJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogcmVtKDI2cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuICB9XG5cbiAgLmN0YS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiByZW0oMzJweCk7XG4gIH1cblxuICAuc2xpY2stcHJldixcbiAgLnNsaWNrLW5leHQge1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHdpZHRoOiByZW0oMzBweCk7XG4gICAgaGVpZ2h0OiByZW0oMzBweCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IHJlbSgxNXB4KTtcbiAgfVxuXG4gIC5zbGljay1uZXh0IHtcbiAgICByaWdodDogcmVtKDE1cHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8odGFibGV0KSB7XG4gICAgLnBhcmFncmFwaC0tdHlwZS0taGVyby1zbGlkZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC50ZXh0LXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZmxleC1zaHJpbms6IDk5OTk5OTtcbiAgICB9XG5cbiAgICAuY3RhLWxpbmsge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMTVweCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhtb2JpbGUpIHtcbiAgICAudGV4dC13cmFwcGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiByZW0oMTZweCk7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgfVxuXG4gICAgLmN0YS1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgxOHB4KTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLnBhcmFncmFwaC0tdHlwZS0tZnJvbnQtcGFnZS1uZXdzLWJsb2NrIHtcbiAgcGFkZGluZzogcmVtKDQwcHgpIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMzBweCk7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgZm9udC1zaXplOiByZW0oMjhweCk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIC52aWV3LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG5cbiAgLnZpZXdzLXJvdyB7XG4gICAgd2lkdGg6IHNwYW4oMyBvZiAxMik7XG4gICAgcGFkZGluZy10b3A6IHJlbSg1cHgpO1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAkd2hpdGU7XG5cbiAgICAuZGF0ZSB7XG4gICAgICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1vcmUtbGluayB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDIwcHgpO1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnIFxcMjE5Mic7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xuICAgIC52aWV3LWNvbnRlbnQge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC52aWV3cy1yb3cge1xuICAgICAgd2lkdGg6IHNwYW4oNiBvZiAxMik7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDBweCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byh0YWJsZXQpIHtcbiAgICAudmlld3Mtcm93IHtcbiAgICAgIHdpZHRoOiBzcGFuKDEyIG9mIDEyIG5hcnJvdyk7XG4gICAgfVxuICB9XG59XG4iLCIucGFyYWdyYXBoLS10eXBlLS1pbmxpbmUtaW1hZ2Uge1xuICAmLnNpemUtLTUwIHtcbiAgICB3aWR0aDogNTAlO1xuXG4gICAgJi5wb3NpdGlvbi0tY2VudGVyIHtcbiAgICAgIG1hcmdpbjogcmVtKDE1cHgpIGF1dG87XG4gICAgfVxuXG4gICAgJi5wb3NpdGlvbi0tbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogcmVtKDE1cHgpIHJlbSgxNXB4KSByZW0oMTVweCkgMDtcbiAgICB9XG5cbiAgICAmLnBvc2l0aW9uLS1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW46IHJlbSgxNXB4KSAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obW9iaWxlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJi5wb3NpdGlvbi0tbGVmdCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgJi5wb3NpdGlvbi0tcmlnaHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgcGFkZGluZzogLjVlbSAuNzVlbTtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB9XG4gIH1cbn1cbiIsIi5wYXJhZ3JhcGgtLXR5cGUtLXNpZGViYXItY29weSB7XG4gIHBhZGRpbmc6IDEyLjUlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcbiAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XG4gICAgcGFkZGluZzogcmVtKDMwcHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhtb2JpbGUpIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTAwJSkvLTIpO1xuICB9XG59XG4iLCIuanMtdGFicyB7XG4gIC5qcy10YWJsaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmVlbjtcbiAgfVxuXG4gIC5qcy10YWJsaXN0X19pdGVtIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBjbGFzcy1uYW1lLWZvcm1hdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJ09wZW5TYW5zJztcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAuMmVtIDFlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi0yNTtcbiAgICAgIGNvbG9yOiAkZ3JheS1zdGVlbDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmpzLXRhYmNvbnRlbnQge1xuICAgICZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8obW9iaWxlKSB7XG4gICAgLmpzLXRhYmxpc3RfX2l0ZW0geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIGNsYXNzLW5hbWUtZm9ybWF0XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5wYWdlLW5vZGUtdHlwZS1mcm9udC1wYWdlIHtcbiAgLy8gT3ZlcnJpZGUgbGF5b3V0IHdpZHRoLiBObyBzaWRlYmFycy5cbiAgLmxheW91dC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oNHB4KTtcbiAgICB9XG4gIH1cblxuICAucmVnaW9uLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDRweCk7XG4gIH1cbn1cbiIsIi5wYWdlLW5vZGUtdHlwZS1uZXdzIHtcbiAgLmZpZWxkLS1uYW1lLWZpZWxkLW5ld3MtdGFncyB7XG4gICAgLnRhZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICBwYWRkaW5nOiAycHggMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuIiwiLnZpZXctbmV3cy1hZ2dyZWdhdGUtcGFnZS52aWV3LWRpc3BsYXktaWQtcGFnZV8xIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBjbGFzcy1uYW1lLWZvcm1hdFxuICAudmlld3Mtcm93IHtcbiAgICBtYXJnaW4tdG9wOiByZW0oMjBweCk7XG4gICAgcGFkZGluZy10b3A6IHJlbSgyMHB4KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyYXktc3RlZWw7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuZGF0ZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gIH1cblxuICAudGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkcHVycGxlO1xuICB9XG5cbiAgLnN1bW1hcnkge1xuICAgIG1hcmdpbjogcmVtKDE1cHgpIDA7XG4gIH1cblxuICAucmVhZC1tb3JlIHtcbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgXHRcXDIxOTInO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mZWVkLWljb25zIHtcbiAgICBtYXJnaW4tdG9wOiByZW0oMjBweCk7XG4gIH1cbn1cblxuI3ZpZXdzLWV4cG9zZWQtZm9ybS1uZXdzLWFnZ3JlZ2F0ZS1wYWdlLXBhZ2UtMSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5mb3JtLWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICA+IGRpdiB7XG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgID4gLmZvcm0taXRlbSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAnT3BlblNhbnMnO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG5cbiAgICBvcHRpb24ge1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgfVxuICB9XG59XG4iLCIuYmxvY2stdmlld3MtYmxvY2tuZXdzLXJlY2VudC1uZXdzLWJsb2NrLWJsb2NrLTEge1xuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyYXktc3RlZWw7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gIH1cblxuICAudmlld3Mtcm93IHtcbiAgICBtYXJnaW4tdG9wOiByZW0oMjBweCk7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAuZGF0ZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuU2Fucyc7XG4gICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcbiAgfVxuXG4gIC50aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcblxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */
