document-viewer {
  position: relative;
}
document-viewer .text {
  margin-bottom: var(--spacer0);
}
document-viewer[data-layout=list] tr td {
  padding: 0 !important;
}
document-viewer[data-layout=list] .pdf-link {
  padding: calc(var(--gap) * 0.5) var(--gap);
  display: flex;
  text-decoration: none;
  align-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
document-viewer[data-layout=list] .pdf-link img {
  border: 1px solid #dcdcdc;
  margin-right: var(--gap);
}
document-viewer[data-layout=list] .pdf-link span {
  margin-right: var(--gap);
}
document-viewer[data-layout=list] .pdf-link svg {
  margin-left: auto;
  --fill: #df3035;
  width: 20px;
  height: 20px;
}
document-viewer .card .pdf-link {
  position: relative;
  padding: calc(var(--gap) * 0.5);
  text-decoration: none;
  align-items: center;
  border: 1px solid #dcdcdc;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  background-color: white;
  display: flex;
  justify-content: center;
}
document-viewer .card .pdf-link img {
  width: 100%;
  height: auto;
}
document-viewer .card .pdf-link svg {
  --fill: #df3035;
  --icon-size: clamp(20px, 100%, 50px);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  position: absolute;
  top: calc(50% - var(--icon-size) / 2);
  left: calc(50% - var(--icon-size) / 2);
  width: var(--icon-size);
  height: var(--icon-size);
  opacity: 0;
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  document-viewer .card .pdf-link svg {
    width: 20px;
    height: 20px;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
  }
}
@media (hover: hover) {
  document-viewer .card .pdf-link:hover {
    border-color: #df3035;
    transform: scale(1.05);
  }
  document-viewer .card .pdf-link:hover svg {
    transform: scale(1.2);
    opacity: 1 !important;
  }
}
document-viewer[data-layout=grid] .container {
  display: grid;
  grid-gap: var(--gutter2) var(--gutter1);
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
@media (max-width: 1120px) {
  document-viewer[data-layout=grid] .container {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 480px) {
  document-viewer[data-layout=grid] .container {
    grid-template-columns: repeat(2, 1fr);
  }
}
document-viewer[data-layout=grid] .card {
  display: flex;
  flex-direction: column;
}
document-viewer[data-layout=grid] .card span {
  margin-top: calc(var(--gap) * 0.5);
  font-weight: bold;
  color: #131f6b;
  font-size: 0.875em;
}
document-viewer[data-layout=scroller] {
  position: relative;
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] {
    display: grid;
    flex-direction: column;
    grid-template-columns: 1fr minmax(var(--featured-card-width), auto);
    grid-template-rows: repeat(2, auto);
    grid-gap: 0 var(--gutter3);
    justify-items: flex-end;
    --card-width: 220px;
    --featured-card-width: 350px;
  }
  document-viewer[data-layout=scroller].loading .featured.card::after {
    opacity: 1;
    animation-play-state: running;
  }
  document-viewer[data-layout=scroller].loading .featured.card img,
  document-viewer[data-layout=scroller].loading .featured.card span {
    opacity: 0;
  }
  document-viewer[data-layout=scroller].loading .container,
  document-viewer[data-layout=scroller].loading .featured.card {
    pointer-events: none;
  }
  document-viewer[data-layout=scroller] .introduction.text {
    grid-column: 1;
    grid-row: 1;
    height: -moz-fit-content;
    height: fit-content;
    max-width: 900px;
    justify-self: flex-start;
    margin-bottom: 0;
  }
  document-viewer[data-layout=scroller] .container {
    display: flex;
    position: relative;
    height: -moz-fit-content;
    height: fit-content;
    width: calc(100% + var(--computed-gutter) + var(--gutter3));
    left: var(--gutter3);
    box-sizing: border-box;
    grid-column: 1;
    grid-row: 2;
    overflow: hidden;
    padding-left: calc(var(--computed-gutter));
    padding-right: var(--gutter3);
    padding-top: var(--spacer1);
    padding-bottom: var(--spacer1);
    scroll-behavior: smooth;
  }
  document-viewer[data-layout=scroller] .container .bounds {
    display: grid;
    grid-gap: var(--gutter2);
  }
  document-viewer[data-layout=scroller] .container .bounds .card {
    width: var(--card-width);
    grid-row: 1;
    scroll-snap-align: start;
  }
  document-viewer[data-layout=scroller] .container .bounds .card .pdf-link {
    height: 100%;
  }
  document-viewer[data-layout=scroller] .container .bounds .card .pdf-link svg {
    display: none;
  }
  document-viewer[data-layout=scroller] .container .bounds .card span {
    position: relative;
    bottom: -1.5rem;
  }
  :root:not([data-browser-feature*=touch]) document-viewer[data-layout=scroller] .container ~ button.navigation {
    opacity: 0;
  }
}
@media (min-width: 981px) and (hover: hover) {
  :root:not([data-browser-feature*=touch]) document-viewer[data-layout=scroller] .container:hover ~ button.navigation {
    opacity: 1;
  }
}
@media (min-width: 981px) {
  :root[data-browser-feature*=touch] document-viewer[data-layout=scroller] .container {
    overflow-x: auto;
  }
  document-viewer[data-layout=scroller].scrolled-right button.next, document-viewer[data-layout=scroller].scrolled-left button.previous {
    pointer-events: none;
    opacity: 0 !important;
  }
  document-viewer[data-layout=scroller] button.navigation {
    --button-size: 40px;
    grid-column: 1;
    grid-row: 2;
    background-color: white;
    border: 1px solid #dcdcdc;
    border-radius: 50%;
    z-index: 1;
    width: var(--button-size);
    height: var(--button-size);
    position: relative;
    display: flex;
    place-items: center;
    place-content: center;
    align-self: center;
    color: #6a6a6a;
    transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  }
  document-viewer[data-layout=scroller] button.navigation.previous {
    justify-self: flex-start;
    left: var(--gutter2-);
  }
  document-viewer[data-layout=scroller] button.navigation.previous svg {
    margin-left: -2px;
  }
  document-viewer[data-layout=scroller] button.navigation.next {
    justify-self: flex-end;
    left: var(--gutter2);
  }
  document-viewer[data-layout=scroller] button.navigation.next svg {
    margin-left: 2px;
  }
  document-viewer[data-layout=scroller] button.navigation svg {
    width: calc(var(--button-size) / 2.5);
    height: calc(var(--button-size) / 2.5);
  }
}
@media (min-width: 981px) and (hover: hover) {
  document-viewer[data-layout=scroller] button.navigation:hover {
    transform: scale(1.1);
    background-color: #3d3f7f;
    color: white;
    opacity: 1 !important;
    border-color: transparent;
  }
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] .card:not(.featured) > span {
    color: #b1b1b1;
  }
  document-viewer[data-layout=scroller] .card {
    text-align: center;
  }
  document-viewer[data-layout=scroller] .card.featured {
    grid-column: 2;
    position: relative;
    grid-row: 1/span 2;
    max-width: 500px;
    width: clamp(350px, 30vw, 500px);
    height: -moz-fit-content;
    height: fit-content;
    z-index: 1;
    align-self: end;
    --aspect-ratio: 216/300;
    aspect-ratio: var(--aspect-ratio);
  }
  document-viewer[data-layout=scroller] .card.featured img {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  }
  @supports not (aspect-ratio: 216/300) {
    document-viewer[data-layout=scroller] .card.featured {
      aspect-ratio: initial;
      padding-bottom: calc(100% / (var(--aspect-ratio)));
      height: 0;
    }
    document-viewer[data-layout=scroller] .card.featured > * {
      position: absolute;
    }
  }
  document-viewer[data-layout=scroller] .card.featured::after {
    --size: 12px;
    content: "";
    position: absolute;
    top: calc(50% - var(--size) / 2);
    left: calc(50% - var(--size) / 2);
    opacity: 0;
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    border: 2px solid var(--loader-colour, #969695);
    border-top-color: transparent;
    border-bottom-color: transparent;
    animation-name: loader-rotate;
    animation-duration: 0.5s;
    animation-iteration-count: infinite;
    transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
    animation-play-state: paused;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
  }
  @keyframes loader-rotate {
    from {
      transform: rotate(180deg);
    }
    to {
      transform: rotate(0deg);
    }
  }
  document-viewer[data-layout=scroller] .card.featured + .card.featured {
    opacity: 0;
  }
  document-viewer[data-layout=scroller] .card.featured .pdf-link {
    height: 100%;
  }
  document-viewer[data-layout=scroller] .card.featured .pdf-link svg {
    opacity: 0;
  }
  document-viewer[data-layout=scroller] .card.featured span {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: var(--spacer0);
    position: absolute;
    left: 0;
    top: 100%;
    transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  }
  document-viewer[data-layout=scroller] .card.featured a {
    display: flex;
  }
  @supports not (aspect-ratio: 1/1) {
    document-viewer[data-layout=scroller] .card.featured a {
      position: absolute;
      place-items: center;
      place-content: center;
    }
  }
}
@media (min-width: 981px) and (hover: hover) {
  document-viewer[data-layout=scroller] .card.featured:hover span {
    color: #969695;
  }
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] .card .pdf-link {
    box-shadow: 0px 0px 20px 3px rgba(0, 0, 0, 0.1);
  }
  document-viewer[data-layout=scroller] .card .pdf-link.active {
    border-color: #df3035;
  }
}
@media (min-width: 981px) and (max-width: 1816px) {
  document-viewer[data-layout=scroller] button.navigation.previous {
    left: 0;
  }
}
@media (min-width: 981px) and (max-width: 1744px) {
  document-viewer[data-layout=scroller] .container {
    width: calc(100% + var(--gutter5));
    left: var(--gutter3);
    padding-left: var(--gutter1);
  }
}
@media (max-width: 980px) {
  document-viewer[data-layout=scroller] .bounds {
    display: grid;
    grid-gap: var(--gutter2) var(--gutter1);
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}
@media (max-width: 980px) and (max-width: 1120px) {
  document-viewer[data-layout=scroller] .bounds {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 980px) and (max-width: 480px) {
  document-viewer[data-layout=scroller] .bounds {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 980px) {
  document-viewer[data-layout=scroller] .card {
    display: flex;
    flex-direction: column;
  }
  document-viewer[data-layout=scroller] .card.featured {
    display: none;
  }
  document-viewer[data-layout=scroller] .card span {
    margin-top: calc(var(--gap) * 0.5);
    font-weight: bold;
    color: #131f6b;
    font-size: 0.875em;
    text-align: center;
  }
  document-viewer[data-layout=scroller] button.navigation {
    display: none;
  }
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller].scroller-without-featured {
    grid-template-columns: 1fr;
  }
}
document-viewer[data-layout=scroller].scroller-without-featured .container {
  padding-left: var(--gutter2);
  padding-right: var(--gutter2);
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
  padding-top: var(--gutter1);
  width: 100%;
  max-width: initial;
  left: 0;
}
document-viewer[data-layout=scroller].scroller-without-featured button.navigation.next {
  left: var(--gutter2);
}
@media (max-width: 1680px) {
  document-viewer[data-layout=scroller].scroller-without-featured button.navigation.next {
    left: 0;
  }
}

main ~ document-viewer {
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer2);
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZG9jdW1lbnQtdmlld2VyLnNjc3MiLCJjb21wb25lbnRzL2RvY3VtZW50LXZpZXdlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiX2VsZW1lbnRzL2xvYWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJvd3Nlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYXNwZWN0LXJhdGlvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7RUFDRSxrQkFBQTtBQ0xGO0FET0U7RUFDRSw2QkU4Rk87QURuR1g7QURTSTtFQUNFLHFCQUFBO0FDUE47QURTSTtFQUNFLDBDQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtSUFBQTtBQ1BOO0FEUU07RUFDRSx5QkFBQTtFQUNBLHdCRTBCQTtBRGhDUjtBRFFNO0VBQ0Usd0JFdUJBO0FEN0JSO0FEUU07RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ05SO0FEV0U7RUFDRSxrQkFBQTtFQUNBLCtCRVNJO0VGUkoscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0Esa01BQUE7RUFDQSx1QkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtBQ1RKO0FEV0k7RUFD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VkU7RUxrVUk7SUFTSSxxQ0FBQTtFQ21CUjtBQUNGO0FJL1ZFO0VMK1VJO0lBQ0UsYUFBQTtJQUNBLHNCQUFBO0VDbUJOO0VEakJNO0lBQ0UsYUFBQTtFQ21CUjtFRGpCTTtJQUNFLGtDRWhURjtJRmlURSxpQkFBQTtJQUNBLGNJbFZIO0lKbVZHLGtCQUFBO0lBQ0Esa0JBQUE7RUNtQlI7RURoQkk7SUFDRSxhQUFBO0VDa0JOO0FBQ0Y7QUl4WEU7RUx3V0U7SUFFSSwwQkFBQTtFQ2tCTjtBQUNGO0FEakJNO0VBQ0UsNEJFN09HO0VGOE9ILDZCRTlPRztFRitPSCw0QkVoUEc7RUZpUEgsNkJFalBHO0VGa1BILDJCRWxQRztFRm9QSCxXQUFBO0VBQ0Esa0JBQUE7RUFFQSxPQUFBO0FDaUJSO0FEZk07RUFDRSxvQkV6UEc7QUQwUVg7QUlwWUU7RUxrWEk7SUFHSSxPQUFBO0VDbUJSO0FBQ0Y7O0FEWkE7RUFDRSwyQkVoU1M7RUZpU1QsOEJFaFNTO0FEK1NYIiwiZmlsZSI6ImNvbXBvbmVudHMvZG9jdW1lbnQtdmlld2VyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4kYnV0dG9uLXNpemU6IDQwcHg7XG5cbmRvY3VtZW50LXZpZXdlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAudGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjA7XG4gIH1cblxuICAmW2RhdGEtbGF5b3V0PSdsaXN0J10ge1xuICAgIHRyIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnBkZi1saW5rIHtcbiAgICAgIHBhZGRpbmc6ICRnYXAwICRnYXA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgaW1nIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gICAgICB9XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xuICAgICAgfVxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIC0tZmlsbDogI3skcmVkfTtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FyZCAucGRmLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkZ2FwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAtLWZpbGw6ICN7JHJlZH07XG4gICAgICAtLWljb24tc2l6ZTogY2xhbXAoMjBweCwgMTAwJSwgNTBweCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaywgb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgdG9wOiBjYWxjKDUwJSAtICh2YXIoLS1pY29uLXNpemUpIC8gMikpO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAodmFyKC0taWNvbi1zaXplKSAvIDIpKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1sYXlvdXQ9J2dyaWQnXSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6ICRndXR0ZXIyICRndXR0ZXI7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gICAgICAvLyBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICBAaW5jbHVkZSBicmVhay1pbihtZWRpdW0pIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtbGF5b3V0PSdzY3JvbGxlciddIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWlubWF4KHZhcigtLWZlYXR1cmVkLWNhcmQtd2lkdGgpLCBhdXRvKTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIGF1dG8pO1xuICAgICAgZ3JpZC1nYXA6IDAgJGd1dHRlcjM7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgLS1jYXJkLXdpZHRoOiAyMjBweDtcbiAgICAgIC0tZmVhdHVyZWQtY2FyZC13aWR0aDogMzUwcHg7XG5cbiAgICAgICYubG9hZGluZyB7XG4gICAgICAgIC5mZWF0dXJlZC5jYXJkIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbWcsXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyLFxuICAgICAgICAuZmVhdHVyZWQuY2FyZCB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmludHJvZHVjdGlvbi50ZXh0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpICsgI3skZ3V0dGVyM30pO1xuICAgICAgICBsZWZ0OiAkZ3V0dGVyMztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIzO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICAuYm91bmRzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtZ2FwOiAkZ3V0dGVyMjtcbiAgICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY2FyZC13aWR0aCk7XG4gICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIC5wZGYtbGluayB7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGJvdHRvbTogLTEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgIH4gYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgfiBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyb3dzZXItZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNjcm9sbGVkLXJpZ2h0IGJ1dHRvbi5uZXh0LFxuICAgICAgJi5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICAgICAgLS1idXR0b24tc2l6ZTogI3skYnV0dG9uLXNpemV9O1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZ3JleTI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGNvbG9yICR0cmFuc2l0aW9uLCBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaztcbiAgICAgICAgJi5wcmV2aW91cyB7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgIGxlZnQ6ICRndXR0ZXIyLTtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYubmV4dCB7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgICBsZWZ0OiAkZ3V0dGVyMjtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUzO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FyZDpub3QoLmZlYXR1cmVkKSB7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICRncmV5NTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FyZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLmZlYXR1cmVkIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDI7XG4gICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMzUwcHgsIDMwdncsIDUwMHB4KTtcbiAgICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuXG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygnMjE2LzMwMCcpO1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxvYWRlcigpO1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgKyAuY2FyZC5mZWF0dXJlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAucGRmLWxpbmsge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlcjA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucGRmLWxpbmsge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAzcHggcmdiYShibGFjaywgMC4xKTtcbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKCRicmVhay1tYXggKyAoJGJhc2UtZ2FwICogNikgKyAkYnV0dG9uLXNpemUpIHtcbiAgICAgICAgYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKCRicmVhay1tYXggKyAoJGJhc2UtZ2FwICogNCkpIHtcbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGd1dHRlcjV9KTtcbiAgICAgICAgICBsZWZ0OiAkZ3V0dGVyMztcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAgIC5ib3VuZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWdhcDogJGd1dHRlcjIgJGd1dHRlcjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICAgICAgICAvLyBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrLWluKG1lZGl1bSkge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLy8gaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgJi5mZWF0dXJlZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwMDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnNjcm9sbGVyLXdpdGhvdXQtZmVhdHVyZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcjI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIyO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ3V0dGVyO1xuICAgICAgICAvLyB3aWR0aDogY2FsYygxMDAlICsgI3skZ3V0dGVyMn0pO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICAvLyBsZWZ0OiAkZ3V0dGVyLTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICAgICAgICBsZWZ0OiAkZ3V0dGVyMjtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWstaW4oJ21heCcpIHtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBAc2VlIGh0dHA6Ly93d3cucmlnaHRvbmJsYWNrYnVybnMubG9jL3NlcnZpY2VzL3ZhbHVlLWFkZGVkLXNlcnZpY2VzXG5tYWluIH4gZG9jdW1lbnQtdmlld2VyIHtcbiAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyMjtcbn1cbiIsImRvY3VtZW50LXZpZXdlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmRvY3VtZW50LXZpZXdlciAudGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWxpc3RdIHRyIHRkIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWxpc3RdIC5wZGYtbGluayB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1saXN0XSAucGRmLWxpbmsgaW1nIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWxpc3RdIC5wZGYtbGluayBzcGFuIHtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWxpc3RdIC5wZGYtbGluayBzdmcge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgLS1maWxsOiAjZGYzMDM1O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluayBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluayBzdmcge1xuICAtLWZpbGw6ICNkZjMwMzU7XG4gIC0taWNvbi1zaXplOiBjbGFtcCgyMHB4LCAxMDAlLCA1MHB4KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpLCBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICBvcGFjaXR5OiAwO1xufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBkb2N1bWVudC12aWV3ZXIgLmNhcmQgLnBkZi1saW5rIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwcHgpO1xuICB9XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBkb2N1bWVudC12aWV3ZXIgLmNhcmQgLnBkZi1saW5rOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICNkZjMwMzU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXIgLmNhcmQgLnBkZi1saW5rOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgfVxufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWdyaWRdIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMikgdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTIwcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWdyaWRdIC5jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9Z3JpZF0gLmNvbnRhaW5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWdyaWRdIC5jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1ncmlkXSAuY2FyZCBzcGFuIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG5kb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtaW5tYXgodmFyKC0tZmVhdHVyZWQtY2FyZC13aWR0aCksIGF1dG8pO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIGF1dG8pO1xuICAgIGdyaWQtZ2FwOiAwIHZhcigtLWd1dHRlcjMpO1xuICAgIGp1c3RpZnktaXRlbXM6IGZsZXgtZW5kO1xuICAgIC0tY2FyZC13aWR0aDogMjIwcHg7XG4gICAgLS1mZWF0dXJlZC1jYXJkLXdpZHRoOiAzNTBweDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLmxvYWRpbmcgLmZlYXR1cmVkLmNhcmQ6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0ubG9hZGluZyAuZmVhdHVyZWQuY2FyZCBpbWcsXG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0ubG9hZGluZyAuZmVhdHVyZWQuY2FyZCBzcGFuIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0ubG9hZGluZyAuY29udGFpbmVyLFxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLmxvYWRpbmcgLmZlYXR1cmVkLmNhcmQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmludHJvZHVjdGlvbi50ZXh0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpICsgdmFyKC0tZ3V0dGVyMykpO1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjMpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMyk7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jb250YWluZXIgLmJvdW5kcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMik7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIC5ib3VuZHMgLmNhcmQge1xuICAgIHdpZHRoOiB2YXIoLS1jYXJkLXdpZHRoKTtcbiAgICBncmlkLXJvdzogMTtcbiAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIC5ib3VuZHMgLmNhcmQgLnBkZi1saW5rIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIC5ib3VuZHMgLmNhcmQgLnBkZi1saW5rIHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jb250YWluZXIgLmJvdW5kcyAuY2FyZCBzcGFuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm90dG9tOiAtMS41cmVtO1xuICB9XG4gIDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIH4gYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkgYW5kIChob3ZlcjogaG92ZXIpIHtcbiAgOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jb250YWluZXI6aG92ZXIgfiBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIDpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0gZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0uc2Nyb2xsZWQtcmlnaHQgYnV0dG9uLm5leHQsIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0uc2Nyb2xsZWQtbGVmdCBidXR0b24ucHJldmlvdXMge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICAtLWJ1dHRvbi1zaXplOiA0MHB4O1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgY29sb3I6ICM2YTZhNmE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgbGVmdDogdmFyKC0tZ3V0dGVyMi0pO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMgc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICAgIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XG4gICAgbGVmdDogdmFyKC0tZ3V0dGVyMik7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbi5uZXh0IHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uIHN2ZyB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKGhvdmVyOiBob3Zlcikge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNkM2Y3ZjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkOm5vdCguZmVhdHVyZWQpID4gc3BhbiB7XG4gICAgY29sb3I6ICNiMWIxYjE7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBncmlkLXJvdzogMS9zcGFuIDI7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICB3aWR0aDogY2xhbXAoMzUwcHgsIDMwdncsIDUwMHB4KTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICAgIC0tYXNwZWN0LXJhdGlvOiAyMTYvMzAwO1xuICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIGltZyB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgfVxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDIxNi8zMDApIHtcbiAgICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkID4gKiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQ6OmFmdGVyIHtcbiAgICAtLXNpemU6IDEycHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gICAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsICM5Njk2OTUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgICBmcm9tIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkICsgLmNhcmQuZmVhdHVyZWQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCAucGRmLWxpbmsge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIC5wZGYtbGluayBzdmcge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQgYSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEvMSkge1xuICAgIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQgYSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKGhvdmVyOiBob3Zlcikge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkOmhvdmVyIHNwYW4ge1xuICAgIGNvbG9yOiAjOTY5Njk1O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZCAucGRmLWxpbmsge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQgLnBkZi1saW5rLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGYzMDM1O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIGFuZCAobWF4LXdpZHRoOiAxODE2cHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbi5wcmV2aW91cyB7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKG1heC13aWR0aDogMTc0NHB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWd1dHRlcjUpKTtcbiAgICBsZWZ0OiB2YXIoLS1ndXR0ZXIzKTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuYm91bmRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIyKSB2YXIoLS1ndXR0ZXIxKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDExMjBweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5ib3VuZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmJvdW5kcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQgc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzEzMWY2YjtcbiAgICBmb250LXNpemU6IDAuODc1ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLnNjcm9sbGVyLXdpdGhvdXQtZmVhdHVyZWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5kb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLnNjcm9sbGVyLXdpdGhvdXQtZmVhdHVyZWQgLmNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMik7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjIpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLWd1dHRlcjEpO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICBsZWZ0OiAwO1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXS5zY3JvbGxlci13aXRob3V0LWZlYXR1cmVkIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIyKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNjgwcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXS5zY3JvbGxlci13aXRob3V0LWZlYXR1cmVkIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxubWFpbiB+IGRvY3VtZW50LXZpZXdlciB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjIpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93XG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50XG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLlxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucyxcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93blxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZVxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLlxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZTogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyOiAjMjkyYjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTM6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQ6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNTogIzAwOTVmZjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4vLyAkcmVkICAgIDogI0UwM0E0MDsgLy8gU2Vjb25kYXJ5XG4kcmVkOiAjZGYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZVxuJGdyZXk6ICM5Njk2OTU7XG4kZ3JleTI6ICM2YTZhNmE7IC8vIEZvbnRcbiRncmV5MzogI2Y0ZjRmNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NDogI2RjZGNkYztcbiRncmV5NTogI2IxYjFiMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTY6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuJGdyZWVuOiAjNTBiYzA4O1xuJGdyZWVuMjogIzc2YmIyODsgLy8gRVNHIGdyZWVuXG4keWVsbG93OiAjZjZmNGRiOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyOiAjZmNiMDAyO1xuJG9yYW5nZTogI2ZmNmEwMDtcbiRvcmFuZ2UyOiAjZGE4YjBmO1xuJGJsYWNrOiAjMWUxYzFjO1xuXG4kbWFyazogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJHByaW1hcnk6IHZhcigtLXByaW1hcnksICN7JGJsdWV9KTtcbiRzZWNvbmRhcnk6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnIHdpdGggKFxuICAkYmx1ZTogJGJsdWUsXG4gICRyZWQ6ICRyZWQsXG4gICRncmV5OiAkZ3JleSxcbiAgJHllbGxvdzogJHllbGxvdyxcbiAgJG9yYW5nZTogJG9yYW5nZSxcbiAgJGdyZWVuOiAkZ3JlZW4sXG4gICRibGFjazogJGJsYWNrXG4pO1xuXG4kbWFwOiAoXG4gIGJsdWU6ICRibHVlLFxuICByZWQ6ICRyZWQsXG4gIGdyZXk6ICRncmV5MyxcbiAgeWVsbG93OiAkeWVsbG93LFxuICBvcmFuZ2U6ICRvcmFuZ2UsXG4gIGdyZWVuOiAkZ3JlZW4sXG4gIGJsYWNrOiAkYmxhY2ssXG4pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVhayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JGJyZWFrcG9pbnQgKyAxfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDojeyRicmVha3BvaW50fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skbWlufSkgYW5kIChtYXgtd2lkdGg6I3skbWF4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuXG5cbkBtaXhpbiBsb2FkZXIoJHNpemUgOiAxMnB4LCAkY29sb3VyIDogJGdyZXkpIHtcbiAgLS1zaXplIDogI3skc2l6ZX07IFxuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgbGVmdDpjYWxjKDUwJSAtICh2YXIoLS1zaXplKSAvIDIpKTsgXG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOnZhcigtLXNpemUpOyBcbiAgaGVpZ2h0OnZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjoycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgJGNvbG91cik7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyAkZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIEBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gICAgZnJvbSB7dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB9XG4gIEBjb250ZW50O1xufVxuXG5AbWl4aW4gbG9hZGVyLWFuaW1hdGlvbiB7IFxuICBvcGFjaXR5OjE7IFxuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgQGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcm93c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicm93c2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gX2Jyb3dzZXIoJG5hbWUsICR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBhdC1yb290IDpyb290IHtcbiAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyRuYW1lfVwiXSB7XG4gICAgICBAaWYgJHZlcnNpb24ge1xuICAgICAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyR2ZXJzaW9ufVwiXSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZlYXR1cmUoJG5hbWUpIHtcbiAgQGF0LXJvb3QgOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPVwiI3skbmFtZX1cIl0gJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHdpdGhvdXQtZmVhdHVyZSgkbmFtZSkge1xuICBAYXQtcm9vdCA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj1cIiN7JG5hbWV9XCJdKSAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZmlyZWZveCgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZmlyZWZveCcsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gaWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2llJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBjaHJvbWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2Nocm9tZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gZWRnZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZWRnZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gb3BlcmEoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ29wZXJhJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBzYWZhcmkoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ3NhZmFyaScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEFzcGVjdCBSYXRpbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhc3BlY3QtcmF0aW9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKDE2LzkpXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHJhdGlvIDogJzE2LzknKSB7XG5cbiAgLS1hc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX07XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcblxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX0pIHtcbiAgICBhc3BlY3QtcmF0aW86aW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlLyh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgID4gKiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSBcbiAgfVxufSJdfQ== */