
#app {
  min-height: 85vh;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 8vh;
  background-image: linear-gradient(to right, #1c1919 0%, rgb(26, 24, 24) 100%);
}
body {
  color: rgba(255, 255, 255, .95);
  overscroll-behavior: none;
  padding: 0 !important;
  margin: 0 !important;
  font-family: 'Times New Roman', serif;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 5px;
}
p {
  font-size: 13px;
}
.gold-text {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
.very-large {
  font-size: 22px
}
.small {
  font-size: 12px;
}


h1[data-v-d437c2da] {
  font-size: 30px;
}
.logo[data-v-d437c2da] {
  width: 30%;
  transition: 400ms;
}
.start-grid[data-v-d437c2da] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.charter-description[data-v-d437c2da] {
  font-size: 14px;
  font-weight: 500;
}
.date[data-v-d437c2da] {
  font-size: 30px;
}
@keyframes firework-d437c2da {
0% {
    transform: translate(var(--x), var(--initialY));
    width: var(--initialSize);
    opacity: 1;
}
50% {
    width: 0.5vmin;
    opacity: 1;
}
100% {
    width: var(--finalSize);
    opacity: 0;
}
}
.firework[data-v-d437c2da],
.firework[data-v-d437c2da]::before,
.firework[data-v-d437c2da]::after {
  overflow: hidden;
  margin-bottom: 20vh;
  z-index: -1;
  --initialSize: 0.5vmin;
  --finalSize: 30vmin;
  --particleSize: 0.2vmin;
  --color1: yellow;
  --color2: khaki;
  --color3: white;
  --color4: silver;
  --color5: gold;
  --color6: goldenrod;
  --y: -30vmin;
  --x: -50%;
  --initialY: 30vmin;
  content: "";
  animation: firework-d437c2da 2s infinite;
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translate(-50%, var(--y));
  width: var(--initialSize);
  aspect-ratio: 1;
  background:
    /*     
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 0% 0%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 100% 0%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 100% 100%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 0% 100%,
    */

    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 50% 0%,
    radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 100% 50%,
    radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 50% 100%,
    radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 0% 50%,

    /* bottom right */
    radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 80% 90%,
    radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 95% 90%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 90% 70%,
    radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 100% 60%,
    radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 55% 80%,
    radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 70% 77%,

    /* bottom left */
    radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 22% 90%,
    radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 45% 90%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 33% 70%,
    radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 10% 60%,
    radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 31% 80%,
    radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 28% 77%,
    radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 13% 72%,

    /* top left */
    radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 80% 10%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 95% 14%,
    radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 90% 23%,
    radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 100% 43%,
    radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 85% 27%,
    radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 77% 37%,
    radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 60% 7%,

    /* top right */
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 22% 14%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 45% 20%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 33% 34%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 10% 29%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 31% 37%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 28% 7%,
    radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 13% 42%;
  background-size: var(--initialSize) var(--initialSize);
  background-repeat: no-repeat;
}
.firework[data-v-d437c2da]::before {
  --x: -50%;
  --y: -50%;
  --initialY: -50%;
  /*   transform: translate(-20vmin, -2vmin) rotate(40deg) scale(1.3) rotateY(40deg); */
  transform: translate(-50%, -50%) rotate(40deg) scale(1.3) rotateY(40deg);
  /*   animation: fireworkPseudo 2s infinite; */
}
.firework[data-v-d437c2da]::after {
  --x: -50%;
  --y: -50%;
  --initialY: -50%;
  /*   transform: translate(44vmin, -50%) rotate(170deg) scale(1.15) rotateY(-30deg); */
  transform: translate(-50%, -50%) rotate(170deg) scale(1.15) rotateY(-30deg);
  /*   animation: fireworkPseudo 2s infinite; */
}
.firework[data-v-d437c2da]:nth-child(2) {
  --x: 30vmin;
}
.firework[data-v-d437c2da]:nth-child(2),
.firework[data-v-d437c2da]:nth-child(2)::before,
.firework[data-v-d437c2da]:nth-child(2)::after {
  --color1: yellow;
  --color2: silver;
  --color3: white;
  --color4: silver;
  --color5: gold;
  --color6: goldenrod;
  --finalSize: 40vmin;
  left: 10%;
  top: 60%;
  animation-delay: -0.25s;
}
.firework[data-v-d437c2da]:nth-child(3) {
  --x: -30vmin;
  --y: -50vmin;
}
.firework[data-v-d437c2da]:nth-child(3),
.firework[data-v-d437c2da]:nth-child(3)::before,
.firework[data-v-d437c2da]:nth-child(3)::after {
  --color1: yellow;
  --color2: khaki;
  --color3: white;
  --color4: silver;
  --color5: gold;
  --color6: goldenrod;
  --finalSize: 35vmin;
  left: 80%;
  top: 60%;
  animation-delay: -0.4s;
}


a[data-v-b4a80364] {
  text-decoration: none;
}
h3[data-v-b4a80364] {
  cursor: pointer;
}
h3[data-v-b4a80364]:hover {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
.ticket-grid[data-v-b4a80364] {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
}
p[data-v-b4a80364] {
  width: 70%;
  margin: auto;
  padding-bottom: 1rem;
}
.ticket[data-v-b4a80364] {
  margin-top: 2rem;
}
@media screen and (max-width: 728px) {
.ticket-grid[data-v-b4a80364] {
    grid-template-columns: repeat(1, 1fr);
}
}
img[data-v-b4a80364] {
  width: 45%;
  height: auto;
  opacity: 0.4;
  -moz-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  filter: grayscale(100%);
  transition: 400ms;
  border-radius: 10%;
}
img[data-v-b4a80364]:hover {
  opacity: 1;
  filter: none;
  width: 50%;
}


*[data-v-ed69a306],
*[data-v-ed69a306]::before,
*[data-v-ed69a306]::after {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
}
.container[data-v-ed69a306] {
  width: 60%;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.accordion-item[data-v-ed69a306] {
  border-radius: .4rem;
  margin-bottom: 2rem;
}
.accordion-item hr[data-v-ed69a306] {
  border: 1px solid rgba(255, 255, 255, 0.5);
}
.accordion-link[data-v-ed69a306] {
  color: rgba(255, 255, 255, .8);
  text-decoration: none;
  width: 100%;
  display: flex;
  align-items: center;
  text-align: left;
  justify-content: space-between;
  padding: 1rem 0;
}
.accordion-link h3[data-v-ed69a306] {
  font-weight: 500;
}
.accordion-link span[data-v-ed69a306] {
  display: flex;
  flex-direction: row;
}
.accordion-link i[data-v-ed69a306] {
  color: #e7d5ff;
  padding: .5rem;
}
.accordion-link label[data-v-ed69a306] {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  padding: 10px 0px 1px 10px;
}
.accordion-link div[data-v-ed69a306] {
  display: flex;
}
.accordion-link .ion-md-arrow-down[data-v-ed69a306] {
  display: none;
}
.answer[data-v-ed69a306] {
  max-height: 0;
  overflow: hidden;
  position: relative;
  transition: max-height 650ms;
}
.answer p[data-v-ed69a306] {
  color: #fff;
  font-size: 15px;
  padding: 2rem;
}
.answer label[data-v-ed69a306] {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
}
.answer div[data-v-ed69a306] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.accordion-item:target .answer[data-v-ed69a306] {
  max-height: 20rem;
}
.accordion-item:target .accordion-link .ion-md-arrow-forward[data-v-ed69a306] {
  display: none
}
.accordion-item:target .accordion-link .ion-md-arrow-down[data-v-ed69a306] {
  display: block;
}
@media screen and (max-width: 728px) {
.accordion-item hr[data-v-ed69a306] {
    border: 1px solid rgba(255, 255, 255, 0.5);
}
.container[data-v-ed69a306] {
    width: 90%;
}
.accordion-link span[data-v-ed69a306] {
    flex-direction: column;
}
}


h2[data-v-d07a5516] {
  text-align: left;
  font-size: 18px;
  width: 60%;
  margin: auto;
  margin-top: 5rem;
  margin-bottom: 2rem;
}


.ticket-grid[data-v-721fc458] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
p[data-v-721fc458] {
  width: 70%;
  margin: auto;
  padding-bottom: 1rem;
}
@media screen and (max-width: 728px) {
.ticket-grid[data-v-721fc458] {
    grid-template-columns: repeat(1, 1fr);
}
}
img[data-v-721fc458] {
  width: 60%;
  opacity: 0.4;
  -moz-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  filter: grayscale(100%);
  transition: 400ms;
  border-radius: 10%;
}
img[data-v-721fc458]:hover {
  opacity: 1;
  filter: none;
  width: 65%;
}


.w-fade[data-v-5df6ad11] {
  border: 0px;
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: black;
}
.contact-button[data-v-5df6ad11] {
  font-size: 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  border-radius: 10px;
  width: 45%;
  height: 3rem;
  justify-content: center;
  margin: auto;
  transition: 0.4s;
  margin-bottom: 3rem;
}
@media screen and (max-width: 728px) {
.contact-button[data-v-5df6ad11] {
    width: 95%;
}
}
.space[data-v-5df6ad11] {
  margin-top: 7rem;
}


a[data-v-97229910] {
  background-color: transparent;
}
a[data-v-97229910]:hover {
  text-decoration: none;
}
ul[data-v-97229910] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
li[data-v-97229910] {
  margin: auto;
  display: block;
  text-align: center;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.image-container[data-v-97229910] {
  width: 10rem;
  margin: auto;
}
img[data-v-97229910] {
  width: 100%;
  height: auto;
}
li[data-v-97229910]:hover {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
@media screen and (max-width: 728px) {
ul[data-v-97229910] {
    grid-template-columns: repeat(1, 1fr);
}
}


.hidden[data-v-762b9592] {
  visibility: hidden;
}
button[data-v-762b9592] {
  cursor: pointer;
}

/* remove blue outline */
button[data-v-762b9592]:focus {
  outline: 0;
}
.burger-button[data-v-762b9592] {
  position: relative;
  height: 100%;
  width: 100%;
  min-width: 30px;
  display: block;
  z-index: 999;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  pointer-events: all;
  transition: transform .6s cubic-bezier(.165, .84, .44, 1);
}
.burger-bar[data-v-762b9592] {
  background-color: white;
  position: absolute;
  right: 6px;
  left: 6px;
  height: 2px;
  width: auto;
  margin-top: -1px;
  transition: transform .6s cubic-bezier(.165, .84, .44, 1), opacity .3s cubic-bezier(.165, .84, .44, 1), background-color .6s cubic-bezier(.165, .84, .44, 1);
}
.burger-bar--1[data-v-762b9592] {
  transform: translateY(-6px);
}
.burger-bar--2[data-v-762b9592] {
  transform-origin: 100% 50%;
  transform: scaleX(.8);
}
.burger-button:hover .burger-bar--2[data-v-762b9592] {
  transform: scaleX(1);
}
.no-touchevents .burger-bar--2[data-v-762b9592]:hover {
  transform: scaleX(1);
}
.burger-bar--3[data-v-762b9592] {
  transform: translateY(6px);
}
#burger.active .burger-button[data-v-762b9592] {
  transform: rotate(-180deg);
}
#burger.active .burger-bar[data-v-762b9592] {
  background-color: #fff;
}
#burger.active .burger-bar--1[data-v-762b9592] {
  transform: rotate(45deg)
}
#burger.active .burger-bar--2[data-v-762b9592] {
  opacity: 0;
}
#burger.active .burger-bar--3[data-v-762b9592] {
  transform: rotate(-45deg)
}


.sidebar {
    position: fixed;
}
.slide-enter-active,
.slide-leave-active {
    transition: transform 0.4s ease;
}
.slide-enter,
.slide-leave-to {
    transform: translatey(-100%);
    transition: all 0.3s ease-in 0s
}
.sidebar-backdrop {
    background-color: rgba(0, 0, 0);
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    cursor: pointer;
}
.sidebar-panel {
    overflow-y: auto;
    background-image: linear-gradient(to right, #1c1919 0%, rgb(26, 24, 24) 100%);
    position: fixed;
    left: 0;
    top: 0;
    min-height: 30vh;
    text-align: center;
    width: 100%;
}


header[data-v-730307c5] {
  position: fixed;
  width: 100%;
  display: grid;
  background-image: linear-gradient(to right, #1c1919 0%, rgb(26, 24, 24) 100%);
  padding: 0;
  height: 6vh;
  z-index: 1;
  text-transform: uppercase;
  border-bottom: 1px solid whitesmoke;
}
ul[data-v-730307c5] {
  display: inline-flex;
  width: 80%;
  margin-left: 10%;
}
li[data-v-730307c5] {
  display: inline-flex;
  letter-spacing: 3px;
  margin: auto;
  margin-top: 0px;
  font-size: 1.3vmin;
}
a[data-v-730307c5] {
  color: whitesmoke;
  text-decoration: none;
  transition: 0.2s;
  font-family: 'Times New Roman', serif;
}
a[data-v-730307c5]:hover {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
.language-button[data-v-730307c5] {
  background: none;
  color: rgb(236, 233, 233);
  border: none;
  font: inherit;
  cursor: pointer;
  margin-left: 5%;
}
.active[data-v-730307c5] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;

  -webkit-background-clip: text;
  border-bottom: 1px solid #cb9b51;
}
@media screen and (min-width:729px) {
.burger-container[data-v-730307c5] {
    display: none;
}
.side-bar[data-v-730307c5] {
    display: none;
}
}
@media screen and (max-width: 728px) {
header[data-v-730307c5] {
    float: none;
    text-align: left;
    grid-template-columns: 80% 20%;
    justify-content: center;
}
ul[data-v-730307c5] {
    display: flex;
    flex-direction: column;
}
.desktop[data-v-730307c5] {
    display: none;
}
li[data-v-730307c5] {
    display: flex;
    flex-direction: column;
    font-size: 16px;
    margin-top: 20px;
}
.burger-container[data-v-730307c5] {
    color: white;
    width: 10%;
    margin-left: 90%;
}
}


footer[data-v-51d0a3d3] {
  bottom: 0px;
  border-top: 1px solid goldenrod;
  text-align: center;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  font-size: 10px;
  padding-top: 10px;
}
img[data-v-51d0a3d3] {
  max-width: 100%;
  max-height: 100%;
}
.logo[data-v-51d0a3d3] {
  margin: auto;
  height: 4rem;
}
@media (min-width: 600px) {
footer[data-v-51d0a3d3] {
    grid-template-columns: repeat(3, 1fr);
}
.logo[data-v-51d0a3d3] {
    margin-bottom: 20px;
    height: 5rem;
}
}
ul[data-v-51d0a3d3] {
  list-style-type: none;
}
p[data-v-51d0a3d3] {
  font-size: 8px;
}
li[data-v-51d0a3d3] {
  margin-right: 10%;
  display: inline;
}
a[data-v-51d0a3d3] {
  color: white;
}
a[data-v-51d0a3d3]:hover {
  color: 1px solid goldenrod;
}


main {
  padding-top: 8vh;
  font-size: 1.5em;
  transition: 400ms;
  z-index: i-1;
}
a {
  text-decoration: none;
}
section {
  width: 90%;
  margin: auto;
  text-align: center;
  min-height: 60vh;
  margin-top: 2vh;
}
.main {
  height: 92vh
}
h1 {
  letter-spacing: 8px;
  font-size: 20px;
  font-weight: 500;
}
h3 {
  letter-spacing: 4px;
  font-size: 17px;
  text-transform: uppercase;
  font-weight: 500;
}
h4 {
  font-size: 15px;
  letter-spacing: 4px;
  text-transform: uppercase;
  font-weight: 500;
}
.seperator {
  margin-top: 3vh;
  margin-bottom: 10vh;
}


.back-arrow[data-v-125b4b22] {
  width: 5vw;
  font-size: 3vw;
  border-bottom-right-radius: 20px;
}
.container[data-v-125b4b22] {
  display: flex;
  flex-direction: column;
  width: 100%;
  text-align: center;
}
ul[data-v-125b4b22] {
  list-style-type: none;
}
li[data-v-125b4b22] {
  margin-top: 20px;
}


.back-arrow[data-v-5a0f351b] {
  width: 5vw;
  font-size: 3vw;
  border-bottom-right-radius: 20px;
}
.container[data-v-5a0f351b] {
  display: flex;
  flex-direction: column;
  text-align: center;
}
p[data-v-5a0f351b] {
  width: 80%;
  margin: auto;
}


.full-width[data-v-110b3f18]{
        width: 80%;
        text-align: center;
        margin-left: 10%;
}


.lds-ripple[data-v-6d23c5eb] {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}
.lds-ripple div[data-v-6d23c5eb] {
  position: absolute;
  border: 0px solid;
  background: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  border-radius: 50%;
  animation: lds-ripple-6d23c5eb 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div[data-v-6d23c5eb]:nth-child(2) {
  animation-delay: -0.5s;
}
@keyframes lds-ripple-6d23c5eb {
0% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
}
4.9% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
}
5% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 1;
}
100% {
    top: 0px;
    left: 0px;
    width: 72px;
    height: 72px;
    opacity: 0;
}
}


ul[data-v-716ff336] {
  list-style-type: circle;
  text-align: left;
  width: 50%;
  margin: auto;
}
p[data-v-716ff336] {
  font-size: 12px;
}
button[data-v-716ff336] {
  all: unset;
  cursor: pointer;
}
.button-group[data-v-716ff336] {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  vertical-align: center;
  margin-top: 5rem;
}
.button-group .navigation-button[data-v-716ff336] {
  width: 20%;
  justify-content: center;
  vertical-align: center;
}
.list-booking[data-v-716ff336] {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.price[data-v-716ff336] {
  margin-left: auto;
  padding-top: 3rem;
  font-size: 18px;
}
@media screen and (max-width: 728px) {
h4[data-v-716ff336] {
    margin-top: 20%;
}
.list-booking[data-v-716ff336] {
    flex-direction: column;
}
ul[data-v-716ff336] {
    width: 90%;
}
}


.name {
  margin: 0 !important;
  font-size: 0.8em;
}
.price {
  margin: 0 !important;
}
.checkbox-wrapper-47 input[type="checkbox"] {
  display: none;
  visibility: hidden;
  width: 80%;
}
.checkbox-wrapper-47 label {
  width: 70%;
  position: relative;
  padding-left: 10%;
  padding-right: 10%;
  line-height: 2;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
}
.checkbox-wrapper-47 label:before {
  box-sizing: border-box;
  content: " ";
  position: absolute;
  top: 0.3em;
  left: 0;
  display: block;
  width: 1.5em;
  height: 1.5em;
  border: 2px solid goldenrod;
  border-radius: 6px;
  z-index: -1;
}
.checkbox-wrapper-47 input[type=checkbox]:checked+label {
  padding-left: 10%;
  color: black;
}
.checkbox-wrapper-47 input[type=checkbox]:checked+label:before {
  top: 0;
  width: 100%;
  height: 2em;

  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #cfcb93 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  border-color: goldenrod;
}
.checkbox-wrapper-47 label,
.checkbox-wrapper-47 label::before {
  transition: 0.25s all ease;
}


ul[data-v-c4289584] {
  list-style-type: none;
  text-align: left;
  margin-top: 2rem;
  padding: 0;
}
li[data-v-c4289584] {
  margin-top: .2rem;
  display: grid;
  font-size: 15px;
}
.list-seperator[data-v-c4289584] {
  padding-top: 1rem;
  border-bottom: 1px solid;
  padding-bottom: .5rem;
}
button[data-v-c4289584] {
  all: unset;
  cursor: pointer;
}
.button-group[data-v-c4289584] {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  vertical-align: center;
  margin-top: 5rem;
}
.button-group .navigation-button[data-v-c4289584] {
  width: 20%;
}
.button-group .navigation-button[data-v-c4289584] {
  width: 20%;
}


form[data-v-421662e4] {
  display: flex;
  flex-direction: column;
  width: 70%;
  margin: auto;
  font-size: 14px;
}
p[data-v-421662e4] {
  font-size: 9px;
  color: gray;
}
label[data-v-421662e4] {
  margin-top: 1rem;
  text-align: left;
  color: gray;
  transition: 400ms;
}
input[data-v-421662e4],
select[data-v-421662e4],
textarea[data-v-421662e4] {
  margin-top: .5rem;
  height: 2rem;
  border-radius: 5px;
  transition: 400ms;
}
input[type=text][data-v-421662e4],
input[type=tel][data-v-421662e4] {
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  border-bottom: 1px solid whitesmoke;
  transition: 300ms
}
input[type=text][data-v-421662e4]:focus,
input[type=tel][data-v-421662e4]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.checkbox-input-group[data-v-421662e4] {
  display: flex;
  flex-direction: row;
  font-size: 8px;
}
.input-group[data-v-421662e4] {
  display: flex;
  flex-direction: column-reverse;
}
.input-group:focus-within label[data-v-421662e4] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
input[type=checkbox][data-v-421662e4] {
  background-color: black;
  accent-color: gold;
}
input[type=checkbox][data-v-421662e4]:focus {
  background-color: black;
}
button[data-v-421662e4] {
  all: unset;
  cursor: pointer;
}
.button-group[data-v-421662e4] {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  vertical-align: center;
  margin-top: 5rem;
}
.button-group .navigation-button[data-v-421662e4] {
  width: 20%;
  justify-content: center;
  vertical-align: center;
}
.checkbox-input-group[data-v-421662e4] {
  margin-top: 1rem;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}


.hidden[data-v-7ffafe42] {
  opacity: 0;
}
.top-element[data-v-7ffafe42] {
  width: 80%;
  margin: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
h1[data-v-7ffafe42] {
  font-size: 18px;
}
.back-arrow[data-v-7ffafe42] {
  color: white;
  font-size: 3vw;
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  --webkit-background-clip: text;
}
.container[data-v-7ffafe42] {
  width: 80%;
  margin: auto;
  text-align: center;
}
@media screen and (max-width: 728px) {
.back-arrow[data-v-7ffafe42] {
    font-size: 30px;
}
.top-element[data-v-7ffafe42] {
    margin-top: 2rem;
    width: 100%;
}
h1[data-v-7ffafe42] {
    font-size: 14px;
}
}


.logo[data-v-239be06a] {
  width: 100%;
  margin-left: 35%;
}
img[data-v-239be06a] {
  margin: auto;
  max-width: 30%;
  height: auto;
  margin-top: 4rem;
}
form[data-v-239be06a] {
  display: flex;
  flex-direction: column;
  width: 40%;
  margin: auto;
  font-size: 14px;
  margin-top: 3rem;
}
p[data-v-239be06a] {
  font-size: 12px;
  padding-top: 1.5rem;
  width: 50%;
  margin: auto;
}
label[data-v-239be06a] {
  margin-top: 1rem;
  text-align: left;
  color: gray;
  transition: 400ms;
}
input[data-v-239be06a] {
  margin-top: .5rem;
  height: 2rem;
  border-radius: 5px;
  transition: 400ms;
}
input[data-v-239be06a] {
  background-color: transparent;
  color: rgb(220, 215, 215);
  border: none;
  border: 1px solid whitesmoke;
  border-radius: 5px;
  transition: 300ms
}
input[data-v-239be06a]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border: 1px solid rgb(124, 98, 30);
}
.checkbox-input-group[data-v-239be06a] {
  display: flex;
  flex-direction: row;
  font-size: 8px;
}
.input-group[data-v-239be06a] {
  width: 50%;
  margin: auto;
  display: flex;
  flex-direction: column-reverse;
}
.input-group:focus-within label[data-v-239be06a] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
input[type=checkbox][data-v-239be06a] {
  background-color: black;
  accent-color: gold;
}
input[type=checkbox][data-v-239be06a]:focus {
  background-color: black;
}
button[data-v-239be06a] {
  all: unset;
  cursor: pointer;
}
.button-group[data-v-239be06a] {
  margin-left: 20%;
  width: 60%;
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  vertical-align: center;
  margin-top: 5rem;
}
.button-group .navigation-button[data-v-239be06a] {
  width: 20%;
  justify-content: center;
  vertical-align: center;
}
@media screen and (max-width: 728px) {
form[data-v-239be06a] {
    width: 80%;
}
.button-group[data-v-239be06a] {
    width: 80%;
    margin-left: 10%;
    font-size: 12px;
    justify-content: space-between;
}
}


input[data-v-50534588] {
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  border-bottom: 1px solid whitesmoke;
  transition: 300ms
}
input[data-v-50534588]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}


.modal[data-v-c143d0ee] {
  background-image: linear-gradient(to right, #1c1919 0%, rgb(26, 24, 24) 100%);
  margin-top: 10vh;
  width: 80%;
  position: absolute;
  margin-left: 10%;
  border-radius: 10px;
  height: 80vh;
  border: 1px solid whitesmoke;
}
.modal-container[data-v-c143d0ee] {
  width: 80%;
  margin-left: 10%;
  margin-top: 5%;
}
h1[data-v-c143d0ee] {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin: auto;
  margin-top: 3rem;
}
table[data-v-c143d0ee] {
  width: 80%;
  margin: auto;
  margin-top: 2rem;
  border-spacing: 0;
  font-size: 12px;
}
table tr[data-v-c143d0ee] {
  border-bottom: 1px solid white;
  text-align: center;
  transition: 500ms;
  margin-top: 2rem;
  border-radius: 20px;
}
table tr[data-v-c143d0ee]:nth-child(2n+2) {
  background-color: rgb(53, 44, 44);
}
table tr:last-child td[data-v-c143d0ee]:first-child {
  border-bottom-left-radius: 10px;
}
table tr:first-child th[data-v-c143d0ee]:first-child {
  border-top-left-radius: 10px;
}
table tr:last-child th[data-v-c143d0ee]:last-child {
  border-top-right-radius: 10px;
}
table tr:last-child td[data-v-c143d0ee]:last-child {
  border-bottom-right-radius: 10px;
}
.booking-item[data-v-c143d0ee]:hover {
  color: black;
  cursor: pointer;
}
tr[data-v-c143d0ee] {
  margin-top: 4rem;
  height: 3rem;
}
th[data-v-c143d0ee] {
  color: white;
  font-size: 12px;
}
.custom-input[data-v-c143d0ee] {
  margin-top: 10rem;
  margin-left: 35%;
  width: 30%;
  height: 2rem;
  border-bottom: 1px solid whitesmoke;
}
input[data-v-c143d0ee] {
  margin-left: 10px;
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  transition: 300ms
}
input[data-v-c143d0ee]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.button-group[data-v-c143d0ee] {
  display: flex;
  justify-content: space-between;
  margin-top: 15%;
}
.save-button[data-v-c143d0ee] {
  border: unset;
  background-color: transparent;
  cursor: pointer;
  width: 30%;
  font-size: 12px;
  margin-left: 5%;
}
@media (min-width: 728px) {
table[data-v-c143d0ee] {
    font-size: 12px;
}
.custom-button[data-v-c143d0ee] {
    width: 30%;
}
}
h3[data-v-c143d0ee],
h4[data-v-c143d0ee],
p[data-v-c143d0ee] {
  width: 80%;
  margin-left: 10%;
}
p[data-v-c143d0ee] {
  font-size: 9px;
  color: gray;
}
label[data-v-c143d0ee] {
  margin-top: 1rem;
  text-align: left;
  color: gray;
  transition: 400ms;
}
input[data-v-c143d0ee],
select[data-v-c143d0ee],
textarea[data-v-c143d0ee] {
  margin-top: .5rem;
  height: 2rem;
  border-radius: 5px;
  transition: 400ms;
}
input[type=text][data-v-c143d0ee],
input[type=password][data-v-c143d0ee],
input[type=tel][data-v-c143d0ee],
textarea[data-v-c143d0ee] {
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  border-bottom: 1px solid whitesmoke;
  transition: 300ms
}
input[type=text][data-v-c143d0ee]:focus,
input[type=password][data-v-c143d0ee]:focus,
input[type=tel][data-v-c143d0ee]:focus,
textarea[data-v-c143d0ee]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.checkbox-input-group[data-v-c143d0ee] {
  display: flex;
  flex-direction: row;
  font-size: 8px;
}
.input-group[data-v-c143d0ee] {
  display: flex;
  flex-direction: column-reverse;
}
.input-group:focus-within label[data-v-c143d0ee] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
input[type=checkbox][data-v-c143d0ee] {
  background-color: black;
  accent-color: gold;
}
input[type=checkbox][data-v-c143d0ee]:focus {
  background-color: black;
}
.ticket-list-item[data-v-c143d0ee] {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}
.ticket-text[data-v-c143d0ee] {
  font-size: 12px;
  color: whitesmoke;
  max-width: 40%;
}
@media (min-width: 728px) {
.modal[data-v-c143d0ee] {
    width: 50%;
    margin-left: 25%;
}
.ticket-list-item[data-v-c143d0ee] {
    flex-direction: row;
}
}


h1[data-v-6ec91949] {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin: auto;
  margin-top: 7rem;
}
table[data-v-6ec91949] {
  width: 80%;
  margin: auto;
  margin-top: 2rem;
  border-spacing: 0;
  font-size: 12px;
}
table tr[data-v-6ec91949] {
  border-bottom: 1px solid white;
  text-align: center;
  transition: 500ms;
  margin-top: 2rem;
  border-radius: 20px;
}
table tr[data-v-6ec91949]:nth-child(2n+2) {
  background-color: rgb(53, 44, 44);
}
table tr:last-child td[data-v-6ec91949]:first-child {
  border-bottom-left-radius: 10px;
}
table tr:first-child th[data-v-6ec91949]:first-child {
  border-top-left-radius: 10px;
}
table tr:last-child th[data-v-6ec91949]:last-child {
  border-top-right-radius: 10px;
}
table tr:last-child td[data-v-6ec91949]:last-child {
  border-bottom-right-radius: 10px;
}
tr[data-v-6ec91949] {
  margin-top: 4rem;
  height: 3rem;
}
th[data-v-6ec91949] {
  color: white;
  font-size: 12px;
}
.custom-input[data-v-6ec91949] {
  margin-top: 10rem;
  margin-left: 35%;
  width: 30%;
  height: 2rem;
  border-bottom: 1px solid whitesmoke;
}
input[data-v-6ec91949] {
  margin-left: 10px;
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  transition: 300ms
}
.add-button[data-v-6ec91949] {
  border: unset;
  background-color: transparent;
  cursor: pointer;
  width: 30%;
  font-size: 18px;
  margin-left: 5%;
}
input[data-v-6ec91949]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
@media (min-width: 600px) {
table[data-v-6ec91949] {
    font-size: 12px;
}
.custom-button[data-v-6ec91949] {
    width: 30%;
}
}
h3[data-v-6ec91949],
h4[data-v-6ec91949],
p[data-v-6ec91949] {
  width: 80%;
  margin-left: 10%;
}


h1[data-v-5f493a24] {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin: auto;
  margin-top: 7rem;
}
.user-container[data-v-5f493a24] {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin: auto;
  font-size: 14px;
}
.save-button[data-v-5f493a24] {
  border: unset;
  background-color: transparent;
  cursor: pointer;
  width: 30%;
  font-size: 18px;
  margin-left: 5%;
}
@media screen and (max-width: 728px) {
.user-container[data-v-5f493a24] {
    width: 90%;
}
.save-button[data-v-5f493a24] {
    width: 50%;
}
h1[data-v-5f493a24] {
    font-size: 12px;
    width: 80%;
}
}
p[data-v-5f493a24] {
  font-size: 9px;
  color: gray;
}
label[data-v-5f493a24] {
  margin-top: 1rem;
  text-align: left;
  color: gray;
  transition: 400ms;
}
input[data-v-5f493a24],
select[data-v-5f493a24],
textarea[data-v-5f493a24] {
  margin-top: .5rem;
  height: 2rem;
  border-radius: 5px;
  transition: 400ms;
}
input[type=text][data-v-5f493a24],
input[type=password][data-v-5f493a24],
input[type=tel][data-v-5f493a24] {
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  border-bottom: 1px solid whitesmoke;
  transition: 300ms
}
input[type=text][data-v-5f493a24]:focus,
input[type=password][data-v-5f493a24]:focus,
input[type=tel][data-v-5f493a24]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.checkbox-input-group[data-v-5f493a24] {
  display: flex;
  flex-direction: row;
  font-size: 8px;
}
.input-group[data-v-5f493a24] {
  display: flex;
  flex-direction: column-reverse;
}
.input-group:focus-within label[data-v-5f493a24] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
input[type=checkbox][data-v-5f493a24] {
  background-color: black;
  accent-color: gold;
}
input[type=checkbox][data-v-5f493a24]:focus {
  background-color: black;
}


.modal[data-v-133abd30] {
  background-image: linear-gradient(to right, #1c1919 0%, rgb(26, 24, 24) 100%);
  margin-top: 10vh;
  width: 80%;
  position: absolute;
  margin-left: 10%;
  border-radius: 10px;
  height: 80vh;
  border: 1px solid whitesmoke;
}
.modal-container[data-v-133abd30] {
  width: 80%;
  margin-left: 10%;
  margin-top: 5%;
}
@media (min-width: 728px) {
.modal[data-v-133abd30] {
    width: 50%;
    margin-left: 25%;
}
}
h1[data-v-133abd30] {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin: auto;
  margin-top: 7rem;
}
table[data-v-133abd30] {
  width: 80%;
  margin: auto;
  margin-top: 2rem;
  border-spacing: 0;
  font-size: 12px;
}
table tr[data-v-133abd30] {
  border-bottom: 1px solid white;
  text-align: center;
  transition: 500ms;
  margin-top: 2rem;
  border-radius: 20px;
}
table tr[data-v-133abd30]:nth-child(2n+2) {
  background-color: rgb(53, 44, 44);
}
table tr:last-child td[data-v-133abd30]:first-child {
  border-bottom-left-radius: 10px;
}
table tr:first-child th[data-v-133abd30]:first-child {
  border-top-left-radius: 10px;
}
table tr:last-child th[data-v-133abd30]:last-child {
  border-top-right-radius: 10px;
}
table tr:last-child td[data-v-133abd30]:last-child {
  border-bottom-right-radius: 10px;
}
.booking-item[data-v-133abd30]:hover {
  color: black;
  cursor: pointer;
}
tr[data-v-133abd30] {
  margin-top: 4rem;
  height: 3rem;
}
th[data-v-133abd30] {
  color: white;
  font-size: 12px;
}
.custom-input[data-v-133abd30] {
  margin-top: 10rem;
  margin-left: 35%;
  width: 30%;
  height: 2rem;
  border-bottom: 1px solid whitesmoke;
}
input[data-v-133abd30] {
  margin-left: 10px;
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  transition: 300ms
}
input[data-v-133abd30]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.button-group[data-v-133abd30] {
  width: 80%;
  margin-left: 10%;
  display: flex;
  justify-content: space-between;
  margin-top: 15%;
}
.save-button[data-v-133abd30] {
  border: unset;
  background-color: transparent;
  cursor: pointer;
  width: 30%;
  font-size: 12px;
  margin-left: 5%;
}
@media (min-width: 600px) {
table[data-v-133abd30] {
    font-size: 12px;
}
.custom-button[data-v-133abd30] {
    width: 30%;
}
}
h3[data-v-133abd30],
h4[data-v-133abd30],
p[data-v-133abd30] {
  width: 80%;
  margin-left: 10%;
}
label[data-v-133abd30] {
  margin-top: 1rem;
  text-align: left;
  color: gray;
  transition: 400ms;
}
input[data-v-133abd30],
select[data-v-133abd30],
textarea[data-v-133abd30] {
  margin-top: .5rem;
  height: 2rem;
  border-radius: 5px;
  transition: 400ms;
}
input[type=text][data-v-133abd30],
input[type=password][data-v-133abd30],
input[type=tel][data-v-133abd30],
textarea[data-v-133abd30] {
  background-color: transparent;
  color: rgb(179, 170, 170);
  border: none;
  border-bottom: 1px solid whitesmoke;
  transition: 300ms
}
input[type=text][data-v-133abd30]:focus,
input[type=password][data-v-133abd30]:focus,
input[type=tel][data-v-133abd30]:focus,
textarea[data-v-133abd30]:focus {
  background-color: rgb(23, 20, 20);
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
  outline: none;
  outline: focus;
  border-bottom: 1px solid goldenrod;
}
.checkbox-input-group[data-v-133abd30] {
  display: flex;
  flex-direction: row;
  font-size: 8px;
}
.input-group[data-v-133abd30] {
  display: flex;
  flex-direction: column-reverse;
}
.input-group:focus-within label[data-v-133abd30] {
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
input[type=checkbox][data-v-133abd30] {
  background-color: black;
  accent-color: gold;
}
input[type=checkbox][data-v-133abd30]:focus {
  background-color: black;
}


.container[data-v-45ebfdb6] {
  display: flex;
  flex-direction: row;
  width: 100vw;
  height: 100vh
}
.burger-container[data-v-45ebfdb6] {
  height: 30px;
  width: 20px;
  margin-top: 20px;
}
.custom-head-sidebar[data-v-45ebfdb6] {
  display: flex;
  justify-content: space-around;
  flex-direction: row;
  margin-top: 2rem;
}
.content[data-v-45ebfdb6] {
  margin-left: 7%;
  height: 100%;
  width: 93%;
}
.sidebar[data-v-45ebfdb6] {
  border-right: 1px solid whitesmoke;
  background-image: linear-gradient(to right, #0a0808 0%, rgb(26, 24, 24) 100%);
  width: 8%;
  position: fixed;
  min-height: 100%;
  transition: 300ms;
}
.rotate[data-v-45ebfdb6] {
  transition: 400ms;
  transform: rotateX(180deg);
}
.side-bar-open[data-v-45ebfdb6] {
  width: 20%;
}
@media screen and (max-width: 728px) {
.side-bar-open[data-v-45ebfdb6] {
    width: 50%;
}
}
.sidebar ul[data-v-45ebfdb6] {
  list-style: none;
  font-size: 15px;
  cursor: pointer;
}
.sidebar li[data-v-45ebfdb6] {
  margin-top: 2rem;
  transition: 250ms;
  background-image: whitesmoke;
  -webkit-background-clip: text;
}
.sidebar li[data-v-45ebfdb6]:hover {
  margin-left: 10px;
  background-image: linear-gradient(to right,
      #cb9b51 22%,
      #f6e27a 45%,
      #f6f2c0 50%,
      #f6e27a 55%,
      #cb9b51 78%);
  color: transparent;
  -webkit-background-clip: text;
}
.button[data-v-45ebfdb6] {
  all: unset;
  cursor: pointer;
}
.home-icon[data-v-45ebfdb6] {
  width: auto;
  height: 20px;
  transition: 400ms;
  filter: drop-shadow(16px 16px 20px red) invert(20%);
}
.home-icon[data-v-45ebfdb6]:hover {
  filter: none;
}
.button-group[data-v-45ebfdb6] {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  vertical-align: center;
  margin-top: 5rem;
}
.button-group .navigation-button[data-v-45ebfdb6] {
  width: 20%;
  justify-content: center;
  vertical-align: center;
}
.checkbox-input-group[data-v-45ebfdb6] {
  margin-top: 1rem;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiO0FBdUJBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBOzs7QUNiQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQThDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBOzs7QUM5S0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7OztBQ2hEQTs7O0VBR0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUVBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBOzs7QUNsR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTs7O0FDN0JBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7OztBQ3ZDQTtFQUNBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7QUFDQTtBQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBOzs7QUNvREE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFHQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTs7O0FDbkpBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUVBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTs7O0FDMUZBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTs7O0FDZ0RBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBOzs7OztrQkFLQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBOzs7OztrQkFLQTtFQUNBOztFQUVBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBOzs7QUMvTEE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBOzs7QUN5Q0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7OztBQ3RJQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBOzs7QUNpUEE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTs7O0FDdFNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7OztBQzhDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztBQ01BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBOzs7QUM1SEE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7O0VBRUE7Ozs7O2tCQUtBO0VBQ0E7QUFDQTtBQUVBOztFQUVBO0FBQ0E7OztBQ3lFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7OztBQ3ZEQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBRUE7OztFQUdBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtFQUNBOzs7OztrQkFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFHQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTs7O0FDNUpBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0FBQ0E7QUFFQTs7O0FDbEJBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFHQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUN0UUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBOzs7QUNnSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUVBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOzs7O0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7Ozs7RUFJQTtFQUNBOzs7OztrQkFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTs7O0FDOVNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFFQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7QUFDQTs7O0FDdEZBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBOzs7OztrQkFLQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBOzs7QUNqRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUVBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7QUFDQTtBQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7Ozs7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7OztFQUlBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTs7Ozs7a0JBS0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTs7O0FDelFBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUdBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFFQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFFQTtBQUlBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0VBQ0E7Ozs7O2tCQUtBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL0FwcC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS9jb21wb25lbnRzL1NlY3Rpb25zL1N0YXJ0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvU2VjdGlvbnMvSG91c2luZy52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS9jb21wb25lbnRzL01vZHVsZS9BY2NvcmRpb25Qcm9ncmFtLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvU2VjdGlvbnMvUHJvZ3JhbS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS9jb21wb25lbnRzL1NlY3Rpb25zL1RpY2tldHMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9TZWN0aW9ucy9Db250YWN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvU2VjdGlvbnMvU3BvbnNvcnMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9OYXZCYXIvQnVyZ2VyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvTmF2QmFyL1NpZGVCYXIudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvdmlld3MvSGVhZGVyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL3ZpZXdzL0Zvb3Rlci52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS92aWV3cy9NYWluQ2FyZC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS92aWV3cy9JbXByZXNzdW0udnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvdmlld3MvRGF0ZW5zY2h1dHoudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvdmlld3MvQWdiLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvTW9kdWxlL0xvYWRpbmcudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9UaWNrZXRzUmVnaXN0cmF0aW9uL0NvbmZpcm1hdGlvblBhZ2UudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9Nb2R1bGUvQ2hlY2tib3hTdHlsZWQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9UaWNrZXRzUmVnaXN0cmF0aW9uL1RpY2tldEJ1aWxkZXIudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9UaWNrZXRzUmVnaXN0cmF0aW9uL1VzZXJDb250YWN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL3ZpZXdzL1RpY2tldHMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9BY2NvdW50Vmlldy9Mb2dpbi52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS9jb21wb25lbnRzL01vZHVsZS9DdXN0b21JbnB1dC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Z1ZS9jb21wb25lbnRzL0FjY291bnRWaWV3L1VzZXJzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvQWNjb3VudFZpZXcvQm9va2luZ3MudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy92dWUvY29tcG9uZW50cy9BY2NvdW50Vmlldy9BY2NvdW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL2NvbXBvbmVudHMvQWNjb3VudFZpZXcvRXZlbnRzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvdnVlL3ZpZXdzL0FjY291bnQudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cbiAgPGRpdiBpZD1cImFwcFwiPlxuICAgIDxub3RpZmljYXRpb25zIGdyb3VwPVwiZm9vXCIgLz5cbiAgICA8cm91dGVyLXZpZXcgLz5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnQXBwJyxcbiAgY29tcG9uZW50czoge1xuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsYW5ndWFnZTogJ0RFJ1xuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuI2FwcCB7XG4gIG1pbi1oZWlnaHQ6IDg1dmg7XG59XG5cbmh0bWwge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgc2Nyb2xsLXBhZGRpbmctdG9wOiA4dmg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzFjMTkxOSAwJSwgcmdiKDI2LCAyNCwgMjQpIDEwMCUpO1xuXG59XG5cbmJvZHkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuOTUpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZ29sZC10ZXh0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbi52ZXJ5LWxhcmdlIHtcbiAgZm9udC1zaXplOiAyMnB4XG59XG5cbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpcmV3b3JrXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZmlyZXdvcmtcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJmaXJld29ya1wiIC8+XG5cbiAgICA8aDEgY2xhc3M9XCJoZWFkbGluZSBnb2xkLXRleHRcIj5cbiAgICAgIDUwIEphaHJlIENoYXJ0ZXJmZWllclxuICAgIDwvaDE+XG4gICAgPGltZ1xuICAgICAgY2xhc3M9XCJsb2dvXCJcbiAgICAgIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL0xvZ28ucG5nYClcIlxuICAgID5cbiAgICA8ZGl2IGNsYXNzPVwic3RhcnQtZ3JpZFwiPlxuICAgICAgPGRpdiAvPlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8cCBjbGFzcz1cImRhdGUgZ29sZC10ZXh0XCI+XG4gICAgICAgICAgMjMgMjQgMjUgSnVuaSAyMDIzXG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cCBjbGFzcz1cImNoYXJ0ZXItZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBHdWRlIHVuZCBlcyBpc3Qgc293ZWl0ISBXaWUgYmVyZWl0cyB2b3IgZWluaWdlbiBXb2NoZW4gYW5nZWvDvG5kaWd0IGxhZGVuIHdpciBldWNoIGhldXRlIGhlcnpsaWNoc3QgenUgdW5zZXJlclxuICAgICAgICAgIENoYXJ0ZXJmZWllciBuYWNoIE1haW56IGVpbiFcbiAgICAgICAgICBFcyBlcndhcnRldCBFdWNoIGVpbiBhYndlY2hzbHVuZ3NyZWljaGVzIFdvY2hlbmVuZGUgbWl0IGludGVyZXNzYW50ZW4gdW5kIGVyZWlnbmlzcmVpY2hlbiBBa3Rpdml0w6R0ZW4uXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBsYW5ndWFnZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdkZScgfSxcbiAgfSxcbiAgZGF0YTogKCkgPT4gKHtcbiAgICBtZW51T3BlbjogZmFsc2UsXG4gICAgdGV4dDoge1xuICAgICAgXCJERVwiOiB7XG4gICAgICB9LFxuICAgICAgXCJFTlwiOiB7XG4gICAgICB9XG4gICAgfVxuXG4gIH0pLFxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmgxIHtcbiAgZm9udC1zaXplOiAzMHB4O1xufVxuXG4ubG9nbyB7XG4gIHdpZHRoOiAzMCU7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xufVxuXG4uc3RhcnQtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbi5jaGFydGVyLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuXG59XG5cbi5kYXRlIHtcbiAgZm9udC1zaXplOiAzMHB4O1xufVxuXG5Aa2V5ZnJhbWVzIGZpcmV3b3JrIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXgpLCB2YXIoLS1pbml0aWFsWSkpO1xuICAgIHdpZHRoOiB2YXIoLS1pbml0aWFsU2l6ZSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgd2lkdGg6IDAuNXZtaW47XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHdpZHRoOiB2YXIoLS1maW5hbFNpemUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZpcmV3b3JrLFxuLmZpcmV3b3JrOjpiZWZvcmUsXG4uZmlyZXdvcms6OmFmdGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMjB2aDtcbiAgei1pbmRleDogLTE7XG4gIC0taW5pdGlhbFNpemU6IDAuNXZtaW47XG4gIC0tZmluYWxTaXplOiAzMHZtaW47XG4gIC0tcGFydGljbGVTaXplOiAwLjJ2bWluO1xuICAtLWNvbG9yMTogeWVsbG93O1xuICAtLWNvbG9yMjoga2hha2k7XG4gIC0tY29sb3IzOiB3aGl0ZTtcbiAgLS1jb2xvcjQ6IHNpbHZlcjtcbiAgLS1jb2xvcjU6IGdvbGQ7XG4gIC0tY29sb3I2OiBnb2xkZW5yb2Q7XG4gIC0teTogLTMwdm1pbjtcbiAgLS14OiAtNTAlO1xuICAtLWluaXRpYWxZOiAzMHZtaW47XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGFuaW1hdGlvbjogZmlyZXdvcmsgMnMgaW5maW5pdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgdmFyKC0teSkpO1xuICB3aWR0aDogdmFyKC0taW5pdGlhbFNpemUpO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJhY2tncm91bmQ6XG4gICAgLyogICAgIFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMCUgMCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IxKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAxMDAlIDAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMTAwJSAxMDAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMCUgMTAwJSxcbiAgICAqL1xuXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IxKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA1MCUgMCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IyKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAxMDAlIDUwJSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjMpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDUwJSAxMDAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yNCkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMCUgNTAlLFxuXG4gICAgLyogYm90dG9tIHJpZ2h0ICovXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3I1KSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA4MCUgOTAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yNikgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgOTUlIDkwJSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjEpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDkwJSA3MCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IyKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAxMDAlIDYwJSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjMpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDU1JSA4MCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3I0KSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA3MCUgNzclLFxuXG4gICAgLyogYm90dG9tIGxlZnQgKi9cbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjUpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDIyJSA5MCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3I2KSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA0NSUgOTAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMzMlIDcwJSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjIpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDEwJSA2MCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IzKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAzMSUgODAlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yNCkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMjglIDc3JSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjUpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDEzJSA3MiUsXG5cbiAgICAvKiB0b3AgbGVmdCAqL1xuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yNikgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgODAlIDEwJSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjEpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDk1JSAxNCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IyKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA5MCUgMjMlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMykgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMTAwJSA0MyUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3I0KSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSA4NSUgMjclLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yNSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgNzclIDM3JSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjYpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDYwJSA3JSxcblxuICAgIC8qIHRvcCByaWdodCAqL1xuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMjIlIDE0JSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjEpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDQ1JSAyMCUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IxKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAzMyUgMzQlLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHZhcigtLWNvbG9yMSkgdmFyKC0tcGFydGljbGVTaXplKSwgIzAwMDAgMCkgMTAlIDI5JSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB2YXIoLS1jb2xvcjEpIHZhcigtLXBhcnRpY2xlU2l6ZSksICMwMDAwIDApIDMxJSAzNyUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IxKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAyOCUgNyUsXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY29sb3IxKSB2YXIoLS1wYXJ0aWNsZVNpemUpLCAjMDAwMCAwKSAxMyUgNDIlO1xuICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLWluaXRpYWxTaXplKSB2YXIoLS1pbml0aWFsU2l6ZSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5maXJld29yazo6YmVmb3JlIHtcbiAgLS14OiAtNTAlO1xuICAtLXk6IC01MCU7XG4gIC0taW5pdGlhbFk6IC01MCU7XG4gIC8qICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwdm1pbiwgLTJ2bWluKSByb3RhdGUoNDBkZWcpIHNjYWxlKDEuMykgcm90YXRlWSg0MGRlZyk7ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0MGRlZykgc2NhbGUoMS4zKSByb3RhdGVZKDQwZGVnKTtcbiAgLyogICBhbmltYXRpb246IGZpcmV3b3JrUHNldWRvIDJzIGluZmluaXRlOyAqL1xufVxuXG4uZmlyZXdvcms6OmFmdGVyIHtcbiAgLS14OiAtNTAlO1xuICAtLXk6IC01MCU7XG4gIC0taW5pdGlhbFk6IC01MCU7XG4gIC8qICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNDR2bWluLCAtNTAlKSByb3RhdGUoMTcwZGVnKSBzY2FsZSgxLjE1KSByb3RhdGVZKC0zMGRlZyk7ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgxNzBkZWcpIHNjYWxlKDEuMTUpIHJvdGF0ZVkoLTMwZGVnKTtcbiAgLyogICBhbmltYXRpb246IGZpcmV3b3JrUHNldWRvIDJzIGluZmluaXRlOyAqL1xufVxuXG4uZmlyZXdvcms6bnRoLWNoaWxkKDIpIHtcbiAgLS14OiAzMHZtaW47XG59XG5cbi5maXJld29yazpudGgtY2hpbGQoMiksXG4uZmlyZXdvcms6bnRoLWNoaWxkKDIpOjpiZWZvcmUsXG4uZmlyZXdvcms6bnRoLWNoaWxkKDIpOjphZnRlciB7XG4gIC0tY29sb3IxOiB5ZWxsb3c7XG4gIC0tY29sb3IyOiBzaWx2ZXI7XG4gIC0tY29sb3IzOiB3aGl0ZTtcbiAgLS1jb2xvcjQ6IHNpbHZlcjtcbiAgLS1jb2xvcjU6IGdvbGQ7XG4gIC0tY29sb3I2OiBnb2xkZW5yb2Q7XG4gIC0tZmluYWxTaXplOiA0MHZtaW47XG4gIGxlZnQ6IDEwJTtcbiAgdG9wOiA2MCU7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMjVzO1xufVxuXG4uZmlyZXdvcms6bnRoLWNoaWxkKDMpIHtcbiAgLS14OiAtMzB2bWluO1xuICAtLXk6IC01MHZtaW47XG59XG5cbi5maXJld29yazpudGgtY2hpbGQoMyksXG4uZmlyZXdvcms6bnRoLWNoaWxkKDMpOjpiZWZvcmUsXG4uZmlyZXdvcms6bnRoLWNoaWxkKDMpOjphZnRlciB7XG4gIC0tY29sb3IxOiB5ZWxsb3c7XG4gIC0tY29sb3IyOiBraGFraTtcbiAgLS1jb2xvcjM6IHdoaXRlO1xuICAtLWNvbG9yNDogc2lsdmVyO1xuICAtLWNvbG9yNTogZ29sZDtcbiAgLS1jb2xvcjY6IGdvbGRlbnJvZDtcbiAgLS1maW5hbFNpemU6IDM1dm1pbjtcbiAgbGVmdDogODAlO1xuICB0b3A6IDYwJTtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40cztcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGgxIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBVbnRlcmt1bmZ0XG4gICAgPC9oMT5cbiAgICA8cD5cbiAgICAgIE5vY2gga2VpbiBTY2hsYWZwbGF0ej8gS2VpbiBQcm9ibGVtISBVbnRlbiBmaW5kZXN0IGR1IGRyZWkgSG90ZWxzIGRpZSBmw7xyIGRlbiBaZWl0cmF1bSBlaW5lIGtvc3RlbmfDvG5zdGlnZVxuICAgICAgw5xiZXJuYWNodHN1bmdzbcO2Z2xpY2hrZWl0IGJpZXRlbi5cbiAgICAgIEFsdGVybmF0aXYga2FubnN0IGR1IGRpciBpbSBUaWNrZXQgYXVjaCBlaW5lbiDDnGJlcm5hY2h0dW5nc3BsYXR6IGluIGRlciBUdXJuaGFsbGUgZGF6dWJ1Y2hlbi5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cInRpY2tldC1ncmlkXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGlja2V0XCJcbiAgICAgICAgQGNsaWNrPVwib3BlbldlYnNpdGUoJ2h0dHBzOi8vd3d3LmhvdGVsLWJiLmNvbS9kZS9ob3RlbC9tYWluei1oYmY/Z2NsaWQ9Q2owS0NRaUEwb2FnQmhESEFSSXNBSS1CYmdldV9hNTNMbGs2TW1uQ0t1aFNrNXR6LUJDa0Y5UjlrQV85TGRMOElqRV9TZ2dlUTZQZndsa2FBbUtJRUFMd193Y0ImZ2Nsc3JjPWF3LmRzJylcIlxuICAgICAgPlxuICAgICAgICA8aDM+QiZCPC9oMz5cbiAgICAgICAgPCEtLSA8aW1nIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL0JCTWFpbnoucG5nYClcIj4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0aWNrZXRcIlxuICAgICAgICBAY2xpY2s9XCJvcGVuV2Vic2l0ZSgnaHR0cHM6Ly93d3cuYmVzdHdlc3Rlcm4uZGUvaG90ZWxzL01haW56L0Jlc3QtV2VzdGVybi1Ib3RlbC1NYWlueicpXCJcbiAgICAgID5cbiAgICAgICAgPGgzPkJlc3QgV2VzdGVybjwvaDM+XG4gICAgICAgIDwhLS0gPGltZyA6c3JjPVwicmVxdWlyZShgLi4vLi4vYXNzZXRzL2ltYWdlcy9CZXN0d2VzdGVybi5wbmdgKVwiPiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRpY2tldFwiXG4gICAgICAgIEBjbGljaz1cIm9wZW5XZWJzaXRlKCdodHRwczovL2hyZXdhcmRzLmNvbS9kZS9pbnRlcmNpdHlob3RlbC1tYWluej93dF9tYz1wYWlkX3NlYXJjaF9icmFuZC5pY2guZ29vZ2xlLm1haW56LmhvdGVsX2xpbmsucmVzcG9uc2l2ZV9hZCZnY2xpZD1DajBLQ1FpQTBvYWdCaERIQVJJc0FJLUJiZ2RIb1dSS0I1cHZiQjI3MFktTjJDUUFTWmVZajViSlJKYTBESWd1TUYtcFMtX0p0cGtuWHBnYUFybnNFQUx3X3djQicpXCJcbiAgICAgID5cbiAgICAgICAgPGgzPkludGVyY2l0eTwvaDM+XG4gICAgICAgIDwhLS0gPGltZyA6c3JjPVwicmVxdWlyZShgLi4vLi4vYXNzZXRzL2ltYWdlcy9JbnRlcmNpdHkucG5nYClcIj4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBsYW5ndWFnZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdkZScgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIG9wZW5XZWJzaXRlKHVybCkge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgfVxuICB9XG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaDMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmgzOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbi50aWNrZXQtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG59XG5cbnAge1xuICB3aWR0aDogNzAlO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4udGlja2V0IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzI4cHgpIHtcbiAgLnRpY2tldC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xuICB9XG59XG5cbmltZyB7XG4gIHdpZHRoOiA0NSU7XG4gIGhlaWdodDogYXV0bztcbiAgb3BhY2l0eTogMC40O1xuICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAtbW96LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAtby1maWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgLW1zLWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG4gIGJvcmRlci1yYWRpdXM6IDEwJTtcbn1cblxuaW1nOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgZmlsdGVyOiBub25lO1xuICB3aWR0aDogNTAlO1xufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxkaXZcbiAgICAgIHYtZm9yPVwicHJvZ3JhbSwga2V5IGluIHByb2dyYW1MaXN0XCJcbiAgICAgIDppZD1cIidxdWVzdGlvbicgKyBwcm9ncmFtLm5hbWVcIlxuICAgICAgOmtleT1cIidwcm9nYW0tJyArIGtleVwiXG4gICAgICBjbGFzcz1cImFjY29yZGlvbi1pdGVtXCJcbiAgICA+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImFjY29yZGlvbi1saW5rXCJcbiAgICAgICAgOmhyZWY9XCInI3F1ZXN0aW9uJyArIHByb2dyYW0ubmFtZVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gPGEgY2xhc3M9XCJhY2NvcmRpb24tbGlua1wiPiAtLT5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgPGgzPnt7IHByb2dyYW0ubmFtZSB9fTwvaDM+XG4gICAgICAgICAgPGxhYmVsIHYtaWY9XCJwcm9ncmFtLmxvY2F0aW9uXCI+QHt7IHByb2dyYW0ubG9jYXRpb24gfX08L2xhYmVsPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpb24tbWQtYXJyb3ctZm9yd2FyZFwiPis8L2k+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpb24tbWQtYXJyb3ctZG93blwiIC8+XG4gICAgICA8L2E+XG4gICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGxhYmVsIHYtaWY9XCJwcm9ncmFtLnByaWNlXCI+IFByZWlzIHt7IHByb2dyYW0ucHJpY2UudG9GaXhlZCgyKSB9feKCrDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsIHYtaWY9XCJwcm9ncmFtLnN0YXJ0VGltZTI0ICYmIHByb2dyYW0uZW5kVGltZTI0XCI+IHt7XG4gICAgICAgICAgICBwcm9ncmFtLnN0YXJ0VGltZTI0ICsgXCItXCIgKyBwcm9ncmFtLmVuZFRpbWUyNFxuICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWwgdi1pZj1cInByb2dyYW0ubGVmdFwiPnt7IHByb2dyYW0ubGVmdCB9fSAvIHt7IHByb2dyYW0uYW1vdW50QXZhaWxhYmxlIH19IFRpY2tldHM8L2xhYmVsPlxuXG4gICAgICAgICAgPGxhYmVsIHYtaWY9XCJwcm9ncmFtLmF0dGlyZVwiPkRyZXNzY29kZToge3sgcHJvZ3JhbS5hdHRpcmUgfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHA+e3sgcHJvZ3JhbS5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGhyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBwcm9ncmFtTGlzdDogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfVxuICB9LFxuICBkYXRhOiAoKSA9PiAoe1xuICAgIG1lbnVPcGVuOiBmYWxzZSxcbiAgICB0ZXh0OiB7XG4gICAgICBcIkRFXCI6IHtcbiAgICAgIH0sXG4gICAgICBcIkVOXCI6IHtcbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuICBtZXRob2RzOiB7XG4gICAgLy8gY2hlY2tBY2NvcmRpb24oKXtcbiAgICAvLyAgIHZhciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJveF9jbGFzc1wiKTtcbiAgICAvLyAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIDEuNXJlbTtcbn1cblxuLmFjY29yZGlvbi1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5hY2NvcmRpb24taXRlbSBociB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cblxuLmFjY29yZGlvbi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjgpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDFyZW0gMDtcbn1cblxuLmFjY29yZGlvbi1saW5rIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmFjY29yZGlvbi1saW5rIHNwYW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uYWNjb3JkaW9uLWxpbmsgaSB7XG4gIGNvbG9yOiAjZTdkNWZmO1xuICBwYWRkaW5nOiAuNXJlbTtcblxufVxuXG4uYWNjb3JkaW9uLWxpbmsgbGFiZWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIHBhZGRpbmc6IDEwcHggMHB4IDFweCAxMHB4O1xufVxuXG4uYWNjb3JkaW9uLWxpbmsgZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmFjY29yZGlvbi1saW5rIC5pb24tbWQtYXJyb3ctZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbn1cblxuLmFuc3dlciB7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCA2NTBtcztcbn1cblxuLmFuc3dlciBwIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgcGFkZGluZzogMnJlbTtcbn1cblxuLmFuc3dlciBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cblxuLmFuc3dlciBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xufVxuXG4uYWNjb3JkaW9uLWl0ZW06dGFyZ2V0IC5hbnN3ZXIge1xuICBtYXgtaGVpZ2h0OiAyMHJlbTtcbn1cblxuLmFjY29yZGlvbi1pdGVtOnRhcmdldCAuYWNjb3JkaW9uLWxpbmsgLmlvbi1tZC1hcnJvdy1mb3J3YXJkIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uYWNjb3JkaW9uLWl0ZW06dGFyZ2V0IC5hY2NvcmRpb24tbGluayAuaW9uLW1kLWFycm93LWRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzI4cHgpIHtcbiAgLmFjY29yZGlvbi1pdGVtIGhyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG5cbiAgLmFjY29yZGlvbi1saW5rIHNwYW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGgxIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBQcm9ncmFtbVxuICAgIDwvaDE+XG4gICAgPGgyIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBGcmVpdGFnXG4gICAgPC9oMj5cbiAgICA8QWNjb3JkaW9uUHJvZ3JhbSA6cHJvZ3JhbS1saXN0PVwicHJvZ3JhbUxpc3RbJ2ZyaWRheSddXCIgLz5cbiAgICA8aDIgY2xhc3M9XCJnb2xkLXRleHRcIj5cbiAgICAgIFNhbXN0YWcgTWl0dGFnXG4gICAgPC9oMj5cbiAgICA8QWNjb3JkaW9uUHJvZ3JhbSA6cHJvZ3JhbS1saXN0PVwicHJvZ3JhbUxpc3RbJ3NhdHVyZGF5TWlkJ11cIiAvPlxuICAgIDxoMiBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgU2Ftc3RhZyBBYmVuZFxuICAgIDwvaDI+XG4gICAgPEFjY29yZGlvblByb2dyYW0gOnByb2dyYW0tbGlzdD1cInByb2dyYW1MaXN0WydzYXR1cmRheUV2ZSddXCIgLz5cbiAgICA8aDIgY2xhc3M9XCJnb2xkLXRleHRcIj5cbiAgICAgIFNvbm50YWdcbiAgICA8L2gyPlxuICAgIDxBY2NvcmRpb25Qcm9ncmFtIDpwcm9ncmFtLWxpc3Q9XCJwcm9ncmFtTGlzdFsnc3VuZGF5J11cIiAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cblxuaW1wb3J0IEFjY29yZGlvblByb2dyYW0gZnJvbSAnLi4vTW9kdWxlL0FjY29yZGlvblByb2dyYW0udnVlJztcbmV4cG9ydCBkZWZhdWx0IHtcbiAgY29tcG9uZW50czoge1xuICAgIEFjY29yZGlvblByb2dyYW1cbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBsYW5ndWFnZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdkZScgfSxcbiAgfSxcbiAgZGF0YTogKCkgPT4gKHtcbiAgICBtZW51T3BlbjogZmFsc2UsXG4gICAgdGV4dDoge1xuICAgICAgXCJERVwiOiB7XG4gICAgICB9LFxuICAgICAgXCJFTlwiOiB7XG4gICAgICB9XG4gICAgfSxcbiAgICBwcm9ncmFtTGlzdDoge1xuICAgICAgJ2ZyaWRheSc6IFtdLFxuICAgICAgJ3NhdHVyZGF5TWlkJzogW10sXG4gICAgICAnc2F0dXJkYXlFdmUnOiBbXSxcbiAgICAgICdzdW5kYXknOiBbXVxuICAgIH1cbiAgfSksXG5cbiAgYXN5bmMgY3JlYXRlZCgpIHtcbiAgICBjb25zdCBldmVudHMgPSBhd2FpdCB0aGlzLiRheGlvcy5nZXQoYC9hcGkvZXZlbnRzYClcbiAgICBmb3IgKGxldCBpZHggaW4gZXZlbnRzLmRhdGEuZGF0YSkge1xuICAgICAgbGV0IGV2ZW50ID0gZXZlbnRzLmRhdGEuZGF0YVtpZHhdXG5cbiAgICAgIGlmIChldmVudC53ZWVrRGF5ID09PSAnRnJpJykge1xuICAgICAgICB0aGlzLnByb2dyYW1MaXN0WydmcmlkYXknXS5wdXNoKGV2ZW50KVxuICAgICAgfSBlbHNlIGlmIChldmVudC53ZWVrRGF5ID09PSAnU2F0JyAmJiAhZXZlbnQubmFtZS5pbmNsdWRlcygnR2FsYScpKSB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUxpc3RbJ3NhdHVyZGF5TWlkJ10ucHVzaChldmVudClcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQud2Vla0RheSA9PT0gJ1NhdCcgJiYgZXZlbnQubmFtZS5pbmNsdWRlcygnR2FsYScpKSB7XG4gICAgICAgIHRoaXMucHJvZ3JhbUxpc3RbJ3NhdHVyZGF5RXZlJ10ucHVzaChldmVudClcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQud2Vla0RheSA9PT0gJ1N1bicpIHtcbiAgICAgICAgdGhpcy5wcm9ncmFtTGlzdFsnc3VuZGF5J10ucHVzaChldmVudClcblxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgbWV0aG9kcygpIHtcbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmgyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDVyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxoMSBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgVGlja2V0c1xuICAgIDwvaDE+XG4gICAgPHA+XG4gICAgICBXaWxsa29tbWVuIGJlaSB1bnNlcmVtIFRpY2tldGtvbmZpZ3VyYXRvciEgSGllciBrYW5uc3QgZHUgZGVpbiBlaWdlbmVzIEV2ZW50LVRpY2tldCBlcnN0ZWxsZW4sIGluZGVtIGR1IHZlcnNjaGllZGVuZVxuICAgICAgT3B0aW9uZW4gd8OkaGxzdC5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cInRpY2tldC1ncmlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0XCI+XG4gICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi90aWNrZXRzP3R5cGU9cm90YXJhY3RcIj5cbiAgICAgICAgICA8aW1nIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL1JvdGFyYWN0WW91bmdQZW9wbGVQYXJ0eS5wbmdgKVwiPlxuICAgICAgICA8L3JvdXRlci1saW5rPlxuICAgICAgICA8aDM+Um90YXJhY3Rlcio8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0XCI+XG4gICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi90aWNrZXRzP3R5cGU9cm90YXJ5XCI+XG4gICAgICAgICAgPGltZyA6c3JjPVwicmVxdWlyZShgLi4vLi4vYXNzZXRzL2ltYWdlcy9Sb3RhcmFjdE9sZFBlb3BsZVBhcnR5LnBuZ2ApXCI+XG4gICAgICAgIDwvcm91dGVyLWxpbms+XG4gICAgICAgIDxoMz5Sb3Rhcmllcio8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0XCI+XG4gICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi90aWNrZXRzP3R5cGU9ZXh0ZXJuXCI+XG4gICAgICAgICAgPGltZyA6c3JjPVwicmVxdWlyZShgLi4vLi4vYXNzZXRzL2ltYWdlcy9Sb3RhcmFjdEV4dGVyblBlb3BsZVBhcnR5LnBuZ2ApXCI+XG4gICAgICAgIDwvcm91dGVyLWxpbms+XG4gICAgICAgIDxoMz5FeHRlcm5lcio8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGxhbmd1YWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2RlJyB9LFxuICB9LFxuICBkYXRhOiAoKSA9PiAoe1xuICAgIG1lbnVPcGVuOiBmYWxzZSxcbiAgICB0ZXh0OiB7XG4gICAgICBcIkRFXCI6IHtcbiAgICAgIH0sXG4gICAgICBcIkVOXCI6IHtcbiAgICAgIH1cbiAgICB9XG5cbiAgfSksXG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuLnRpY2tldC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbn1cblxucCB7XG4gIHdpZHRoOiA3MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIC50aWNrZXQtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgfVxufVxuXG5pbWcge1xuICB3aWR0aDogNjAlO1xuICBvcGFjaXR5OiAwLjQ7XG4gIC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gIC1tb3otZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gIC1vLWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAtbXMtZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICB0cmFuc2l0aW9uOiA0MDBtcztcbiAgYm9yZGVyLXJhZGl1czogMTAlO1xufVxuXG5pbWc6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBmaWx0ZXI6IG5vbmU7XG4gIHdpZHRoOiA2NSU7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxoNCBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgRnJhZ2VuIHVuZCBBbnR3b3J0ZW5cbiAgICA8L2g0PlxuICAgIDxBY2NvcmRpb25Qcm9ncmFtVnVlIDpwcm9ncmFtLWxpc3Q9XCJxdWVzdGlvbnNcIiAvPlxuXG4gICAgPGg0IGNsYXNzPVwic3BhY2UgZ29sZC10ZXh0XCI+XG4gICAgICBMb2JwcmVpc3VuZ2VuLCBCZXNjaHdlcmRlLCBXw7xuc2NoZT8gU2NocmVpYiB1bnMhXG4gICAgPC9oND5cbiAgICA8YSBocmVmPVwibWFpbHRvOmNoYXJ0ZXIubWFpbno1MEBnbWFpbC5jb21cIiBjbGFzcz1cImNvbnRhY3QtYnV0dG9uIHctZmFkZVwiPlxuICAgICAgY2hhcnRlci5tYWluejUwQGdtYWlsLmNvbVxuICAgIDwvYT5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuaW1wb3J0IEFjY29yZGlvblByb2dyYW1WdWUgZnJvbSAnLi4vTW9kdWxlL0FjY29yZGlvblByb2dyYW0udnVlJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBjb21wb25lbnRzOiB7XG4gICAgQWNjb3JkaW9uUHJvZ3JhbVZ1ZVxuICB9LFxuICBwcm9wczoge1xuICAgIGxhbmd1YWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2RlJyB9LFxuICB9LFxuICBkYXRhOiAoKSA9PiAoe1xuICAgIG1lbnVPcGVuOiBmYWxzZSxcbiAgICB0ZXh0OiB7XG4gICAgICBcIkRFXCI6IHtcbiAgICAgIH0sXG4gICAgICBcIkVOXCI6IHtcbiAgICAgIH1cbiAgICB9LFxuICAgIHF1ZXN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdJYnQgZXMgZWluZW4gRHJlc3Njb2RlIGF1ZiBkZW0gR2FsYWFiZW5kP1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJKYSwgRHJlc3Njb2RlIEdhbGFcIixcbiAgICAgIH1cbiAgICBdXG5cbiAgfSksXG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuLnctZmFkZSB7XG4gIGJvcmRlcjogMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAjY2I5YjUxIDIyJSxcbiAgICAgICNmNmUyN2EgNDUlLFxuICAgICAgI2Y2ZjJjMCA1MCUsXG4gICAgICAjZjZlMjdhIDU1JSxcbiAgICAgICNjYjliNTEgNzglKTtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG5cbi5jb250YWN0LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDQ1JTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiBhdXRvO1xuICB0cmFuc2l0aW9uOiAwLjRzO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjhweCkge1xuICAuY29udGFjdC1idXR0b24ge1xuICAgIHdpZHRoOiA5NSU7XG4gIH1cbn1cblxuLnNwYWNlIHtcbiAgbWFyZ2luLXRvcDogN3JlbTtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGgxIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBFaW4gcmllc2lnZXMgRGFua2VzY2jDtm4gZ2VodCByYXVzIGFuIHVuc2VyZVxuICAgIDwvaDE+XG4gICAgPGgzPkhhdXB0c3BvbnNvcmVuPC9oMz5cbiAgICA8dWw+XG4gICAgICA8bGkgQGNsaWNrPVwib3BlbldlYnNpdGUoJ2h0dHBzOi8vd3d3LmxiYncuZGUnKVwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICBMYW5kZXNiYW5rIEJhZGVuLVfDvHJ0dGVtYmVyZ1xuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL1Nwb25zb3JzL0xCQldfTG9nby5zdmdgKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cblxuICAgIDxoMyBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgd2VpdGVyZSBTcG9uc29yZW5cbiAgICA8L2gzPlxuICAgIDx1bD5cbiAgICAgIDxsaSBAY2xpY2s9XCJvcGVuV2Vic2l0ZSgnaHR0cHM6Ly93d3cudmItYWx6ZXktd29ybXMuZGUvc3RhcnRzZWl0ZS5odG1sJylcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgVm9sa3NiYW5rIEFsemV5LVdvcm1zIGVHXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWcgOnNyYz1cInJlcXVpcmUoYC4uLy4uL2Fzc2V0cy9pbWFnZXMvU3BvbnNvcnMvQWx6ZXlfV29ybXNfbG9nby5zdmdgKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgQGNsaWNrPVwib3BlbldlYnNpdGUoJ2h0dHBzOi8vd3d3LmtvZWJpZy5kZScpXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIEouTi4gS8O2YmlnIEdtYkhcbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWcgOnNyYz1cInJlcXVpcmUoYC4uLy4uL2Fzc2V0cy9pbWFnZXMvU3BvbnNvcnMvS8O2YmlnLnBuZ2ApXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBAY2xpY2s9XCJvcGVuV2Vic2l0ZSgnaHR0cHM6Ly93d3cuc2Nob3R0LW11c2ljLmNvbS9kZS8nKVwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICBTY2hvdHQgTXVzaWMgR21iSCAmIENvLiBLR1xuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL1Nwb25zb3JzL1NjaG90dExvZ28ucG5nYClcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIEBjbGljaz1cIm9wZW5XZWJzaXRlKCdodHRwczovL3d3dy5tYXJ0aW5hLW1hdHRpY2suY29tLycpXCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgIE1hcnRpbmEgTWF0dGljayBNLkEuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWcgOnNyYz1cInJlcXVpcmUoYC4uLy4uL2Fzc2V0cy9pbWFnZXMvU3BvbnNvcnMvTWF0dGluYU1hdHRpY2tMb2dvLnBuZ2ApXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cblxuICAgICAgPGxpIEBjbGljaz1cIm9wZW5XZWJzaXRlKCdodHRwczovL2thcnJpZS5kZS8nKVwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICBLYXJyacOpIEJhdSBHbWJIXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWcgOnNyYz1cInJlcXVpcmUoYC4uLy4uL2Fzc2V0cy9pbWFnZXMvU3BvbnNvcnMvS2FycmllX0xvZ28ucG5nYClcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIEBjbGljaz1cIm9wZW5XZWJzaXRlKCdodHRwczovL3d3dy5iYXJ0ZW5iYWNoLmRlL3NwZWt0cnVtJylcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgQmFydGVuYmFjaCBBR1xuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW1nIDpzcmM9XCJyZXF1aXJlKGAuLi8uLi9hc3NldHMvaW1hZ2VzL1Nwb25zb3JzL0JhcnRlbmJhY2gucG5nYClcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPGgzIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICB1bnNlcmUgcm90YXJpc2NoZW4gRnJldW5kZSB2b25cbiAgICA8L2gzPlxuICAgIDx1bD5cbiAgICAgIDxsaT5cbiAgICAgICAgPHA+XG4gICAgICAgICAgUm90YXJ5IENodXJtZXludHpcbiAgICAgICAgPC9wPlxuICAgICAgPC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgPHA+XG4gICAgICAgICAgUm90YXJ5IEF1cmVhIE1vZ3VudGlhXG4gICAgICAgIDwvcD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGk+XG4gICAgICAgIDxwPlxuICAgICAgICAgIFJvdGFyeSBNYWluelxuICAgICAgICA8L3A+XG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8cD5cbiAgICAgICAgICBSb3RhcnkgNTAgR3JhZFxuICAgICAgICA8L3A+XG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8cD5cbiAgICAgICAgICBSb3RhcnkgUmhlaW5oZXNzZW5cbiAgICAgICAgPC9wPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgbGFuZ3VhZ2U6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAnZGUnIH0sXG4gIH0sXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgbWVudU9wZW46IGZhbHNlLFxuICAgIHRleHQ6IHtcbiAgICAgIFwiREVcIjoge1xuICAgICAgfSxcbiAgICAgIFwiRU5cIjoge1xuICAgICAgfVxuICAgIH0sXG4gICAgZ3Vlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiS8OEdWZlciAxXCIsXG4gICAgICAgIGNsdWI6ICdNYWlueidcbiAgICAgIH1cbiAgICBdXG4gIH0pLFxuICBtZXRob2RzOiB7XG4gICAgb3BlbldlYnNpdGUodXJsKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9XG4gIH1cbn1cbjwvc2NyaXB0PlxuICBcbiAgPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5hOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG51bCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbmxpIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbn1cblxuLmltYWdlLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMHJlbTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG5cbmltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIHVsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xuICB9XG59XG48L3N0eWxlPlxuICAiLCI8dGVtcGxhdGU+XG4gIDxkaXZcbiAgICBpZD1cImJ1cmdlclwiXG4gICAgOmNsYXNzPVwieyAnYWN0aXZlJzogb3BlbiB9XCJcbiAgICBAY2xpY2sucHJldmVudD1cInRvZ2dsZVwiXG4gID5cbiAgICA8c2xvdD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnVyZ2VyLWJ1dHRvblwiXG4gICAgICAgIHRpdGxlPVwiTWVudVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYnVyZ2VyLWJhciBidXJnZXItYmFyLS0xXCIgLz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJidXJnZXItYmFyIGJ1cmdlci1iYXItLTJcIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJ1cmdlci1iYXIgYnVyZ2VyLWJhci0tM1wiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3Nsb3Q+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgb3Blbjoge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGUoKSB7XG4gICAgICB0aGlzLiRlbWl0KCd0b2dnbGVkJylcbiAgICB9XG4gIH1cbn1cbjwvc2NyaXB0PlxuPHN0eWxlIHNjb3BlZD5cbi5oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbmJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogcmVtb3ZlIGJsdWUgb3V0bGluZSAqL1xuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmJ1cmdlci1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMzBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDk5OTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC42cyBjdWJpYy1iZXppZXIoLjE2NSwgLjg0LCAuNDQsIDEpO1xufVxuXG4uYnVyZ2VyLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA2cHg7XG4gIGxlZnQ6IDZweDtcbiAgaGVpZ2h0OiAycHg7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjZzIGN1YmljLWJlemllciguMTY1LCAuODQsIC40NCwgMSksIG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguMTY1LCAuODQsIC40NCwgMSksIGJhY2tncm91bmQtY29sb3IgLjZzIGN1YmljLWJlemllciguMTY1LCAuODQsIC40NCwgMSk7XG59XG5cbi5idXJnZXItYmFyLS0xIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuLmJ1cmdlci1iYXItLTIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLjgpO1xufVxuXG4uYnVyZ2VyLWJ1dHRvbjpob3ZlciAuYnVyZ2VyLWJhci0tMiB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xufVxuXG4ubm8tdG91Y2hldmVudHMgLmJ1cmdlci1iYXItLTI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbn1cblxuLmJ1cmdlci1iYXItLTMge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbn1cblxuI2J1cmdlci5hY3RpdmUgLmJ1cmdlci1idXR0b24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbn1cblxuI2J1cmdlci5hY3RpdmUgLmJ1cmdlci1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4jYnVyZ2VyLmFjdGl2ZSAuYnVyZ2VyLWJhci0tMSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKVxufVxuXG4jYnVyZ2VyLmFjdGl2ZSAuYnVyZ2VyLWJhci0tMiB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbiNidXJnZXIuYWN0aXZlIC5idXJnZXItYmFyLS0zIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKVxufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCI+XG4gICAgPHRyYW5zaXRpb24gbmFtZT1cInNsaWRlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIHYtaWY9XCJvcGVuXCJcbiAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXBhbmVsXCJcbiAgICAgID5cbiAgICAgICAgPHNsb3QgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvdHJhbnNpdGlvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBvcGVuOiB7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBkZWZhdWx0OiBmYWxzZVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG48c3R5bGU+XG4uc2lkZWJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4uc2xpZGUtZW50ZXItYWN0aXZlLFxuLnNsaWRlLWxlYXZlLWFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbn1cblxuLnNsaWRlLWVudGVyLFxuLnNsaWRlLWxlYXZlLXRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZXkoLTEwMCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4gMHNcbn1cblxuLnNpZGViYXItYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNpZGViYXItcGFuZWwge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMWMxOTE5IDAlLCByZ2IoMjYsIDI0LCAyNCkgMTAwJSk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDMwdmg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gIDxoZWFkZXI+XG4gICAgPEJ1cmdlclxuICAgICAgOm9wZW49XCJtZW51T3BlblwiXG4gICAgICBjbGFzcz1cImJ1cmdlci1jb250YWluZXJcIlxuICAgICAgQHRvZ2dsZWQ9XCJ0b2dnbGVcIlxuICAgIC8+XG4gICAgPHVsXG4gICAgICBjbGFzcz1cImRlc2t0b3BcIlxuICAgICAgQGNsaWNrPVwiY2xvc2VNZW51XCJcbiAgICA+XG4gICAgICA8bGk+XG4gICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgTG9naW5cbiAgICAgICAgPC9yb3V0ZXItbGluaz5cbiAgICAgIDwvbGk+XG4gICAgICA8bGk+PGEgaHJlZj1cIiNwcm9ncmFtXCI+e3sgdGV4dFtsYW5ndWFnZV0ucHJvZ3JhbSB9fTwvYT48L2xpPlxuICAgICAgPGxpPjxhIGhyZWY9XCIjdGlja2V0c1wiPnt7IHRleHRbbGFuZ3VhZ2VdLnRpY2tldHMgfX08L2E+PC9saT5cbiAgICAgIDxsaT48YSBocmVmPVwiI2hvdXNpbmdcIj57eyB0ZXh0W2xhbmd1YWdlXS5ob3VzaW5nIH19PC9hPjwvbGk+XG4gICAgICA8bGk+PGEgaHJlZj1cIiNjb250YWN0XCI+e3sgdGV4dFtsYW5ndWFnZV0uZmFxIH19PC9hPjwvbGk+XG4gICAgICA8IS0tIDxsaT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImxhbmd1YWdlLWJ1dHRvblwiIDpjbGFzcz1cInsgYWN0aXZlOiBsYW5ndWFnZSA9PSAnREUnIH1cIiBAY2xpY2s9XCJzd2l0Y2hMYW5ndWFnZSgnREUnKVwiPlxuICAgICAgICAgIERFXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibGFuZ3VhZ2UtYnV0dG9uXCIgOmNsYXNzPVwieyBhY3RpdmU6IGxhbmd1YWdlID09ICdFTicgfVwiIEBjbGljaz1cInN3aXRjaExhbmd1YWdlKCdFTicpXCI+XG4gICAgICAgICAgRU5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPiAtLT5cbiAgICA8L3VsPlxuICAgIDxTaWRlQmFyXG4gICAgICBjbGFzcz1cInNpZGUtYmFyXCJcbiAgICAgIDpvcGVuPVwibWVudU9wZW5cIlxuICAgID5cbiAgICAgIDx1bCBAY2xpY2s9XCJjbG9zZU1lbnVcIj5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICBMb2dpblxuICAgICAgICAgIDwvcm91dGVyLWxpbms+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaT48YSBocmVmPVwiI3Byb2dyYW1cIj57eyB0ZXh0W2xhbmd1YWdlXS5wcm9ncmFtIH19PC9hPjwvbGk+XG4gICAgICAgIDxsaT48YSBocmVmPVwiI3RpY2tldHNcIj57eyB0ZXh0W2xhbmd1YWdlXS50aWNrZXRzIH19PC9hPjwvbGk+XG4gICAgICAgIDxsaT48YSBocmVmPVwiI2hvdXNpbmdcIj57eyB0ZXh0W2xhbmd1YWdlXS5ob3VzaW5nIH19PC9hPjwvbGk+XG4gICAgICAgIDxsaT48YSBocmVmPVwiI2NvbnRhY3RcIj57eyB0ZXh0W2xhbmd1YWdlXS5mYXEgfX08L2E+PC9saT5cbiAgICAgICAgPCEtLSA8bGk+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImxhbmd1YWdlLWJ1dHRvblwiIDpjbGFzcz1cInsgYWN0aXZlOiBsYW5ndWFnZSA9PSAnREUnIH1cIiBAY2xpY2s9XCJzd2l0Y2hMYW5ndWFnZSgnREUnKVwiPlxuICAgICAgICAgICAgREVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibGFuZ3VhZ2UtYnV0dG9uXCIgOmNsYXNzPVwieyBhY3RpdmU6IGxhbmd1YWdlID09ICdFTicgfVwiIEBjbGljaz1cInN3aXRjaExhbmd1YWdlKCdFTicpXCI+XG4gICAgICAgICAgICBFTlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPiAtLT5cbiAgICAgIDwvdWw+XG4gICAgPC9TaWRlQmFyPlxuICA8L2hlYWRlcj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmltcG9ydCBCdXJnZXIgZnJvbSAnLi4vY29tcG9uZW50cy9OYXZCYXIvQnVyZ2VyLnZ1ZSc7XG5pbXBvcnQgU2lkZUJhciBmcm9tICcuLi9jb21wb25lbnRzL05hdkJhci9TaWRlQmFyLnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnSGVhZGVyJyxcbiAgY29tcG9uZW50czoge1xuICAgIEJ1cmdlcixcbiAgICBTaWRlQmFyXG4gIH0sXG4gIHByb3BzOiB7XG4gICAgbGFuZ3VhZ2U6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAnZGUnIH0sXG4gIH0sXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgbWVudU9wZW46IGZhbHNlLFxuICAgIHRleHQ6IHtcbiAgICAgIFwiREVcIjoge1xuICAgICAgICAnc3RhcnQnOiAnTWVlbnonLFxuICAgICAgICAncHJvZ3JhbSc6ICdQcm9ncmFtbScsXG4gICAgICAgICd0aWNrZXRzJzogJ1RpY2tldHMnLFxuICAgICAgICAnaG91c2luZyc6ICdVbnRlcmt1bmZ0JyxcbiAgICAgICAgJ2ZhcSc6ICdmYXEnLFxuICAgICAgfSxcbiAgICAgIFwiRU5cIjoge1xuICAgICAgICAnc3RhcnQnOiAnTWVlbnonLFxuICAgICAgICAncHJvZ3JhbSc6ICdQcm9ncmFtbScsXG4gICAgICAgICd0aWNrZXRzJzogJ1RpY2tldHMnLFxuICAgICAgICAnaG91c2luZyc6ICdVbnRlcmt1bmZ0JyxcbiAgICAgICAgJ2ZhcSc6ICdmYXEnLFxuICAgICAgfVxuICAgIH1cblxuICB9KSxcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZSgpIHtcbiAgICAgIHRoaXMubWVudU9wZW4gPSAhdGhpcy5tZW51T3BlblxuICAgIH0sXG4gICAgY2xvc2VNZW51KCkge1xuICAgICAgdGhpcy5tZW51T3BlbiA9IGZhbHNlXG4gICAgfSxcbiAgICBzd2l0Y2hMYW5ndWFnZShuZXdMYW5nKSB7XG4gICAgICB0aGlzLiRlbWl0KCdzd2l0Y2gtbGFuZ3VhZ2UnLCBuZXdMYW5nKVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzFjMTkxOSAwJSwgcmdiKDI2LCAyNCwgMjQpIDEwMCUpO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDZ2aDtcbiAgei1pbmRleDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlc21va2U7XG59XG5cbnVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAxMCU7XG4gIDtcbn1cblxubGkge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS4zdm1pbjtcbn1cblxuYSB7XG4gIGNvbG9yOiB3aGl0ZXNtb2tlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMnM7XG4gIGZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7XG5cbn1cblxuYTpob3ZlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuXG4ubGFuZ3VhZ2UtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6IHJnYigyMzYsIDIzMywgMjMzKTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA1JTtcbn1cblxuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2I5YjUxO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjcyOXB4KSB7XG4gIC5idXJnZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnNpZGUtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIGhlYWRlciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDgwJSAyMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLmRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAuYnVyZ2VyLWNvbnRhaW5lciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiAxMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDkwJTtcbiAgfVxuXG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8Zm9vdGVyPlxuICAgIDxyb3V0ZXItbGluayB0bz1cIi9EYXRlbnNjaHV0elwiPlxuICAgICAgRGF0ZW5zY2h1dHpcbiAgICA8L3JvdXRlci1saW5rPlxuICAgIDxpbWdcbiAgICAgIGNsYXNzPVwibG9nb1wiXG4gICAgICA6c3JjPVwicmVxdWlyZShgLi4vYXNzZXRzL2ltYWdlcy9Mb2dvLnBuZ2ApXCJcbiAgICA+XG4gICAgPHJvdXRlci1saW5rIHRvPVwiL0ltcHJlc3N1bVwiPlxuICAgICAgSW1wcmVzc3VtXG4gICAgPC9yb3V0ZXItbGluaz5cbiAgPC9mb290ZXI+XG48L3RlbXBsYXRlPlxuXG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdGb290ZXInLFxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbmZvb3RlciB7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ29sZGVucm9kO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmxvZ28ge1xuICBtYXJnaW46IGF1dG87XG4gIGhlaWdodDogNHJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIGZvb3RlciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgfVxuXG4gIC5sb2dvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGhlaWdodDogNXJlbTtcbiAgfVxufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxucCB7XG4gIGZvbnQtc2l6ZTogOHB4O1xufVxuXG5saSB7XG4gIG1hcmdpbi1yaWdodDogMTAlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbmEge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogMXB4IHNvbGlkIGdvbGRlbnJvZDtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPEhlYWRlclxuICAgICAgOmxhbmd1YWdlPVwibGFuZ3VhZ2VcIlxuICAgICAgQHN3aXRjaC1sYW5ndWFnZT1cInN3aXRjaExhbmd1YWdlXCJcbiAgICAvPlxuXG4gICAgPGJvZHk+XG4gICAgICA8bWFpbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwic3RhcnRcIlxuICAgICAgICAgIGNsYXNzPVwic2VwZXJhdG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYWluXCI+XG4gICAgICAgICAgPFN0YXJ0VnVlIDpsYW5ndWFnZT1cImxhbmd1YWdlXCIgLz5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD1cInByb2dyYW1cIlxuICAgICAgICAgIGNsYXNzPVwic2VwZXJhdG9yIGhlYWRcIlxuICAgICAgICAvPlxuICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICA8UHJvZ3JhbVZ1ZSA6bGFuZ3VhZ2U9XCJsYW5ndWFnZVwiIC8+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJ0aWNrZXRzXCJcbiAgICAgICAgICBjbGFzcz1cInNlcGVyYXRvclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgIDxUaWNrZXRzVnVlIDpsYW5ndWFnZT1cImxhbmd1YWdlXCIgLz5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD1cImhvdXNpbmdcIlxuICAgICAgICAgIGNsYXNzPVwic2VwZXJhdG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgPEhvdXNpbmdWdWUgOmxhbmd1YWdlPVwibGFuZ3VhZ2VcIiAvPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwiY29udGFjdFwiXG4gICAgICAgICAgY2xhc3M9XCJzZXBlcmF0b3JcIlxuICAgICAgICAvPlxuICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICA8Q29udGFjdFZ1ZSA6bGFuZ3VhZ2U9XCJsYW5ndWFnZVwiIC8+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzcG9uc29yc1wiXG4gICAgICAgICAgY2xhc3M9XCJzZXBlcmF0b3JcIlxuICAgICAgICAvPlxuICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICA8U3BvbnNvcnMgOmxhbmd1YWdlPVwibGFuZ3VhZ2VcIiAvPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPCEtLSA8ZGl2XG4gICAgICAgICAgaWQ9XCJ0ZWFtXCJcbiAgICAgICAgICBjbGFzcz1cInNlcGVyYXRvclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgIDxUZWFtIDpsYW5ndWFnZT1cImxhbmd1YWdlXCIgLz5cbiAgICAgICAgPC9zZWN0aW9uPiAtLT5cbiAgICAgIDwvbWFpbj5cbiAgICAgIDxGb290ZXIgLz5cbiAgICA8L2JvZHk+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuXG5pbXBvcnQgU3RhcnRWdWUgZnJvbSAnLi4vY29tcG9uZW50cy9TZWN0aW9ucy9TdGFydC52dWUnXG5pbXBvcnQgSG91c2luZ1Z1ZSBmcm9tICcuLi9jb21wb25lbnRzL1NlY3Rpb25zL0hvdXNpbmcudnVlJ1xuaW1wb3J0IFByb2dyYW1WdWUgZnJvbSAnLi4vY29tcG9uZW50cy9TZWN0aW9ucy9Qcm9ncmFtLnZ1ZSdcbmltcG9ydCBUaWNrZXRzVnVlIGZyb20gJy4uL2NvbXBvbmVudHMvU2VjdGlvbnMvVGlja2V0cy52dWUnXG5pbXBvcnQgQ29udGFjdFZ1ZSBmcm9tICcuLi9jb21wb25lbnRzL1NlY3Rpb25zL0NvbnRhY3QudnVlJ1xuaW1wb3J0IFNwb25zb3JzIGZyb20gJy4uL2NvbXBvbmVudHMvU2VjdGlvbnMvU3BvbnNvcnMudnVlJ1xuLy8gaW1wb3J0IFRlYW0gZnJvbSAnLi4vY29tcG9uZW50cy9TZWN0aW9ucy9UZWFtLnZ1ZSdcbmltcG9ydCBIZWFkZXIgZnJvbSAnLi9IZWFkZXIudnVlJ1xuaW1wb3J0IEZvb3RlciBmcm9tICcuL0Zvb3Rlci52dWUnXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdNYWluQ2FyZCcsXG5cbiAgY29tcG9uZW50czoge1xuICAgIFN0YXJ0VnVlLFxuICAgIEhvdXNpbmdWdWUsXG4gICAgUHJvZ3JhbVZ1ZSxcbiAgICBUaWNrZXRzVnVlLFxuICAgIENvbnRhY3RWdWUsXG4gICAgU3BvbnNvcnMsXG4gICAgLy8gVGVhbSxcbiAgICBIZWFkZXIsXG4gICAgRm9vdGVyXG4gIH0sXG4gIHByb3BzOiB7XG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhbmd1YWdlOiBcIkRFXCIsXG4gICAgfVxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgc3dpdGNoTGFuZ3VhZ2UobmV3TGFuZykge1xuICAgICAgdGhpcy5sYW5ndWFnZSA9IG5ld0xhbmdcbiAgICB9XG5cbiAgfVxuXG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGU+XG5tYWluIHtcbiAgcGFkZGluZy10b3A6IDh2aDtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG4gIHotaW5kZXg6IGktMTtcbn1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuc2VjdGlvbiB7XG4gIHdpZHRoOiA5MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA2MHZoO1xuICBtYXJnaW4tdG9wOiAydmg7XG59XG5cbi5tYWluIHtcbiAgaGVpZ2h0OiA5MnZoXG59XG5cbmgxIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDhweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5oMyB7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5zZXBlcmF0b3Ige1xuICBtYXJnaW4tdG9wOiAzdmg7XG4gIG1hcmdpbi1ib3R0b206IDEwdmg7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPHJvdXRlci1saW5rXG4gICAgICBjbGFzcz1cImJhY2stYXJyb3cgZ29sZC10ZXh0XCJcbiAgICAgIHRvPVwiL1wiXG4gICAgPlxuICAgICAgJiN4MjE5MDtcbiAgICA8L3JvdXRlci1saW5rPlxuICAgIDxoMj5XRUJTRUlURU5CRVRSRUlCRVI8L2gyPlxuICAgIDx1bD5cbiAgICAgIDxsaT5EYW5pZWwtVmFsZW50aW4gS293YWxza2k8L2xpPlxuICAgIDwvdWw+XG4gICAgPGgyPklORk9STUFUSU9ORU4gw5xCRVIgREFTIFVOVEVSTkVITUVOPC9oMj5cbiAgICA8dWw+XG4gICAgICA8bGk+RnJlaWJlcnVmbGVyPC9saT5cbiAgICAgIDxsaT5LaXJzdGVpbnN0cmHDn2UgM0U8L2xpPlxuICAgICAgPGxpPk1haW56LCA1NTEzMTwvbGk+XG4gICAgICA8bGk+ZGFuaWVsLnZhbGVudGlua0BnbWFpbC5jb208L2xpPlxuICAgICAgPGxpPis0OTE3NjQxODY0NTg2PC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xufVxuPC9zY3JpcHQ+XG48c3R5bGUgc2NvcGVkPlxuLmJhY2stYXJyb3cge1xuICB3aWR0aDogNXZ3O1xuICBmb250LXNpemU6IDN2dztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDIwcHg7XG59XG5cbi5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxubGkge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8cm91dGVyLWxpbmtcbiAgICAgIGNsYXNzPVwiYmFjay1hcnJvdyBnb2xkLXRleHRcIlxuICAgICAgdG89XCIvXCJcbiAgICA+XG4gICAgICAmI3gyMTkwO1xuICAgIDwvcm91dGVyLWxpbms+XG4gICAgPGgxPkRhdGVuc2NodXR6JnNoeTtlcmtsJmF1bWw7cnVuZzwvaDE+XG4gICAgPGgyPjEuIERhdGVuc2NodXR6IGF1ZiBlaW5lbiBCbGljazwvaDI+XG4gICAgPGgzPkFsbGdlbWVpbmUgSGlud2Vpc2U8L2gzPlxuICAgIDxwPlxuICAgICAgRGllIGZvbGdlbmRlbiBIaW53ZWlzZSBnZWJlbiBlaW5lbiBlaW5mYWNoZW4gJlV1bWw7YmVyYmxpY2sgZGFyJnV1bWw7YmVyLCB3YXMgbWl0IElocmVuIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuXG4gICAgICBwYXNzaWVydCwgd2VubiBTaWUgZGllc2UgV2Vic2l0ZSBiZXN1Y2hlbi4gUGVyc29uZW5iZXpvZ2VuZSBEYXRlbiBzaW5kIGFsbGUgRGF0ZW4sIG1pdCBkZW5lbiBTaWUgcGVycyZvdW1sO25saWNoXG4gICAgICBpZGVudGlmaXppZXJ0IHdlcmRlbiBrJm91bWw7bm5lbi4gQXVzZiZ1dW1sO2hybGljaGUgSW5mb3JtYXRpb25lbiB6dW0gVGhlbWEgRGF0ZW5zY2h1dHogZW50bmVobWVuIFNpZSB1bnNlcmVyIHVudGVyXG4gICAgICBkaWVzZW0gVGV4dCBhdWZnZWYmdXVtbDtocnRlbiBEYXRlbnNjaHV0emVya2wmYXVtbDtydW5nLlxuICAgIDwvcD5cbiAgICA8aDM+RGF0ZW5lcmZhc3N1bmcgYXVmIGRpZXNlciBXZWJzaXRlPC9oMz5cbiAgICA8aDQ+V2VyIGlzdCB2ZXJhbnR3b3J0bGljaCBmJnV1bWw7ciBkaWUgRGF0ZW5lcmZhc3N1bmcgYXVmIGRpZXNlciBXZWJzaXRlPzwvaDQ+XG4gICAgPHA+XG4gICAgICBEaWUgRGF0ZW52ZXJhcmJlaXR1bmcgYXVmIGRpZXNlciBXZWJzaXRlIGVyZm9sZ3QgZHVyY2ggZGVuIFdlYnNpdGViZXRyZWliZXIuIERlc3NlbiBLb250YWt0ZGF0ZW4gayZvdW1sO25uZW4gU2llXG4gICAgICBkZW0gQWJzY2huaXR0ICZiZHF1bztIaW53ZWlzIHp1ciBWZXJhbnR3b3J0bGljaGVuIFN0ZWxsZSZsZHF1bzsgaW4gZGllc2VyIERhdGVuc2NodXR6ZXJrbCZhdW1sO3J1bmcgZW50bmVobWVuLlxuICAgIDwvcD5cbiAgICA8aDQ+V2llIGVyZmFzc2VuIHdpciBJaHJlIERhdGVuPzwvaDQ+XG4gICAgPHA+XG4gICAgICBJaHJlIERhdGVuIHdlcmRlbiB6dW0gZWluZW4gZGFkdXJjaCBlcmhvYmVuLCBkYXNzIFNpZSB1bnMgZGllc2UgbWl0dGVpbGVuLiBIaWVyYmVpIGthbm4gZXMgc2ljaCB6LiZuYnNwO0IuIHVtIERhdGVuXG4gICAgICBoYW5kZWxuLCBkaWUgU2llIGluIGVpbiBLb250YWt0Zm9ybXVsYXIgZWluZ2ViZW4uXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgQW5kZXJlIERhdGVuIHdlcmRlbiBhdXRvbWF0aXNjaCBvZGVyIG5hY2ggSWhyZXIgRWlud2lsbGlndW5nIGJlaW0gQmVzdWNoIGRlciBXZWJzaXRlIGR1cmNoIHVuc2VyZSBJVC1TeXN0ZW1lXG4gICAgICBlcmZhc3N0LiBEYXMgc2luZCB2b3IgYWxsZW0gdGVjaG5pc2NoZSBEYXRlbiAoei4mbmJzcDtCLiBJbnRlcm5ldGJyb3dzZXIsIEJldHJpZWJzc3lzdGVtIG9kZXIgVWhyemVpdCBkZXNcbiAgICAgIFNlaXRlbmF1ZnJ1ZnMpLiBEaWUgRXJmYXNzdW5nIGRpZXNlciBEYXRlbiBlcmZvbGd0IGF1dG9tYXRpc2NoLCBzb2JhbGQgU2llIGRpZXNlIFdlYnNpdGUgYmV0cmV0ZW4uXG4gICAgPC9wPlxuICAgIDxoND5Xb2YmdXVtbDtyIG51dHplbiB3aXIgSWhyZSBEYXRlbj88L2g0PlxuICAgIDxwPlxuICAgICAgRWluIFRlaWwgZGVyIERhdGVuIHdpcmQgZXJob2JlbiwgdW0gZWluZSBmZWhsZXJmcmVpZSBCZXJlaXRzdGVsbHVuZyBkZXIgV2Vic2l0ZSB6dSBnZXcmYXVtbDtocmxlaXN0ZW4uIEFuZGVyZSBEYXRlblxuICAgICAgayZvdW1sO25uZW4genVyIEFuYWx5c2UgSWhyZXMgTnV0emVydmVyaGFsdGVucyB2ZXJ3ZW5kZXQgd2VyZGVuLlxuICAgIDwvcD5cbiAgICA8aDQ+V2VsY2hlIFJlY2h0ZSBoYWJlbiBTaWUgYmV6JnV1bWw7Z2xpY2ggSWhyZXIgRGF0ZW4/PC9oND5cbiAgICA8cD5cbiAgICAgIFNpZSBoYWJlbiBqZWRlcnplaXQgZGFzIFJlY2h0LCB1bmVudGdlbHRsaWNoIEF1c2t1bmZ0ICZ1dW1sO2JlciBIZXJrdW5mdCwgRW1wZiZhdW1sO25nZXIgdW5kIFp3ZWNrIElocmVyXG4gICAgICBnZXNwZWljaGVydGVuIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuIHp1IGVyaGFsdGVuLiBTaWUgaGFiZW4gYXUmc3psaWc7ZXJkZW0gZWluIFJlY2h0LCBkaWUgQmVyaWNodGlndW5nIG9kZXJcbiAgICAgIEwmb3VtbDtzY2h1bmcgZGllc2VyIERhdGVuIHp1IHZlcmxhbmdlbi4gV2VubiBTaWUgZWluZSBFaW53aWxsaWd1bmcgenVyIERhdGVudmVyYXJiZWl0dW5nIGVydGVpbHQgaGFiZW4sIGsmb3VtbDtubmVuXG4gICAgICBTaWUgZGllc2UgRWlud2lsbGlndW5nIGplZGVyemVpdCBmJnV1bWw7ciBkaWUgWnVrdW5mdCB3aWRlcnJ1ZmVuLiBBdSZzemxpZztlcmRlbSBoYWJlbiBTaWUgZGFzIFJlY2h0LCB1bnRlclxuICAgICAgYmVzdGltbXRlbiBVbXN0JmF1bWw7bmRlbiBkaWUgRWluc2NociZhdW1sO25rdW5nIGRlciBWZXJhcmJlaXR1bmcgSWhyZXIgcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4genUgdmVybGFuZ2VuLiBEZXNcbiAgICAgIFdlaXRlcmVuIHN0ZWh0IElobmVuIGVpbiBCZXNjaHdlcmRlcmVjaHQgYmVpIGRlciB6dXN0JmF1bWw7bmRpZ2VuIEF1ZnNpY2h0c2JlaCZvdW1sO3JkZSB6dS5cbiAgICA8L3A+XG4gICAgPHA+SGllcnp1IHNvd2llIHp1IHdlaXRlcmVuIEZyYWdlbiB6dW0gVGhlbWEgRGF0ZW5zY2h1dHogayZvdW1sO25uZW4gU2llIHNpY2ggamVkZXJ6ZWl0IGFuIHVucyB3ZW5kZW4uPC9wPlxuICAgIDxoMj4yLiBIb3N0aW5nPC9oMj5cbiAgICA8cD5XaXIgaG9zdGVuIGRpZSBJbmhhbHRlIHVuc2VyZXIgV2Vic2l0ZSBiZWkgZm9sZ2VuZGVtIEFuYmlldGVyOjwvcD5cbiAgICA8aDM+RXh0ZXJuZXMgSG9zdGluZzwvaDM+XG4gICAgPHA+XG4gICAgICBEaWVzZSBXZWJzaXRlIHdpcmQgZXh0ZXJuIGdlaG9zdGV0LiBEaWUgcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4sIGRpZSBhdWYgZGllc2VyIFdlYnNpdGUgZXJmYXNzdCB3ZXJkZW4sIHdlcmRlbiBhdWZcbiAgICAgIGRlbiBTZXJ2ZXJuIGRlcyBIb3N0ZXJzIC8gZGVyIEhvc3RlciBnZXNwZWljaGVydC4gSGllcmJlaSBrYW5uIGVzIHNpY2ggdi4mbmJzcDthLiB1bSBJUC1BZHJlc3NlbiwgS29udGFrdGFuZnJhZ2VuLFxuICAgICAgTWV0YS0gdW5kIEtvbW11bmlrYXRpb25zZGF0ZW4sIFZlcnRyYWdzZGF0ZW4sIEtvbnRha3RkYXRlbiwgTmFtZW4sIFdlYnNpdGV6dWdyaWZmZSB1bmQgc29uc3RpZ2UgRGF0ZW4sIGRpZSAmdXVtbDtiZXJcbiAgICAgIGVpbmUgV2Vic2l0ZSBnZW5lcmllcnQgd2VyZGVuLCBoYW5kZWxuLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIERhcyBleHRlcm5lIEhvc3RpbmcgZXJmb2xndCB6dW0gWndlY2tlIGRlciBWZXJ0cmFnc2VyZiZ1dW1sO2xsdW5nIGdlZ2VuJnV1bWw7YmVyIHVuc2VyZW4gcG90ZW56aWVsbGVuIHVuZFxuICAgICAgYmVzdGVoZW5kZW4gS3VuZGVuIChBcnQuIDYgQWJzLiAxIGxpdC4gYiBEU0dWTykgdW5kIGltIEludGVyZXNzZSBlaW5lciBzaWNoZXJlbiwgc2NobmVsbGVuIHVuZCBlZmZpemllbnRlblxuICAgICAgQmVyZWl0c3RlbGx1bmcgdW5zZXJlcyBPbmxpbmUtQW5nZWJvdHMgZHVyY2ggZWluZW4gcHJvZmVzc2lvbmVsbGVuIEFuYmlldGVyIChBcnQuIDYgQWJzLiAxIGxpdC4gZiBEU0dWTykuIFNvZmVyblxuICAgICAgZWluZSBlbnRzcHJlY2hlbmRlIEVpbndpbGxpZ3VuZyBhYmdlZnJhZ3Qgd3VyZGUsIGVyZm9sZ3QgZGllIFZlcmFyYmVpdHVuZyBhdXNzY2hsaWUmc3psaWc7bGljaCBhdWYgR3J1bmRsYWdlIHZvblxuICAgICAgQXJ0LiA2IEFicy4gMSBsaXQuIGEgRFNHVk8gdW5kICZzZWN0OyAyNSBBYnMuIDEgVFREU0csIHNvd2VpdCBkaWUgRWlud2lsbGlndW5nIGRpZSBTcGVpY2hlcnVuZyB2b24gQ29va2llcyBvZGVyIGRlblxuICAgICAgWnVncmlmZiBhdWYgSW5mb3JtYXRpb25lbiBpbSBFbmRnZXImYXVtbDt0IGRlcyBOdXR6ZXJzICh6LiZuYnNwO0IuIERldmljZS1GaW5nZXJwcmludGluZykgaW0gU2lubmUgZGVzIFRURFNHXG4gICAgICB1bWZhc3N0LiBEaWUgRWlud2lsbGlndW5nIGlzdCBqZWRlcnplaXQgd2lkZXJydWZiYXIuXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgVW5zZXIoZSkgSG9zdGVyIHdpcmQgYnp3LiB3ZXJkZW4gSWhyZSBEYXRlbiBudXIgaW5zb3dlaXQgdmVyYXJiZWl0ZW4sIHdpZSBkaWVzIHp1ciBFcmYmdXVtbDtsbHVuZyBzZWluZXJcbiAgICAgIExlaXN0dW5nc3BmbGljaHRlbiBlcmZvcmRlcmxpY2ggaXN0IHVuZCB1bnNlcmUgV2Vpc3VuZ2VuIGluIEJlenVnIGF1ZiBkaWVzZSBEYXRlbiBiZWZvbGdlbi5cbiAgICA8L3A+XG4gICAgPHA+V2lyIHNldHplbiBmb2xnZW5kZShuKSBIb3N0ZXIgZWluOjwvcD5cbiAgICA8cD5cbiAgICAgIEx1Y2tzbWl0aCBlLksuPGJyPlxuICAgICAgVW50ZXJlLVRyaWZ0LVN0cmEmc3psaWc7ZSAxMTxicj5cbiAgICAgIDU2MzU3IEJvZ2VsXG4gICAgPC9wPlxuXG4gICAgPGgyPjMuIEFsbGdlbWVpbmUgSGlud2Vpc2UgdW5kIFBmbGljaHQmc2h5O2luZm9ybWF0aW9uZW48L2gyPlxuICAgIDxoMz5EYXRlbnNjaHV0ejwvaDM+XG4gICAgPHA+XG4gICAgICBEaWUgQmV0cmVpYmVyIGRpZXNlciBTZWl0ZW4gbmVobWVuIGRlbiBTY2h1dHogSWhyZXIgcGVycyZvdW1sO25saWNoZW4gRGF0ZW4gc2VociBlcm5zdC4gV2lyIGJlaGFuZGVsbiBJaHJlXG4gICAgICBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiB2ZXJ0cmF1bGljaCB1bmQgZW50c3ByZWNoZW5kIGRlbiBnZXNldHpsaWNoZW4gRGF0ZW5zY2h1dHp2b3JzY2hyaWZ0ZW4gc293aWUgZGllc2VyXG4gICAgICBEYXRlbnNjaHV0emVya2wmYXVtbDtydW5nLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIFdlbm4gU2llIGRpZXNlIFdlYnNpdGUgYmVudXR6ZW4sIHdlcmRlbiB2ZXJzY2hpZWRlbmUgcGVyc29uZW5iZXpvZ2VuZSBEYXRlbiBlcmhvYmVuLiBQZXJzb25lbmJlem9nZW5lIERhdGVuIHNpbmRcbiAgICAgIERhdGVuLCBtaXQgZGVuZW4gU2llIHBlcnMmb3VtbDtubGljaCBpZGVudGlmaXppZXJ0IHdlcmRlbiBrJm91bWw7bm5lbi4gRGllIHZvcmxpZWdlbmRlIERhdGVuc2NodXR6ZXJrbCZhdW1sO3J1bmdcbiAgICAgIGVybCZhdW1sO3V0ZXJ0LCB3ZWxjaGUgRGF0ZW4gd2lyIGVyaGViZW4gdW5kIHdvZiZ1dW1sO3Igd2lyIHNpZSBudXR6ZW4uIFNpZSBlcmwmYXVtbDt1dGVydCBhdWNoLCB3aWUgdW5kIHp1IHdlbGNoZW1cbiAgICAgIFp3ZWNrIGRhcyBnZXNjaGllaHQuXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgV2lyIHdlaXNlbiBkYXJhdWYgaGluLCBkYXNzIGRpZSBEYXRlbiZ1dW1sO2JlcnRyYWd1bmcgaW0gSW50ZXJuZXQgKHouJm5ic3A7Qi4gYmVpIGRlciBLb21tdW5pa2F0aW9uIHBlciBFLU1haWwpXG4gICAgICBTaWNoZXJoZWl0c2wmdXVtbDtja2VuIGF1ZndlaXNlbiBrYW5uLiBFaW4gbCZ1dW1sO2NrZW5sb3NlciBTY2h1dHogZGVyIERhdGVuIHZvciBkZW0gWnVncmlmZiBkdXJjaCBEcml0dGUgaXN0IG5pY2h0XG4gICAgICBtJm91bWw7Z2xpY2guXG4gICAgPC9wPlxuICAgIDxoMz5IaW53ZWlzIHp1ciB2ZXJhbnR3b3J0bGljaGVuIFN0ZWxsZTwvaDM+XG4gICAgPHA+RGllIHZlcmFudHdvcnRsaWNoZSBTdGVsbGUgZiZ1dW1sO3IgZGllIERhdGVudmVyYXJiZWl0dW5nIGF1ZiBkaWVzZXIgV2Vic2l0ZSBpc3Q6PC9wPlxuICAgIDxwPlxuICAgICAgRGFuaWVsIFZhbGVudGluIEtvd2Fsc2tpPGJyPlxuICAgICAgS2lyc3RlaW5zdHJhJnN6bGlnO2UgM0U8YnI+XG4gICAgICA1NTEzMSBNYWluelxuICAgIDwvcD5cblxuICAgIDxwPlxuICAgICAgVGVsZWZvbjogKzQ5MTc2NDE4NjQ1ODY8YnI+XG4gICAgICBFLU1haWw6IGRhbmllbC52YWxlbnRpbmtAZ21haWwuY29tXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgVmVyYW50d29ydGxpY2hlIFN0ZWxsZSBpc3QgZGllIG5hdCZ1dW1sO3JsaWNoZSBvZGVyIGp1cmlzdGlzY2hlIFBlcnNvbiwgZGllIGFsbGVpbiBvZGVyIGdlbWVpbnNhbSBtaXQgYW5kZXJlblxuICAgICAgJnV1bWw7YmVyIGRpZSBad2Vja2UgdW5kIE1pdHRlbCBkZXIgVmVyYXJiZWl0dW5nIHZvbiBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiAoei4mbmJzcDtCLiBOYW1lbiwgRS1NYWlsLUFkcmVzc2VuIG8uXG4gICAgICAmQXVtbDsuKSBlbnRzY2hlaWRldC5cbiAgICA8L3A+XG5cbiAgICA8aDM+U3BlaWNoZXJkYXVlcjwvaDM+XG4gICAgPHA+XG4gICAgICBTb3dlaXQgaW5uZXJoYWxiIGRpZXNlciBEYXRlbnNjaHV0emVya2wmYXVtbDtydW5nIGtlaW5lIHNwZXppZWxsZXJlIFNwZWljaGVyZGF1ZXIgZ2VuYW5udCB3dXJkZSwgdmVyYmxlaWJlbiBJaHJlXG4gICAgICBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiBiZWkgdW5zLCBiaXMgZGVyIFp3ZWNrIGYmdXVtbDtyIGRpZSBEYXRlbnZlcmFyYmVpdHVuZyBlbnRmJmF1bWw7bGx0LiBXZW5uIFNpZSBlaW5cbiAgICAgIGJlcmVjaHRpZ3RlcyBMJm91bWw7c2NoZXJzdWNoZW4gZ2VsdGVuZCBtYWNoZW4gb2RlciBlaW5lIEVpbndpbGxpZ3VuZyB6dXIgRGF0ZW52ZXJhcmJlaXR1bmcgd2lkZXJydWZlbiwgd2VyZGVuIElocmVcbiAgICAgIERhdGVuIGdlbCZvdW1sO3NjaHQsIHNvZmVybiB3aXIga2VpbmUgYW5kZXJlbiByZWNodGxpY2ggenVsJmF1bWw7c3NpZ2VuIEdyJnV1bWw7bmRlIGYmdXVtbDtyIGRpZSBTcGVpY2hlcnVuZyBJaHJlclxuICAgICAgcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4gaGFiZW4gKHouJm5ic3A7Qi4gc3RldWVyLSBvZGVyIGhhbmRlbHNyZWNodGxpY2hlIEF1ZmJld2FocnVuZ3NmcmlzdGVuKTsgaW0gbGV0enRnZW5hbm50ZW5cbiAgICAgIEZhbGwgZXJmb2xndCBkaWUgTCZvdW1sO3NjaHVuZyBuYWNoIEZvcnRmYWxsIGRpZXNlciBHciZ1dW1sO25kZS5cbiAgICA8L3A+XG4gICAgPGgzPkFsbGdlbWVpbmUgSGlud2Vpc2UgenUgZGVuIFJlY2h0c2dydW5kbGFnZW4gZGVyIERhdGVudmVyYXJiZWl0dW5nIGF1ZiBkaWVzZXIgV2Vic2l0ZTwvaDM+XG4gICAgPHA+XG4gICAgICBTb2Zlcm4gU2llIGluIGRpZSBEYXRlbnZlcmFyYmVpdHVuZyBlaW5nZXdpbGxpZ3QgaGFiZW4sIHZlcmFyYmVpdGVuIHdpciBJaHJlIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuIGF1ZiBHcnVuZGxhZ2VcbiAgICAgIHZvbiBBcnQuIDYgQWJzLiAxIGxpdC4gYSBEU0dWTyBiencuIEFydC4gOSBBYnMuIDIgbGl0LiBhIERTR1ZPLCBzb2Zlcm4gYmVzb25kZXJlIERhdGVua2F0ZWdvcmllbiBuYWNoIEFydC4gOSBBYnMuIDFcbiAgICAgIERTR1ZPIHZlcmFyYmVpdGV0IHdlcmRlbi4gSW0gRmFsbGUgZWluZXIgYXVzZHImdXVtbDtja2xpY2hlbiBFaW53aWxsaWd1bmcgaW4gZGllICZVdW1sO2JlcnRyYWd1bmcgcGVyc29uZW5iZXpvZ2VuZXJcbiAgICAgIERhdGVuIGluIERyaXR0c3RhYXRlbiBlcmZvbGd0IGRpZSBEYXRlbnZlcmFyYmVpdHVuZyBhdSZzemxpZztlcmRlbSBhdWYgR3J1bmRsYWdlIHZvbiBBcnQuIDQ5IEFicy4gMSBsaXQuIGEgRFNHVk8uXG4gICAgICBTb2Zlcm4gU2llIGluIGRpZSBTcGVpY2hlcnVuZyB2b24gQ29va2llcyBvZGVyIGluIGRlbiBadWdyaWZmIGF1ZiBJbmZvcm1hdGlvbmVuIGluIElociBFbmRnZXImYXVtbDt0ICh6LiZuYnNwO0IuIHZpYVxuICAgICAgRGV2aWNlLUZpbmdlcnByaW50aW5nKSBlaW5nZXdpbGxpZ3QgaGFiZW4sIGVyZm9sZ3QgZGllIERhdGVudmVyYXJiZWl0dW5nIHp1cyZhdW1sO3R6bGljaCBhdWYgR3J1bmRsYWdlIHZvbiAmc2VjdDsgMjVcbiAgICAgIEFicy4gMSBUVERTRy4gRGllIEVpbndpbGxpZ3VuZyBpc3QgamVkZXJ6ZWl0IHdpZGVycnVmYmFyLiBTaW5kIElocmUgRGF0ZW4genVyIFZlcnRyYWdzZXJmJnV1bWw7bGx1bmcgb2RlciB6dXJcbiAgICAgIER1cmNoZiZ1dW1sO2hydW5nIHZvcnZlcnRyYWdsaWNoZXIgTWEmc3psaWc7bmFobWVuIGVyZm9yZGVybGljaCwgdmVyYXJiZWl0ZW4gd2lyIElocmUgRGF0ZW4gYXVmIEdydW5kbGFnZSBkZXMgQXJ0LiA2XG4gICAgICBBYnMuIDEgbGl0LiBiIERTR1ZPLiBEZXMgV2VpdGVyZW4gdmVyYXJiZWl0ZW4gd2lyIElocmUgRGF0ZW4sIHNvZmVybiBkaWVzZSB6dXIgRXJmJnV1bWw7bGx1bmcgZWluZXIgcmVjaHRsaWNoZW5cbiAgICAgIFZlcnBmbGljaHR1bmcgZXJmb3JkZXJsaWNoIHNpbmQgYXVmIEdydW5kbGFnZSB2b24gQXJ0LiA2IEFicy4gMSBsaXQuIGMgRFNHVk8uIERpZSBEYXRlbnZlcmFyYmVpdHVuZyBrYW5uIGZlcm5lciBhdWZcbiAgICAgIEdydW5kbGFnZSB1bnNlcmVzIGJlcmVjaHRpZ3RlbiBJbnRlcmVzc2VzIG5hY2ggQXJ0LiA2IEFicy4gMSBsaXQuIGYgRFNHVk8gZXJmb2xnZW4uICZVdW1sO2JlciBkaWUgamV3ZWlscyBpbVxuICAgICAgRWluemVsZmFsbCBlaW5zY2hsJmF1bWw7Z2lnZW4gUmVjaHRzZ3J1bmRsYWdlbiB3aXJkIGluIGRlbiBmb2xnZW5kZW4gQWJzJmF1bWw7dHplbiBkaWVzZXIgRGF0ZW5zY2h1dHplcmtsJmF1bWw7cnVuZ1xuICAgICAgaW5mb3JtaWVydC5cbiAgICA8L3A+XG4gICAgPGgzPkhpbndlaXMgenVyIERhdGVud2VpdGVyZ2FiZSBpbiBkaWUgVVNBIHVuZCBzb25zdGlnZSBEcml0dHN0YWF0ZW48L2gzPlxuICAgIDxwPlxuICAgICAgV2lyIHZlcndlbmRlbiB1bnRlciBhbmRlcmVtIFRvb2xzIHZvbiBVbnRlcm5laG1lbiBtaXQgU2l0eiBpbiBkZW4gVVNBIG9kZXIgc29uc3RpZ2VuIGRhdGVuc2NodXR6cmVjaHRsaWNoIG5pY2h0XG4gICAgICBzaWNoZXJlbiBEcml0dHN0YWF0ZW4uIFdlbm4gZGllc2UgVG9vbHMgYWt0aXYgc2luZCwgayZvdW1sO25uZW4gSWhyZSBwZXJzb25lbmJlem9nZW5lIERhdGVuIGluIGRpZXNlIERyaXR0c3RhYXRlblxuICAgICAgJnV1bWw7YmVydHJhZ2VuIHVuZCBkb3J0IHZlcmFyYmVpdGV0IHdlcmRlbi4gV2lyIHdlaXNlbiBkYXJhdWYgaGluLCBkYXNzIGluIGRpZXNlbiBMJmF1bWw7bmRlcm4ga2VpbiBtaXQgZGVyIEVVXG4gICAgICB2ZXJnbGVpY2hiYXJlcyBEYXRlbnNjaHV0em5pdmVhdSBnYXJhbnRpZXJ0IHdlcmRlbiBrYW5uLiBCZWlzcGllbHN3ZWlzZSBzaW5kIFVTLVVudGVybmVobWVuIGRhenUgdmVycGZsaWNodGV0LFxuICAgICAgcGVyc29uZW5iZXpvZ2VuZSBEYXRlbiBhbiBTaWNoZXJoZWl0c2JlaCZvdW1sO3JkZW4gaGVyYXVzenVnZWJlbiwgb2huZSBkYXNzIFNpZSBhbHMgQmV0cm9mZmVuZXIgaGllcmdlZ2VuXG4gICAgICBnZXJpY2h0bGljaCB2b3JnZWhlbiBrJm91bWw7bm50ZW4uIEVzIGthbm4gZGFoZXIgbmljaHQgYXVzZ2VzY2hsb3NzZW4gd2VyZGVuLCBkYXNzIFVTLUJlaCZvdW1sO3JkZW4gKHouJm5ic3A7Qi5cbiAgICAgIEdlaGVpbWRpZW5zdGUpIElocmUgYXVmIFVTLVNlcnZlcm4gYmVmaW5kbGljaGVuIERhdGVuIHp1ICZVdW1sO2JlcndhY2h1bmdzendlY2tlbiB2ZXJhcmJlaXRlbiwgYXVzd2VydGVuIHVuZFxuICAgICAgZGF1ZXJoYWZ0IHNwZWljaGVybi4gV2lyIGhhYmVuIGF1ZiBkaWVzZSBWZXJhcmJlaXR1bmdzdCZhdW1sO3RpZ2tlaXRlbiBrZWluZW4gRWluZmx1c3MuXG4gICAgPC9wPlxuICAgIDxoMz5XaWRlcnJ1ZiBJaHJlciBFaW53aWxsaWd1bmcgenVyIERhdGVudmVyYXJiZWl0dW5nPC9oMz5cbiAgICA8cD5cbiAgICAgIFZpZWxlIERhdGVudmVyYXJiZWl0dW5nc3ZvcmcmYXVtbDtuZ2Ugc2luZCBudXIgbWl0IElocmVyIGF1c2RyJnV1bWw7Y2tsaWNoZW4gRWlud2lsbGlndW5nIG0mb3VtbDtnbGljaC4gU2llXG4gICAgICBrJm91bWw7bm5lbiBlaW5lIGJlcmVpdHMgZXJ0ZWlsdGUgRWlud2lsbGlndW5nIGplZGVyemVpdCB3aWRlcnJ1ZmVuLiBEaWUgUmVjaHRtJmF1bWw7JnN6bGlnO2lna2VpdCBkZXIgYmlzIHp1bVxuICAgICAgV2lkZXJydWYgZXJmb2xndGVuIERhdGVudmVyYXJiZWl0dW5nIGJsZWlidCB2b20gV2lkZXJydWYgdW5iZXImdXVtbDtocnQuXG4gICAgPC9wPlxuICAgIDxoMz5XaWRlcnNwcnVjaHNyZWNodCBnZWdlbiBkaWUgRGF0ZW5lcmhlYnVuZyBpbiBiZXNvbmRlcmVuIEYmYXVtbDtsbGVuIHNvd2llIGdlZ2VuIERpcmVrdHdlcmJ1bmcgKEFydC4gMjEgRFNHVk8pPC9oMz5cbiAgICA8cD5cbiAgICAgIFdFTk4gRElFIERBVEVOVkVSQVJCRUlUVU5HIEFVRiBHUlVORExBR0UgVk9OIEFSVC4gNiBBQlMuIDEgTElULiBFIE9ERVIgRiBEU0dWTyBFUkZPTEdULCBIQUJFTiBTSUUgSkVERVJaRUlUIERBU1xuICAgICAgUkVDSFQsIEFVUyBHUiZVdW1sO05ERU4sIERJRSBTSUNIIEFVUyBJSFJFUiBCRVNPTkRFUkVOIFNJVFVBVElPTiBFUkdFQkVOLCBHRUdFTiBESUUgVkVSQVJCRUlUVU5HIElIUkVSXG4gICAgICBQRVJTT05FTkJFWk9HRU5FTiBEQVRFTiBXSURFUlNQUlVDSCBFSU5aVUxFR0VOOyBESUVTIEdJTFQgQVVDSCBGJlV1bWw7UiBFSU4gQVVGIERJRVNFIEJFU1RJTU1VTkdFTiBHRVNUJlV1bWw7VFpURVNcbiAgICAgIFBST0ZJTElORy4gRElFIEpFV0VJTElHRSBSRUNIVFNHUlVORExBR0UsIEFVRiBERU5FTiBFSU5FIFZFUkFSQkVJVFVORyBCRVJVSFQsIEVOVE5FSE1FTiBTSUUgRElFU0VSXG4gICAgICBEQVRFTlNDSFVUWkVSS0wmQXVtbDtSVU5HLiBXRU5OIFNJRSBXSURFUlNQUlVDSCBFSU5MRUdFTiwgV0VSREVOIFdJUiBJSFJFIEJFVFJPRkZFTkVOIFBFUlNPTkVOQkVaT0dFTkVOIERBVEVOIE5JQ0hUXG4gICAgICBNRUhSIFZFUkFSQkVJVEVOLCBFUyBTRUkgREVOTiwgV0lSIEsmT3VtbDtOTkVOIFpXSU5HRU5ERSBTQ0hVVFpXJlV1bWw7UkRJR0UgR1ImVXVtbDtOREUgRiZVdW1sO1IgRElFIFZFUkFSQkVJVFVOR1xuICAgICAgTkFDSFdFSVNFTiwgRElFIElIUkUgSU5URVJFU1NFTiwgUkVDSFRFIFVORCBGUkVJSEVJVEVOICZVdW1sO0JFUldJRUdFTiBPREVSIERJRSBWRVJBUkJFSVRVTkcgRElFTlQgREVSXG4gICAgICBHRUxURU5ETUFDSFVORywgQVVTJlV1bWw7QlVORyBPREVSIFZFUlRFSURJR1VORyBWT04gUkVDSFRTQU5TUFImVXVtbDtDSEVOIChXSURFUlNQUlVDSCBOQUNIIEFSVC4gMjEgQUJTLiAxIERTR1ZPKS5cbiAgICA8L3A+XG4gICAgPHA+XG4gICAgICBXRVJERU4gSUhSRSBQRVJTT05FTkJFWk9HRU5FTiBEQVRFTiBWRVJBUkJFSVRFVCwgVU0gRElSRUtUV0VSQlVORyBaVSBCRVRSRUlCRU4sIFNPIEhBQkVOIFNJRSBEQVMgUkVDSFQsIEpFREVSWkVJVFxuICAgICAgV0lERVJTUFJVQ0ggR0VHRU4gRElFIFZFUkFSQkVJVFVORyBTSUUgQkVUUkVGRkVOREVSIFBFUlNPTkVOQkVaT0dFTkVSIERBVEVOIFpVTSBaV0VDS0UgREVSQVJUSUdFUiBXRVJCVU5HXG4gICAgICBFSU5aVUxFR0VOOyBESUVTIEdJTFQgQVVDSCBGJlV1bWw7UiBEQVMgUFJPRklMSU5HLCBTT1dFSVQgRVMgTUlUIFNPTENIRVIgRElSRUtUV0VSQlVORyBJTiBWRVJCSU5EVU5HIFNURUhULiBXRU5OIFNJRVxuICAgICAgV0lERVJTUFJFQ0hFTiwgV0VSREVOIElIUkUgUEVSU09ORU5CRVpPR0VORU4gREFURU4gQU5TQ0hMSUVTU0VORCBOSUNIVCBNRUhSIFpVTSBaV0VDS0UgREVSIERJUkVLVFdFUkJVTkcgVkVSV0VOREVUXG4gICAgICAoV0lERVJTUFJVQ0ggTkFDSCBBUlQuIDIxIEFCUy4gMiBEU0dWTykuXG4gICAgPC9wPlxuICAgIDxoMz5CZXNjaHdlcmRlJnNoeTtyZWNodCBiZWkgZGVyIHp1c3QmYXVtbDtuZGlnZW4gQXVmc2ljaHRzJnNoeTtiZWgmb3VtbDtyZGU8L2gzPlxuICAgIDxwPlxuICAgICAgSW0gRmFsbGUgdm9uIFZlcnN0Jm91bWw7JnN6bGlnO2VuIGdlZ2VuIGRpZSBEU0dWTyBzdGVodCBkZW4gQmV0cm9mZmVuZW4gZWluIEJlc2Nod2VyZGVyZWNodCBiZWkgZWluZXJcbiAgICAgIEF1ZnNpY2h0c2JlaCZvdW1sO3JkZSwgaW5zYmVzb25kZXJlIGluIGRlbSBNaXRnbGllZHN0YWF0IGlocmVzIGdldyZvdW1sO2hubGljaGVuIEF1ZmVudGhhbHRzLCBpaHJlcyBBcmJlaXRzcGxhdHplc1xuICAgICAgb2RlciBkZXMgT3J0cyBkZXMgbXV0bWEmc3psaWc7bGljaGVuIFZlcnN0byZzemxpZztlcyB6dS4gRGFzIEJlc2Nod2VyZGVyZWNodCBiZXN0ZWh0IHVuYmVzY2hhZGV0IGFuZGVyd2VpdGlnZXJcbiAgICAgIHZlcndhbHR1bmdzcmVjaHRsaWNoZXIgb2RlciBnZXJpY2h0bGljaGVyIFJlY2h0c2JlaGVsZmUuXG4gICAgPC9wPlxuICAgIDxoMz5SZWNodCBhdWYgRGF0ZW4mc2h5OyZ1dW1sO2JlcnRyYWcmc2h5O2JhcmtlaXQ8L2gzPlxuICAgIDxwPlxuICAgICAgU2llIGhhYmVuIGRhcyBSZWNodCwgRGF0ZW4sIGRpZSB3aXIgYXVmIEdydW5kbGFnZSBJaHJlciBFaW53aWxsaWd1bmcgb2RlciBpbiBFcmYmdXVtbDtsbHVuZyBlaW5lcyBWZXJ0cmFnc1xuICAgICAgYXV0b21hdGlzaWVydCB2ZXJhcmJlaXRlbiwgYW4gc2ljaCBvZGVyIGFuIGVpbmVuIERyaXR0ZW4gaW4gZWluZW0gZyZhdW1sO25naWdlbiwgbWFzY2hpbmVubGVzYmFyZW4gRm9ybWF0XG4gICAgICBhdXNoJmF1bWw7bmRpZ2VuIHp1IGxhc3Nlbi4gU29mZXJuIFNpZSBkaWUgZGlyZWt0ZSAmVXVtbDtiZXJ0cmFndW5nIGRlciBEYXRlbiBhbiBlaW5lbiBhbmRlcmVuIFZlcmFudHdvcnRsaWNoZW5cbiAgICAgIHZlcmxhbmdlbiwgZXJmb2xndCBkaWVzIG51ciwgc293ZWl0IGVzIHRlY2huaXNjaCBtYWNoYmFyIGlzdC5cbiAgICA8L3A+XG4gICAgPGgzPkF1c2t1bmZ0LCBMJm91bWw7c2NodW5nIHVuZCBCZXJpY2h0aWd1bmc8L2gzPlxuICAgIDxwPlxuICAgICAgU2llIGhhYmVuIGltIFJhaG1lbiBkZXIgZ2VsdGVuZGVuIGdlc2V0emxpY2hlbiBCZXN0aW1tdW5nZW4gamVkZXJ6ZWl0IGRhcyBSZWNodCBhdWYgdW5lbnRnZWx0bGljaGUgQXVza3VuZnRcbiAgICAgICZ1dW1sO2JlciBJaHJlIGdlc3BlaWNoZXJ0ZW4gcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4sIGRlcmVuIEhlcmt1bmZ0IHVuZCBFbXBmJmF1bWw7bmdlciB1bmQgZGVuIFp3ZWNrIGRlclxuICAgICAgRGF0ZW52ZXJhcmJlaXR1bmcgdW5kIGdnZi4gZWluIFJlY2h0IGF1ZiBCZXJpY2h0aWd1bmcgb2RlciBMJm91bWw7c2NodW5nIGRpZXNlciBEYXRlbi4gSGllcnp1IHNvd2llIHp1IHdlaXRlcmVuXG4gICAgICBGcmFnZW4genVtIFRoZW1hIHBlcnNvbmVuYmV6b2dlbmUgRGF0ZW4gayZvdW1sO25uZW4gU2llIHNpY2ggamVkZXJ6ZWl0IGFuIHVucyB3ZW5kZW4uXG4gICAgPC9wPlxuICAgIDxoMz5SZWNodCBhdWYgRWluc2NociZhdW1sO25rdW5nIGRlciBWZXJhcmJlaXR1bmc8L2gzPlxuICAgIDxwPlxuICAgICAgU2llIGhhYmVuIGRhcyBSZWNodCwgZGllIEVpbnNjaHImYXVtbDtua3VuZyBkZXIgVmVyYXJiZWl0dW5nIElocmVyIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuIHp1IHZlcmxhbmdlbi4gSGllcnp1XG4gICAgICBrJm91bWw7bm5lbiBTaWUgc2ljaCBqZWRlcnplaXQgYW4gdW5zIHdlbmRlbi4gRGFzIFJlY2h0IGF1ZiBFaW5zY2hyJmF1bWw7bmt1bmcgZGVyIFZlcmFyYmVpdHVuZyBiZXN0ZWh0IGluIGZvbGdlbmRlblxuICAgICAgRiZhdW1sO2xsZW46XG4gICAgPC9wPlxuICAgIDx1bD5cbiAgICAgIDxsaT5cbiAgICAgICAgV2VubiBTaWUgZGllIFJpY2h0aWdrZWl0IElocmVyIGJlaSB1bnMgZ2VzcGVpY2hlcnRlbiBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiBiZXN0cmVpdGVuLCBiZW4mb3VtbDt0aWdlbiB3aXIgaW5cbiAgICAgICAgZGVyIFJlZ2VsIFplaXQsIHVtIGRpZXMgenUgJnV1bWw7YmVycHImdXVtbDtmZW4uIEYmdXVtbDtyIGRpZSBEYXVlciBkZXIgUHImdXVtbDtmdW5nIGhhYmVuIFNpZSBkYXMgUmVjaHQsIGRpZVxuICAgICAgICBFaW5zY2hyJmF1bWw7bmt1bmcgZGVyIFZlcmFyYmVpdHVuZyBJaHJlciBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiB6dSB2ZXJsYW5nZW4uXG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICBXZW5uIGRpZSBWZXJhcmJlaXR1bmcgSWhyZXIgcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4gdW5yZWNodG0mYXVtbDsmc3psaWc7aWcgZ2VzY2hhaC9nZXNjaGllaHQsIGsmb3VtbDtubmVuIFNpZVxuICAgICAgICBzdGF0dCBkZXIgTCZvdW1sO3NjaHVuZyBkaWUgRWluc2NociZhdW1sO25rdW5nIGRlciBEYXRlbnZlcmFyYmVpdHVuZyB2ZXJsYW5nZW4uXG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICBXZW5uIHdpciBJaHJlIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuIG5pY2h0IG1laHIgYmVuJm91bWw7dGlnZW4sIFNpZSBzaWUgamVkb2NoIHp1ciBBdXMmdXVtbDtidW5nLCBWZXJ0ZWlkaWd1bmdcbiAgICAgICAgb2RlciBHZWx0ZW5kbWFjaHVuZyB2b24gUmVjaHRzYW5zcHImdXVtbDtjaGVuIGJlbiZvdW1sO3RpZ2VuLCBoYWJlbiBTaWUgZGFzIFJlY2h0LCBzdGF0dCBkZXIgTCZvdW1sO3NjaHVuZyBkaWVcbiAgICAgICAgRWluc2NociZhdW1sO25rdW5nIGRlciBWZXJhcmJlaXR1bmcgSWhyZXIgcGVyc29uZW5iZXpvZ2VuZW4gRGF0ZW4genUgdmVybGFuZ2VuLlxuICAgICAgPC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgV2VubiBTaWUgZWluZW4gV2lkZXJzcHJ1Y2ggbmFjaCBBcnQuIDIxIEFicy4gMSBEU0dWTyBlaW5nZWxlZ3QgaGFiZW4sIG11c3MgZWluZSBBYncmYXVtbDtndW5nIHp3aXNjaGVuIElocmVuIHVuZFxuICAgICAgICB1bnNlcmVuIEludGVyZXNzZW4gdm9yZ2Vub21tZW4gd2VyZGVuLiBTb2xhbmdlIG5vY2ggbmljaHQgZmVzdHN0ZWh0LCB3ZXNzZW4gSW50ZXJlc3NlbiAmdXVtbDtiZXJ3aWVnZW4sIGhhYmVuIFNpZVxuICAgICAgICBkYXMgUmVjaHQsIGRpZSBFaW5zY2hyJmF1bWw7bmt1bmcgZGVyIFZlcmFyYmVpdHVuZyBJaHJlciBwZXJzb25lbmJlem9nZW5lbiBEYXRlbiB6dSB2ZXJsYW5nZW4uXG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPHA+XG4gICAgICBXZW5uIFNpZSBkaWUgVmVyYXJiZWl0dW5nIElocmVyIHBlcnNvbmVuYmV6b2dlbmVuIERhdGVuIGVpbmdlc2NociZhdW1sO25rdCBoYWJlbiwgZCZ1dW1sO3JmZW4gZGllc2UgRGF0ZW4gJm5kYXNoO1xuICAgICAgdm9uIGlocmVyIFNwZWljaGVydW5nIGFiZ2VzZWhlbiAmbmRhc2g7IG51ciBtaXQgSWhyZXIgRWlud2lsbGlndW5nIG9kZXIgenVyIEdlbHRlbmRtYWNodW5nLCBBdXMmdXVtbDtidW5nIG9kZXJcbiAgICAgIFZlcnRlaWRpZ3VuZyB2b24gUmVjaHRzYW5zcHImdXVtbDtjaGVuIG9kZXIgenVtIFNjaHV0eiBkZXIgUmVjaHRlIGVpbmVyIGFuZGVyZW4gbmF0JnV1bWw7cmxpY2hlbiBvZGVyIGp1cmlzdGlzY2hlblxuICAgICAgUGVyc29uIG9kZXIgYXVzIEdyJnV1bWw7bmRlbiBlaW5lcyB3aWNodGlnZW4gJm91bWw7ZmZlbnRsaWNoZW4gSW50ZXJlc3NlcyBkZXIgRXVyb3AmYXVtbDtpc2NoZW4gVW5pb24gb2RlciBlaW5lc1xuICAgICAgTWl0Z2xpZWRzdGFhdHMgdmVyYXJiZWl0ZXQgd2VyZGVuLlxuICAgIDwvcD5cbiAgICA8aDM+U1NMLSBiencuIFRMUy1WZXJzY2hsJnV1bWw7c3NlbHVuZzwvaDM+XG4gICAgPHA+XG4gICAgICBEaWVzZSBTZWl0ZSBudXR6dCBhdXMgU2ljaGVyaGVpdHNnciZ1dW1sO25kZW4gdW5kIHp1bSBTY2h1dHogZGVyICZVdW1sO2JlcnRyYWd1bmcgdmVydHJhdWxpY2hlciBJbmhhbHRlLCB3aWUgenVtXG4gICAgICBCZWlzcGllbCBCZXN0ZWxsdW5nZW4gb2RlciBBbmZyYWdlbiwgZGllIFNpZSBhbiB1bnMgYWxzIFNlaXRlbmJldHJlaWJlciBzZW5kZW4sIGVpbmUgU1NMLSBiencuXG4gICAgICBUTFMtVmVyc2NobCZ1dW1sO3NzZWx1bmcuIEVpbmUgdmVyc2NobCZ1dW1sO3NzZWx0ZSBWZXJiaW5kdW5nIGVya2VubmVuIFNpZSBkYXJhbiwgZGFzcyBkaWUgQWRyZXNzemVpbGUgZGVzIEJyb3dzZXJzXG4gICAgICB2b24gJmJkcXVvO2h0dHA6Ly8mbGRxdW87IGF1ZiAmYmRxdW87aHR0cHM6Ly8mbGRxdW87IHdlY2hzZWx0IHVuZCBhbiBkZW0gU2NobG9zcy1TeW1ib2wgaW4gSWhyZXIgQnJvd3NlcnplaWxlLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIFdlbm4gZGllIFNTTC0gYnp3LiBUTFMtVmVyc2NobCZ1dW1sO3NzZWx1bmcgYWt0aXZpZXJ0IGlzdCwgayZvdW1sO25uZW4gZGllIERhdGVuLCBkaWUgU2llIGFuIHVucyAmdXVtbDtiZXJtaXR0ZWxuLFxuICAgICAgbmljaHQgdm9uIERyaXR0ZW4gbWl0Z2VsZXNlbiB3ZXJkZW4uXG4gICAgPC9wPlxuICAgIDxoMj40LiBQbHVnaW5zIHVuZCBUb29sczwvaDI+XG4gICAgPGgzPkdvb2dsZSBNYXBzPC9oMz5cbiAgICA8cD5cbiAgICAgIERpZXNlIFNlaXRlIG51dHp0IGRlbiBLYXJ0ZW5kaWVuc3QgR29vZ2xlIE1hcHMuIEFuYmlldGVyIGlzdCBkaWUgR29vZ2xlIElyZWxhbmQgTGltaXRlZCAoJmJkcXVvO0dvb2dsZSZsZHF1bzspLFxuICAgICAgR29yZG9uIEhvdXNlLCBCYXJyb3cgU3RyZWV0LCBEdWJsaW4gNCwgSXJsYW5kLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIFp1ciBOdXR6dW5nIGRlciBGdW5rdGlvbmVuIHZvbiBHb29nbGUgTWFwcyBpc3QgZXMgbm90d2VuZGlnLCBJaHJlIElQLUFkcmVzc2UgenUgc3BlaWNoZXJuLiBEaWVzZSBJbmZvcm1hdGlvbmVuXG4gICAgICB3ZXJkZW4gaW4gZGVyIFJlZ2VsIGFuIGVpbmVuIFNlcnZlciB2b24gR29vZ2xlIGluIGRlbiBVU0EgJnV1bWw7YmVydHJhZ2VuIHVuZCBkb3J0IGdlc3BlaWNoZXJ0LiBEZXIgQW5iaWV0ZXIgZGllc2VyXG4gICAgICBTZWl0ZSBoYXQga2VpbmVuIEVpbmZsdXNzIGF1ZiBkaWVzZSBEYXRlbiZ1dW1sO2JlcnRyYWd1bmcuIFdlbm4gR29vZ2xlIE1hcHMgYWt0aXZpZXJ0IGlzdCwga2FubiBHb29nbGUgenVtIFp3ZWNrZVxuICAgICAgZGVyIGVpbmhlaXRsaWNoZW4gRGFyc3RlbGx1bmcgZGVyIFNjaHJpZnRhcnRlbiBHb29nbGUgRm9udHMgdmVyd2VuZGVuLiBCZWltIEF1ZnJ1ZiB2b24gR29vZ2xlIE1hcHMgbCZhdW1sO2R0IEloclxuICAgICAgQnJvd3NlciBkaWUgYmVuJm91bWw7dGlndGVuIFdlYiBGb250cyBpbiBpaHJlbiBCcm93c2VyY2FjaGUsIHVtIFRleHRlIHVuZCBTY2hyaWZ0YXJ0ZW4ga29ycmVrdCBhbnp1emVpZ2VuLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIERpZSBOdXR6dW5nIHZvbiBHb29nbGUgTWFwcyBlcmZvbGd0IGltIEludGVyZXNzZSBlaW5lciBhbnNwcmVjaGVuZGVuIERhcnN0ZWxsdW5nIHVuc2VyZXIgT25saW5lLUFuZ2Vib3RlIHVuZCBhblxuICAgICAgZWluZXIgbGVpY2h0ZW4gQXVmZmluZGJhcmtlaXQgZGVyIHZvbiB1bnMgYXVmIGRlciBXZWJzaXRlIGFuZ2VnZWJlbmVuIE9ydGUuIERpZXMgc3RlbGx0IGVpbiBiZXJlY2h0aWd0ZXMgSW50ZXJlc3NlXG4gICAgICBpbSBTaW5uZSB2b24gQXJ0LiA2IEFicy4gMSBsaXQuIGYgRFNHVk8gZGFyLiBTb2Zlcm4gZWluZSBlbnRzcHJlY2hlbmRlIEVpbndpbGxpZ3VuZyBhYmdlZnJhZ3Qgd3VyZGUsIGVyZm9sZ3QgZGllXG4gICAgICBWZXJhcmJlaXR1bmcgYXVzc2NobGllJnN6bGlnO2xpY2ggYXVmIEdydW5kbGFnZSB2b24gQXJ0LiA2IEFicy4gMSBsaXQuIGEgRFNHVk8gdW5kICZzZWN0OyAyNSBBYnMuIDEgVFREU0csIHNvd2VpdFxuICAgICAgZGllIEVpbndpbGxpZ3VuZyBkaWUgU3BlaWNoZXJ1bmcgdm9uIENvb2tpZXMgb2RlciBkZW4gWnVncmlmZiBhdWYgSW5mb3JtYXRpb25lbiBpbSBFbmRnZXImYXVtbDt0IGRlcyBOdXR6ZXJzXG4gICAgICAoei4mbmJzcDtCLiBEZXZpY2UtRmluZ2VycHJpbnRpbmcpIGltIFNpbm5lIGRlcyBUVERTRyB1bWZhc3N0LiBEaWUgRWlud2lsbGlndW5nIGlzdCBqZWRlcnplaXQgd2lkZXJydWZiYXIuXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgRGllIERhdGVuJnV1bWw7YmVydHJhZ3VuZyBpbiBkaWUgVVNBIHdpcmQgYXVmIGRpZSBTdGFuZGFyZHZlcnRyYWdza2xhdXNlbG4gZGVyIEVVLUtvbW1pc3Npb24gZ2VzdCZ1dW1sO3R6dC4gRGV0YWlsc1xuICAgICAgZmluZGVuIFNpZSBoaWVyOiA8YVxuICAgICAgICBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lmdvb2dsZS5jb20vYnVzaW5lc3Nlcy9nZHByY29udHJvbGxlcnRlcm1zL1wiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgPmh0dHBzOi8vcHJpdmFjeS5nb29nbGUuY29tL2J1c2luZXNzZXMvZ2RwcmNvbnRyb2xsZXJ0ZXJtcy88L2E+IHVuZCA8YVxuICAgICAgICBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lmdvb2dsZS5jb20vYnVzaW5lc3Nlcy9nZHByY29udHJvbGxlcnRlcm1zL3NjY3MvXCJcbiAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICA+aHR0cHM6Ly9wcml2YWN5Lmdvb2dsZS5jb20vYnVzaW5lc3Nlcy9nZHByY29udHJvbGxlcnRlcm1zL3NjY3MvPC9hPi5cbiAgICA8L3A+XG4gICAgPHA+XG4gICAgICBNZWhyIEluZm9ybWF0aW9uZW4genVtIFVtZ2FuZyBtaXQgTnV0emVyZGF0ZW4gZmluZGVuIFNpZSBpbiBkZXIgRGF0ZW5zY2h1dHplcmtsJmF1bWw7cnVuZyB2b24gR29vZ2xlOiA8YVxuICAgICAgICBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3ByaXZhY3k/aGw9ZGVcIlxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgID5odHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vcHJpdmFjeT9obD1kZTwvYT4uXG4gICAgPC9wPlxuICAgIDxwPlF1ZWxsZTogPGEgaHJlZj1cImh0dHBzOi8vd3d3LmUtcmVjaHQyNC5kZVwiPmh0dHBzOi8vd3d3LmUtcmVjaHQyNC5kZTwvYT48L3A+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG59XG48L3NjcmlwdD5cbjxzdHlsZSBzY29wZWQ+XG4uYmFjay1hcnJvdyB7XG4gIHdpZHRoOiA1dnc7XG4gIGZvbnQtc2l6ZTogM3Z3O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxucCB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogYXV0bztcbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICA8aDE+QUdCPC9oMT5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xufVxuPC9zY3JpcHQ+XG48c3R5bGUgc2NvcGVkPlxuICAgIC5mdWxsLXdpZHRoe1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGRzLXJpcHBsZVwiPlxuICAgICAgPGRpdiAvPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICAgIDxwPnt7IG1lc3NhZ2VEaXNwbGF5IH19PC9wPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG4gIFxuICBcbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGludGVydmFsQ3JlYXRlZDogZmFsc2UsXG4gICAgICBmdW5ueUxvYWRpbmdNZXNzYWdlczogW1xuICAgICAgICAnRsO8bGxlIEFwZXJvbCBTcHJpdHogaW4gZGVuIEJlY2hlci4uJyxcbiAgICAgICAgJ0JhdWUgQsO8aG5lIGF1Zi4uLicsXG4gICAgICAgICdTYW1tbGUgRXJpbm5lcnVuZ2VuIGF1cyBkZXIgbGV0enRlbiBXZWNrIFdvcnNjaHQgV29pLi4uJyxcbiAgICAgICAgJ1RyZXRlIEp1bGlhbiBpbiBkZW4gSGludGVybi4uLidcbiAgICAgIF0sXG4gICAgICBtZXNzYWdlRGlzcGxheTogJ0JlcmVpdGUgV2l0emUgdm9yJyxcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkKCkge1xuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMub3B0aW9uLmJvb2tlZFxuICB9LFxuICBjcmVhdGVkKCkge1xuICAgIHRoaXMubG9hZEZ1bm55TWVzc2FnZXMoKVxuICB9LFxuXG4gIGJlZm9yZVVubW91bnQoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsQ3JlYXRlZClcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHNsZWVwKG1pbGxpc2Vjb25kcykge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgbG9hZEZ1bm55TWVzc2FnZXMoKSB7XG4gICAgICBpZiAoIXRoaXMuaW50ZXJ2YWxDcmVhdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJ2YWxDcmVhdGVkID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVNZXNzYWdlKHRoaXMuZnVubnlMb2FkaW5nTWVzc2FnZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5mdW5ueUxvYWRpbmdNZXNzYWdlcy5sZW5ndGgpXSk7XG5cbiAgICAgICAgfSwgMjAwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIGdlbmVyYXRlTWVzc2FnZSh0ZXh0KSB7XG5cbiAgICAgIHRoaXMubWVzc2FnZURpc3BsYXkgPSB0ZXh0O1xuICAgIH1cbiAgfVxufVxuXG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5sZHMtcmlwcGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG59XG5cbi5sZHMtcmlwcGxlIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogbGRzLXJpcHBsZSAxcyBjdWJpYy1iZXppZXIoMCwgMC4yLCAwLjgsIDEpIGluZmluaXRlO1xufVxuXG4ubGRzLXJpcHBsZSBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC41cztcbn1cblxuQGtleWZyYW1lcyBsZHMtcmlwcGxlIHtcbiAgMCUge1xuICAgIHRvcDogMzZweDtcbiAgICBsZWZ0OiAzNnB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNC45JSB7XG4gICAgdG9wOiAzNnB4O1xuICAgIGxlZnQ6IDM2cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA1JSB7XG4gICAgdG9wOiAzNnB4O1xuICAgIGxlZnQ6IDM2cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDcycHg7XG4gICAgaGVpZ2h0OiA3MnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbjwvc3R5bGU+XG4gICIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8bm90aWZpY2F0aW9ucyBncm91cD1cImZvb1wiIC8+XG4gICAgPGg0IGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBCZW51dHplclxuICAgIDwvaDQ+XG4gICAgPHVsPlxuICAgICAgPGxpIGNsYXNzPVwibGlzdC1ib29raW5nXCI+XG4gICAgICAgIDxwPk5hbWU6PC9wPlxuICAgICAgICA8cD57eyB1c2VyRGF0YS5maXJzdE5hbWUgKyBcIiBcIiArIHVzZXJEYXRhLmxhc3ROYW1lIH19PC9wPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImxpc3QtYm9va2luZ1wiPlxuICAgICAgICA8cD5FbWFpbDo8L3A+XG4gICAgICAgIDxwPnt7IHVzZXJEYXRhLmVtYWlsIH19PC9wPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImxpc3QtYm9va2luZ1wiPlxuICAgICAgICA8cD5DbHViOjwvcD5cbiAgICAgICAgPHA+e3sgdXNlckRhdGEuY2x1YiB9fTwvcD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJsaXN0LWJvb2tpbmdcIj5cbiAgICAgICAgPHA+VGVsZWZvbm51bW1lcjo8L3A+XG4gICAgICAgIDxwPnt7IHVzZXJEYXRhLnBob25lIH19PC9wPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPGg0IGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBHZWJ1Y2h0ZSBPcHRpb25lblxuICAgIDwvaDQ+XG4gICAgPHVsIHYtaWY9XCJib29rZWRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxsaVxuICAgICAgICB2LWZvcj1cImVudHJ5LCBrZXkgaW4gYm9va2VkT3B0aW9uc1wiXG4gICAgICAgIDprZXk9XCInYm9va2VkX2VudHJ5XycgKyBrZXlcIlxuICAgICAgICBjbGFzcz1cImxpc3QtYm9va2luZ1wiXG4gICAgICA+XG4gICAgICAgIDxwPnt7IGVudHJ5Lm5hbWUgfX08L3A+XG4gICAgICAgIDxwPnt7IGVudHJ5LnByaWNlIH194oKsPC9wPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICAgIDx1bCB2LWVsc2U+XG4gICAgICA8bGkgY2xhc3M9XCJsaXN0LWJvb2tpbmdcIj5cbiAgICAgICAgPHA+IEtlaW5lIE9wdGlvbiBhdXNnZXfDpGhsdCA8L3A+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPHAgY2xhc3M9XCJwcmljZSBnb2xkLXRleHRcIj5cbiAgICAgIHt7IHByaWNlIH194oKsXG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXAgZ29sZC10ZXh0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibmF2aWdhdGlvbi1idXR0b25cIlxuICAgICAgICBAY2xpY2s9XCJjaGFuZ2VTdGVwKCd1c2VyQ29udGFjdCcpXCJcbiAgICAgID5cbiAgICAgICAgWnVyw7xja1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibmF2aWdhdGlvbi1idXR0b25cIlxuICAgICAgICBAY2xpY2s9XCJzZW5kRGF0YSgpXCJcbiAgICAgID5cbiAgICAgICAgQWJzZW5kZW5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY29tcG9uZW50czoge1xuICB9LFxuICBwcm9wczoge1xuICAgIGxhbmd1YWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2RlJyB9LFxuICAgIHVzZXJEYXRhOiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4geyB9IH0sXG4gICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSwgZGVmYXVsdDogKCkgPT4gW10gfVxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBib29rZWRPcHRpb25zOiBbXSxcbiAgICAgIHByaWNlOiAwXG4gICAgfVxuICB9LFxuXG4gIGNyZWF0ZWQoKSB7XG4gICAgZm9yIChsZXQgaSBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnNbaV0uYm9va2VkKSB7XG4gICAgICAgIHRoaXMuYm9va2VkT3B0aW9ucy5wdXNoKHRoaXMub3B0aW9uc1tpXSlcbiAgICAgICAgdGhpcy5wcmljZSArPSB0aGlzLm9wdGlvbnNbaV0ucHJpY2VcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBjaGFuZ2VTdGVwKF9zdGVwKSB7XG4gICAgICB0aGlzLiRlbWl0KCdjaGFuZ2Utc3RlcCcsIF9zdGVwKVxuICAgIH0sXG4gICAgc2VuZERhdGEoKSB7XG4gICAgICB0aGlzLiRheGlvcy5wb3N0KCcvYXBpL3RpY2tldC9jcmVhdGUnLCB7XG4gICAgICAgIFwidXNlclwiOiB0aGlzLnVzZXJEYXRhLFxuICAgICAgICBcInRpY2tldHNcIjogdGhpcy5ib29rZWRPcHRpb25zXG4gICAgICB9KS50aGVuKGFzeW5jIChyKSA9PiB7XG4gICAgICAgIGlmIChyLmRhdGEuc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XG4gICAgICAgICAgICBncm91cDogJ2ZvbycsXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ1RpY2tldCB3dXJkZSBlcnN0ZWxsc3QnLFxuICAgICAgICAgICAgdGV4dDogJ1NpZSBlcmhhbHRlbiBpbiBkZW4gbsOkY2hzdGVuIE1pbnV0ZW4gZWluZSBOYWNocmljaHQgbWl0IGlocmVuIFp1Z2FuZ3NkYXRlbicsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgZ3JvdXA6ICdmb28nLFxuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiBcIlVwc2lcIixcbiAgICAgICAgICAgIHRleHQ6IHIuZGF0YS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5idXR0b24ge1xuICBhbGw6IHVuc2V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogNXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cCAubmF2aWdhdGlvbi1idXR0b24ge1xuICB3aWR0aDogMjAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxpc3QtYm9va2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnByaWNlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAyMCU7XG4gIH1cblxuICAubGlzdC1ib29raW5nIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgdWwge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDwhLS0gPGRpdiBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXItNDdcIiA6Y2xhc3M9XCJ7IGdvbGRCYXI6IG9wdGlvbi5ib29rZWQgfVwiPiAtLT5cbiAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXItNDdcIj5cbiAgICA8aW5wdXRcbiAgICAgIDppZD1cIm9wdGlvbi5uYW1lXCJcbiAgICAgIHYtbW9kZWw9XCJjaGVja2VkXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBuYW1lPVwiY2JcIlxuICAgICAgOmNoZWNrZWQ9XCJjaGVja2VkXCJcbiAgICAgIEBjbGljaz1cImNoYW5nZUJvb2tpbmcob3B0aW9uKVwiXG4gICAgPlxuICAgIDxsYWJlbCA6Zm9yPVwib3B0aW9uLm5hbWVcIj5cbiAgICAgIDxwIGNsYXNzPVwibmFtZVwiPlxuICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgPC9wPlxuICAgICAgPHAgY2xhc3M9XCJwcmljZVwiPlxuICAgICAgICB7eyBvcHRpb24ucHJpY2UgfX3igqxcbiAgICAgIDwvcD5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBvcHRpb246IHsgdHlwZTogT2JqZWN0LCBkZWZhdWx0OiAoKSA9PiB7IH0gfSxcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGVja2VkOiBmYWxzZVxuICAgIH1cbiAgfSxcblxuICBjcmVhdGVkKCkge1xuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMub3B0aW9uLmJvb2tlZFxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgY2hhbmdlQm9va2luZyhib29raW5nKSB7XG4gICAgICBib29raW5nLmJvb2tlZCA9ICF0aGlzLmNoZWNrZWRcbiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZS1ib29raW5nJywgYm9va2luZylcblxuICAgIH1cbiAgfVxufVxuXG48L3NjcmlwdD5cblxuPHN0eWxlPlxuLm5hbWUge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cblxuLnByaWNlIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jaGVja2JveC13cmFwcGVyLTQ3IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDgwJTtcbn1cblxuLmNoZWNrYm94LXdyYXBwZXItNDcgbGFiZWwge1xuICB3aWR0aDogNzAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxMCU7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNoZWNrYm94LXdyYXBwZXItNDcgbGFiZWw6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29udGVudDogXCIgXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgYm9yZGVyOiAycHggc29saWQgZ29sZGVucm9kO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4uY2hlY2tib3gtd3JhcHBlci00NyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxMCU7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLmNoZWNrYm94LXdyYXBwZXItNDcgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmUge1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJlbTtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAjY2I5YjUxIDIyJSxcbiAgICAgICNmNmUyN2EgNDUlLFxuICAgICAgI2NmY2I5MyA1MCUsXG4gICAgICAjZjZlMjdhIDU1JSxcbiAgICAgICNjYjliNTEgNzglKTtcbiAgYm9yZGVyLWNvbG9yOiBnb2xkZW5yb2Q7XG59XG5cbi5jaGVja2JveC13cmFwcGVyLTQ3IGxhYmVsLFxuLmNoZWNrYm94LXdyYXBwZXItNDcgbGFiZWw6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IDAuMjVzIGFsbCBlYXNlO1xufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8bm90aWZpY2F0aW9ucyBncm91cD1cImZvb1wiIC8+XG4gICAgPGg0PlfDpGhsZSBkZWluZSBPcHRpb25lbiBhdXM8L2g0PlxuICAgIDxoMz57eyBwcmljZS50b0ZpeGVkKDIpIH194oKsPC9oMz5cblxuICAgIDx1bD5cbiAgICAgIDxoNT5GcmVpdGFnPC9oNT5cbiAgICAgIDxsaVxuICAgICAgICB2LWZvcj1cIm9wdGlvbklkeCBpbiBvcHRpb25zXCJcbiAgICAgICAgOmtleT1cIm9wdGlvbklkeC5pZCArICctb3B0aW9uLWZyaS1pdGVyJ1wiXG4gICAgICA+XG4gICAgICAgIDxDaGVja2JveFN0eWxlZFxuICAgICAgICAgIHYtaWY9XCJvcHRpb25JZHgubGVmdCA+IDAgJiYgb3B0aW9uSWR4LndlZWtEYXkgPT09ICdGcmknXCJcbiAgICAgICAgICA6b3B0aW9uPVwib3B0aW9uSWR4XCJcbiAgICAgICAgICBAY2hhbmdlLWJvb2tpbmc9XCJjaGFuZ2VCb29raW5nXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbGk+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC1zZXBlcmF0b3JcIiAvPlxuICAgICAgPGg1PlNhbXN0YWcgTWl0dGFnPC9oNT5cbiAgICAgIDxwPkFjaHR1bmchIEVzIGlzdCBudXIgZWluIE1pdHRhZ3Nwcm9ncmFtbSBtw7ZnbGljaCBnbGVpY2h6ZWl0aWcgYXVzd8OkaGxiYXIhPC9wPlxuICAgICAgPGxpXG4gICAgICAgIHYtZm9yPVwib3B0aW9uSWR4IGluIG9wdGlvbnNcIlxuICAgICAgICA6a2V5PVwib3B0aW9uSWR4LmlkICsgJy1vcHRpb24tc2F0LW1pZC1pdGVyJ1wiXG4gICAgICA+XG4gICAgICAgIDxDaGVja2JveFN0eWxlZFxuICAgICAgICAgIHYtaWY9XCJvcHRpb25JZHgubGVmdCA+IDAgJiYgb3B0aW9uSWR4LndlZWtEYXkgPT09ICdTYXQnICYmICFvcHRpb25JZHgubmFtZS5pbmNsdWRlcygnR2FsYScpXCJcbiAgICAgICAgICA6b3B0aW9uPVwib3B0aW9uSWR4XCJcbiAgICAgICAgICBAY2hhbmdlLWJvb2tpbmc9XCJjaGFuZ2VCb29raW5nXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbGk+XG4gICAgICA8aDU+U2Ftc3RhZyBBYmVuZDwvaDU+XG4gICAgICA8bGlcbiAgICAgICAgdi1mb3I9XCJvcHRpb25JZHggaW4gb3B0aW9uc1wiXG4gICAgICAgIDprZXk9XCJvcHRpb25JZHguaWQgKyAnLW9wdGlvbi1zYXQtZXZlLWl0ZXInXCJcbiAgICAgID5cbiAgICAgICAgPENoZWNrYm94U3R5bGVkXG4gICAgICAgICAgdi1pZj1cIm9wdGlvbklkeC5sZWZ0ID4gMCAmJiBvcHRpb25JZHgud2Vla0RheSA9PT0gJ1NhdCcgJiYgb3B0aW9uSWR4Lm5hbWUuaW5jbHVkZXMoJ0dhbGEnKVwiXG4gICAgICAgICAgOm9wdGlvbj1cIm9wdGlvbklkeFwiXG4gICAgICAgICAgQGNoYW5nZS1ib29raW5nPVwiY2hhbmdlQm9va2luZ1wiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgICAgPGg1PlNvbm50YWc8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3Qtc2VwZXJhdG9yXCIgLz5cbiAgICAgIDxsaVxuICAgICAgICB2LWZvcj1cIm9wdGlvbklkeCBpbiBvcHRpb25zXCJcbiAgICAgICAgOmtleT1cIm9wdGlvbklkeC5pZCArICctb3B0aW8tc3VuLWl0ZXInXCJcbiAgICAgID5cbiAgICAgICAgPENoZWNrYm94U3R5bGVkXG4gICAgICAgICAgdi1pZj1cIm9wdGlvbklkeC5sZWZ0ID4gMCAmJiBvcHRpb25JZHgud2Vla0RheSA9PT0gJ1N1bidcIlxuICAgICAgICAgIDpvcHRpb249XCJvcHRpb25JZHhcIlxuICAgICAgICAgIEBjaGFuZ2UtYm9va2luZz1cImNoYW5nZUJvb2tpbmdcIlxuICAgICAgICAvPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXAgZ29sZC10ZXh0XCI+XG4gICAgICA8cm91dGVyLWxpbmtcbiAgICAgICAgdG89XCIvXCJcbiAgICAgICAgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvbiBnb2xkLXRleHRcIlxuICAgICAgPlxuICAgICAgICBadXLDvGNrXG4gICAgICA8L3JvdXRlci1saW5rPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cIm5hdmlnYXRpb24tYnV0dG9uIFwiXG4gICAgICAgIEBjbGljaz1cImNoYW5nZVN0ZXAoJ3VzZXJDb250YWN0JylcIlxuICAgICAgPlxuICAgICAgICBXZWl0ZXJcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmltcG9ydCBDaGVja2JveFN0eWxlZCBmcm9tICcuLi9Nb2R1bGUvQ2hlY2tib3hTdHlsZWQudnVlJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBjb21wb25lbnRzOiB7XG4gICAgQ2hlY2tib3hTdHlsZWRcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBsYW5ndWFnZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdkZScgfSxcbiAgICBvcHRpb25zOiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9XG4gIH0sXG4gIGVtaXRzOiBbXG4gICAgXCJ1cGRhdGVPcHRpb25zXCIsXG4gICAgXCJjaGFuZ2Utc3RlcFwiXG4gIF0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByaWNlOiAwLjAwLFxuICAgICAgY2FsY3VsYXRpbmc6IGZhbHNlLFxuICAgIH1cbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgc2xlZXAobWlsbGlzZWNvbmRzKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xuICAgIH0sXG5cbiAgICBjaGFuZ2VTdGVwKF9zdGVwKSB7XG4gICAgICBpZiAoX3N0ZXAgPT09ICd1c2VyQ29udGFjdCcpIHtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAwXG4gICAgICAgIGZvciAobGV0IGlkeCBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgICBsZXQgb3B0aW9uID0gdGhpcy5vcHRpb25zW2lkeF1cbiAgICAgICAgICBpZiAob3B0aW9uLmJvb2tlZCkge1xuICAgICAgICAgICAgY291bnRlciArPSAxXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudGVyID09IDApIHtcbiAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgZ3JvdXA6ICdmb28nLFxuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQml0dGUgd8OkaGxlIG1pbmRlc3RlbnMgZWluZSBPcHRpb24gYXVzJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlLXN0ZXAnLCBfc3RlcClcbiAgICB9LFxuXG4gICAgY2hhbmdlQm9va2luZyhfYm9va2luZykge1xuICAgICAgdGhpcy5jYWxjdWxhdGVQcmljZSgpXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGVPcHRpb25zJywgX2Jvb2tpbmcpXG4gICAgfSxcblxuICAgIGFzeW5jIGNhbGN1bGF0ZVByaWNlKCkge1xuICAgICAgLy8gc2V0IGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjYWxjdWxhdGlvbiBpcyBpbiBwcm9ncmVzc1xuICAgICAgdGhpcy5jYWxjdWxhdGluZyA9IHRydWU7XG5cbiAgICAgIC8vIGluaXRpYWxpemUgdGhlIG5ldyBwcmljZSB0byAwXG4gICAgICBsZXQgbmV3UHJpY2UgPSAwO1xuXG4gICAgICAvLyBpdGVyYXRlIHRocm91Z2ggdGhlIG9wdGlvbnNcbiAgICAgIGZvciAobGV0IGVudHJ5IGluIHRoaXMub3B0aW9ucykge1xuICAgICAgICBsZXQgb3B0aW9uID0gdGhpcy5vcHRpb25zW2VudHJ5XTtcblxuICAgICAgICAvLyBhZGQgdGhlIHByaWNlIG9mIHRoZSBvcHRpb24gdG8gdGhlIG5ldyBwcmljZSBpZiBpdCBpcyBib29rZWRcbiAgICAgICAgaWYgKG9wdGlvbi5ib29rZWQpIHtcbiAgICAgICAgICBuZXdQcmljZSArPSBvcHRpb24ucHJpY2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gaW5pdGlhbGl6ZSBhIGNvdW50ZXIgdG8gdHJhY2sgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zXG4gICAgICBsZXQgYnJlYWtDb3VudGVyID0gMDtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIG5ldyBwcmljZSBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgcHJpY2VcbiAgICAgIGlmIChuZXdQcmljZSA+IHRoaXMucHJpY2UpIHtcbiAgICAgICAgLy8gaWYgaXQgaXMsIGluY3JlbWVudCB0aGUgY3VycmVudCBwcmljZSBieSBhIHJhbmRvbSB2YWx1ZVxuICAgICAgICAvLyB1bnRpbCBpdCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG5ldyBwcmljZSxcbiAgICAgICAgLy8gb3IgdW50aWwgdGhlIGNvdW50ZXIgcmVhY2hlcyAzMFxuICAgICAgICB3aGlsZSAobmV3UHJpY2UgPiB0aGlzLnByaWNlICYmIGJyZWFrQ291bnRlciA8IDMwKSB7XG4gICAgICAgICAgbGV0IHJhbmRvbV9udW1iZXIgPSBNYXRoLnJhbmRvbSgpICogKDEuMiAtIDAuMykgKyAwLjM7XG4gICAgICAgICAgdGhpcy5wcmljZSArPSByYW5kb21fbnVtYmVyO1xuICAgICAgICAgIGJyZWFrQ291bnRlcisrO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2xlZXAoMTApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpZiB0aGUgbmV3IHByaWNlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgY3VycmVudCBwcmljZSxcbiAgICAgICAgLy8gZGVjcmVtZW50IHRoZSBjdXJyZW50IHByaWNlIGJ5IGEgcmFuZG9tIHZhbHVlXG4gICAgICAgIC8vIHVudGlsIGl0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbmV3IHByaWNlLFxuICAgICAgICAvLyBvciB1bnRpbCB0aGUgY291bnRlciByZWFjaGVzIDMwXG4gICAgICAgIHdoaWxlIChuZXdQcmljZSA8PSB0aGlzLnByaWNlICYmIGJyZWFrQ291bnRlciA8IDMwKSB7XG4gICAgICAgICAgdGhpcy5wcmljZSAtPSBNYXRoLnJhbmRvbSgpICogKDEuMiAtIDAuMykgKyAwLjM7XG4gICAgICAgICAgYnJlYWtDb3VudGVyKys7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zbGVlcCgxMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIHRoZSBjdXJyZW50IHByaWNlIHdpdGggdGhlIG5ldyBwcmljZVxuICAgICAgdGhpcy5wcmljZSA9IG5ld1ByaWNlO1xuXG4gICAgICAvLyByZXNldCB0aGUgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjYWxjdWxhdGlvbiBpcyBjb21wbGV0ZVxuICAgICAgdGhpcy5jYWxjdWxhdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbn1cbjwvc2NyaXB0PlxuXG48IS0tIEFkZCBcInNjb3BlZFwiIGF0dHJpYnV0ZSB0byBsaW1pdCBDU1MgdG8gdGhpcyBjb21wb25lbnQgb25seSAtLT5cbjxzdHlsZSBzY29wZWQ+XG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgcGFkZGluZzogMDtcbn1cblxubGkge1xuICBtYXJnaW4tdG9wOiAuMnJlbTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4ubGlzdC1zZXBlcmF0b3Ige1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG59XG5cbmJ1dHRvbiB7XG4gIGFsbDogdW5zZXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5uYXZpZ2F0aW9uLWJ1dHRvbiB7XG4gIHdpZHRoOiAyMCU7XG59XG5cbi5idXR0b24tZ3JvdXAgLm5hdmlnYXRpb24tYnV0dG9uIHtcbiAgd2lkdGg6IDIwJTtcbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPG5vdGlmaWNhdGlvbnMgZ3JvdXA9XCJmb29cIiAvPlxuICAgIDxoND5Gw7xyIHdlbiBpc3QgZGllc2VzIFRpY2tldD88L2g0PlxuICAgIDxmb3JtPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICB2LW1vZGVsPVwiZGF0YS5maXJzdE5hbWVcIlxuICAgICAgICAgIG5hbWU9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZmlyc3ROYW1lXCI+Vm9ybmFtZTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwibGFzdE5hbWVcIlxuICAgICAgICAgIHYtbW9kZWw9XCJkYXRhLmxhc3ROYW1lXCJcbiAgICAgICAgICBuYW1lPVwibGFzdE5hbWVcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgPlxuICAgICAgICA8bGFiZWwgZm9yPVwibGFzdE5hbWVcIj5OYWNobmFtZTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgIHYtbW9kZWw9XCJkYXRhLmVtYWlsXCJcbiAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIj5FLU1haWw8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImNsdWJcIlxuICAgICAgICAgIHYtbW9kZWw9XCJkYXRhLmNsdWJcIlxuICAgICAgICAgIG5hbWU9XCJjbHViXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cImNsdWJcIj5JY2ggYmluIE1pdGdsaWVkIHZvbiBDbHViPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJwaG9uZVwiXG4gICAgICAgICAgdi1tb2RlbD1cImRhdGEucGhvbmVcIlxuICAgICAgICAgIG5hbWU9XCJwaG9uZVwiXG4gICAgICAgICAgdHlwZT1cInRlbFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCI+VGVsZWZvbm51bW1lcjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwicGhvdG9zXCJcbiAgICAgICAgICB2LW1vZGVsPVwiZGF0YS5vcHRJblBob3Rvc1wiXG4gICAgICAgICAgbmFtZT1cInBob3Rvc1wiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cIm9wdC1pblwiPlxuICAgICAgICAgIEljaCBiaW4gd2lkZXJydWZsaWNoIGRhbWl0IGVpbnZlcnN0YW5kZW4sIGRhc3MgdmVyYW5zdGFsdHVuZ3NiZXpvZ2VuZSBGb3Rvcy9WaWRlb3Mgdm9uIG1pclxuICAgICAgICAgIGdlbWFjaHQgd2VyZGVuLlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwiZGF0YVwiXG4gICAgICAgICAgdi1tb2RlbD1cImRhdGEub3B0SW5EYXRhXCJcbiAgICAgICAgICBuYW1lPVwiZGF0YVwiXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cIm9wdC1pblwiPlxuICAgICAgICAgIEljaCBiaW4gZGFtaXQgZWludmVyc3RhbmRlbiwgZGFzcyBkaWUgV2Vic2l0ZSBDb29raWVzIHZlcndlbmRldCwgdW0gYW5tZWxkdW5nc2Jlem9nZW5lIERhdGVuIHp1IHNwZWljaGVybiB1bmRcbiAgICAgICAgICBJaG5lbiBlaW4gYmVzc2VyZXMgQmVudXR6ZXJlcmxlYm5pcyB6dSBiaWV0ZW4uXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cblxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXAgZ29sZC10ZXh0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibmF2aWdhdGlvbi1idXR0b25cIlxuICAgICAgICBAY2xpY2s9XCJjaGFuZ2VTdGVwKCdjaG9vc2luZycpXCJcbiAgICAgID5cbiAgICAgICAgWnVyw7xja1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwibmF2aWdhdGlvbi1idXR0b25cIlxuICAgICAgICBAY2xpY2s9XCJjaGFuZ2VTdGVwKCdjb25maXJtYXRpb24nKVwiXG4gICAgICA+XG4gICAgICAgIFdlaXRlclxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGxhbmd1YWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2RlJyB9LFxuICAgIHVzZXJEYXRhOiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4geyB9IH1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YToge31cbiAgICB9XG4gIH0sXG4gIGNyZWF0ZWQoKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy51c2VyRGF0YVxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgdmFsaWRhdGVFbWFpbChlbWFpbCkge1xuICAgICAgcmV0dXJuIGVtYWlsLmluY2x1ZGVzKFwiQFwiKTtcbiAgICB9LFxuXG4gICAgdmFsaWRhdGVQaG9uZShwaG9uZSkge1xuICAgICAgdmFyIHJlID0gL1thLXpBLVpdL2dcbiAgICAgIHJldHVybiAhcmUudGVzdChwaG9uZSk7XG4gICAgfSxcblxuICAgIGNoYW5nZVN0ZXAoX3N0ZXApIHtcbiAgICAgIGlmIChfc3RlcCA9PT0gJ2NvbmZpcm1hdGlvbicpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5maXJzdE5hbWUgPT09IFwiXCIpIHtcbiAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgZ3JvdXA6ICdmb28nLFxuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQml0dGUgZ2liIGRlaW5lbiBWb3JuYW1lbiBhbicsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRhLmxhc3ROYW1lID09PSBcIlwiKSB7XG4gICAgICAgICAgdGhpcy4kbm90aWZ5KHtcbiAgICAgICAgICAgIGdyb3VwOiAnZm9vJyxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICB0aXRsZTogJ0JpdHRlIGdpYiBkZWluZW4gTmFjaG5hbWVuIGFuJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRhdGEuZW1haWwgPT09IFwiXCIgfHwgIXRoaXMudmFsaWRhdGVFbWFpbCh0aGlzLmRhdGEuZW1haWwpKSB7XG4gICAgICAgICAgdGhpcy4kbm90aWZ5KHtcbiAgICAgICAgICAgIGdyb3VwOiAnZm9vJyxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICB0aXRsZTogJ0JpdHRlIGVpbmUga29ycmVrdGUgRS1NYWlsIEFkcmVzc2UgYW4nLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGF0YS5waG9uZSA9PT0gXCJcIiB8fCAhdGhpcy52YWxpZGF0ZVBob25lKHRoaXMuZGF0YS5waG9uZSkpIHtcbiAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgZ3JvdXA6ICdmb28nLFxuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQml0dGUgZWluZSBrb3JyZWt0ZSBUZWxlZm9ubnVtbWVyIGFuJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGUtdXNlcicsIHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZS1zdGVwJywgX3N0ZXApXG4gICAgfVxuICB9XG59XG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiA3MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5wIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiBncmF5O1xufVxuXG5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBncmF5O1xuICB0cmFuc2l0aW9uOiA0MDBtcztcblxufVxuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0cmFuc2l0aW9uOiA0MDBtcztcbn1cblxuaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9dGVsXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuaW5wdXRbdHlwZT10ZWxdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzLCAyMCwgMjApO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAjY2I5YjUxIDIyJSxcbiAgICAgICNmNmUyN2EgNDUlLFxuICAgICAgI2Y2ZjJjMCA1MCUsXG4gICAgICAjZjZlMjdhIDU1JSxcbiAgICAgICNjYjliNTEgNzglKTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3V0bGluZTogZm9jdXM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBnb2xkZW5yb2Q7XG59XG5cbi5jaGVja2JveC1pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG5cbi5pbnB1dC1ncm91cDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAjY2I5YjUxIDIyJSxcbiAgICAgICNmNmUyN2EgNDUlLFxuICAgICAgI2Y2ZjJjMCA1MCUsXG4gICAgICAjZjZlMjdhIDU1JSxcbiAgICAgICNjYjliNTEgNzglKTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgYWNjZW50LWNvbG9yOiBnb2xkO1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG5cbmJ1dHRvbiB7XG4gIGFsbDogdW5zZXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5uYXZpZ2F0aW9uLWJ1dHRvbiB7XG4gIHdpZHRoOiAyMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2hlY2tib3gtaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtZWxlbWVudFwiPlxuICAgICAgPHJvdXRlci1saW5rXG4gICAgICAgIHRvPVwiL1wiXG4gICAgICAgIGNsYXNzPVwiYmFjay1hcnJvdyBnb2xkLXRleHRcIlxuICAgICAgPlxuICAgICAgICAmI3gyMTkwO1xuICAgICAgPC9yb3V0ZXItbGluaz5cbiAgICAgIDxoMSBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgICBFcnN0ZWxsZSBkZWluIFRpY2tldFxuICAgICAgPC9oMT5cbiAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLWFycm93IGhpZGRlblwiPlxuICAgICAgICAmI3gyMTkwO1xuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGRpdiB2LWlmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgIDxMb2FkaW5nIGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHYtaWY9XCJzdGVwID09PSAnY29uZmlybWF0aW9uJ1wiPlxuICAgICAgICA8Q29uZmlybWF0aW9uUGFnZVxuICAgICAgICAgIDp1c2VyLWRhdGE9XCJ1c2VyRGF0YVwiXG4gICAgICAgICAgOm9wdGlvbnM9XCJvcHRpb25zXCJcbiAgICAgICAgICBAY2hhbmdlLXN0ZXA9XCJjaGFuZ2VTdGVwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHYtaWY9XCJzdGVwID09PSAndXNlckNvbnRhY3QnXCI+XG4gICAgICAgIDxVc2VyQ29udGFjdFxuICAgICAgICAgIDp1c2VyLWRhdGE9XCJ1c2VyRGF0YVwiXG4gICAgICAgICAgQHVwZGF0ZS11c2VyPVwidXBkYXRlVXNlclwiXG4gICAgICAgICAgQGNoYW5nZS1zdGVwPVwiY2hhbmdlU3RlcFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiB2LWlmPVwic3RlcCA9PT0gJ2Nob29zaW5nJ1wiPlxuICAgICAgICA8VGlja2V0QnVpbGRlclxuICAgICAgICAgIDpvcHRpb25zPVwib3B0aW9uc1wiXG4gICAgICAgICAgQHVwZGF0ZU9wdGlvbnM9XCJ1cGRhdGVPcHRpb25zXCJcbiAgICAgICAgICBAY2hhbmdlLXN0ZXA9XCJjaGFuZ2VTdGVwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5pbXBvcnQgTG9hZGluZyBmcm9tICcuLi9jb21wb25lbnRzL01vZHVsZS9Mb2FkaW5nLnZ1ZSdcbmltcG9ydCBDb25maXJtYXRpb25QYWdlIGZyb20gJy4uL2NvbXBvbmVudHMvVGlja2V0c1JlZ2lzdHJhdGlvbi9Db25maXJtYXRpb25QYWdlLnZ1ZSc7XG5pbXBvcnQgVGlja2V0QnVpbGRlciBmcm9tICcuLi9jb21wb25lbnRzL1RpY2tldHNSZWdpc3RyYXRpb24vVGlja2V0QnVpbGRlci52dWUnO1xuaW1wb3J0IFVzZXJDb250YWN0IGZyb20gJy4uL2NvbXBvbmVudHMvVGlja2V0c1JlZ2lzdHJhdGlvbi9Vc2VyQ29udGFjdC52dWUnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdNYWluQ2FyZCcsXG4gIGNvbXBvbmVudHM6IHtcbiAgICBMb2FkaW5nLFxuICAgIENvbmZpcm1hdGlvblBhZ2UsXG4gICAgVGlja2V0QnVpbGRlcixcbiAgICBVc2VyQ29udGFjdFxuICB9LFxuICBwcm9wczoge1xuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgc3RlcDogJ2Nob29zaW5nJyxcbiAgICAgIGxhbmd1YWdlOiBcIkRFXCIsXG4gICAgICBwcmljZTogMC4wMCxcbiAgICAgIGNhbGN1bGF0aW5nOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgdXNlckRhdGE6IHtcbiAgICAgICAgZW1haWw6ICcnLFxuICAgICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgICBsYXN0TmFtZTogJycsXG4gICAgICAgIHBob25lOiAnJyxcbiAgICAgICAgY2x1YjogJycsXG4gICAgICAgIG9wdEluUGhvdG9zOiBmYWxzZSxcbiAgICAgICAgb3B0SW5EYXRhOiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBhc3luYyBjcmVhdGVkKCkge1xuICAgIHZhciBldmVudHMgPSBhd2FpdCB0aGlzLiRheGlvcy5nZXQoYC9hcGkvZXZlbnRzYClcbiAgICBsZXQgdGlja2V0VHlwZSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoKS5nZXQoXCJ0eXBlXCIpXG4gICAgdGhpcy5vcHRpb25zID0gW11cbiAgICBmb3IgKGxldCBpZHggaW4gZXZlbnRzLmRhdGEuZGF0YSkge1xuICAgICAgbGV0IGV2ZW50ID0gZXZlbnRzLmRhdGEuZGF0YVtpZHhdXG4gICAgICBldmVudC5ib29rZWQgPSBmYWxzZVxuICAgICAgaWYgKGV2ZW50LnRpY2tldFR5cGUgPT09IFwiZ2VuZXJhbFwiIHx8IGV2ZW50LnRpY2tldFR5cGUgPT09IHRpY2tldFR5cGUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnB1c2goZXZlbnQpXG4gICAgICB9XG4gICAgfVxuXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBzbGVlcChtaWxsaXNlY29uZHMpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKSk7XG4gICAgfSxcblxuICAgIGNoYW5nZVN0ZXAoX3N0ZXApIHtcbiAgICAgIHRoaXMuc3RlcCA9IF9zdGVwXG4gICAgfSxcblxuICAgIHVwZGF0ZU9wdGlvbnMoX29wdGlvbnMpIHtcbiAgICAgIGZvciAobGV0IGlkeCBpbiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1tpZHhdLmlkID09IF9vcHRpb25zLmlkKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zW2lkeF0gPSBfb3B0aW9uc1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHVwZGF0ZVVzZXIoX3VzZXIpIHtcbiAgICAgIHRoaXMudXNlckRhdGEgPSBfdXNlclxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbi5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xufVxuXG4udG9wLWVsZW1lbnQge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5iYWNrLWFycm93IHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDN2dztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIC5iYWNrLWFycm93IHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cblxuICAudG9wLWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgO1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxub3RpZmljYXRpb25zIGdyb3VwPVwiZm9vXCIgLz5cbiAgICA8aW1nXG4gICAgICBjbGFzcz1cImxvZ29cIlxuICAgICAgOnNyYz1cInJlcXVpcmUoYC4uLy4uL2Fzc2V0cy9pbWFnZXMvTG9nby5wbmdgKVwiXG4gICAgPlxuICAgIDxkaXYgdi1pZj1cIiFmb3Jnb3RQYXNzd29yZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgIHYtbW9kZWw9XCJlbWFpbFwiXG4gICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICA+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaXJzdE5hbWVcIj5FLU1haWw8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgICAgdi1tb2RlbD1cInBhc3N3b3JkXCJcbiAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cInBhc3N3b3JkXCI+UGFzc3dvcnQ8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwIGdvbGQtdGV4dFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgQGNsaWNrPVwicmVzZXRQYXNzd29yZFwiXG4gICAgICAgID5cbiAgICAgICAgICBQYXNzd29ydCB2ZXJnZXNzZW4/XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgQGNsaWNrPVwibG9naW5cIlxuICAgICAgICA+XG4gICAgICAgICAgTG9naW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHYtZWxzZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICB2LW1vZGVsPVwiZW1haWxcIlxuICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgPlxuICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIj5FLU1haWw8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8cD5cbiAgICAgICAgRmFsbHMgZHUgZGVpbiBQYXNzd29ydCB2ZXJnZXNzZW4gaGFiZW4gc29sbHRlc3QsIGdpYiBkZWluZSBFLU1haWwgYW4gdW5kIGJldMOkdGlnZSBkZW4gS25vcGYgJ05ldWVzXG4gICAgICAgIFBhc3N3b3J0IGFuZm9yZGVybidcbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXAgZ29sZC10ZXh0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm5hdmlnYXRpb24tYnV0dG9uXCJcbiAgICAgICAgICBAY2xpY2s9XCJyZXF1ZXN0TmV3UGFzc3dvcmRcIlxuICAgICAgICA+XG4gICAgICAgICAgTmV1ZXMgUGFzc3dvcnQgYW5mb3JkZXJuXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGxhbmd1YWdlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ2RlJyB9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbWFpbDogJycsXG4gICAgICBwYXNzd29yZDogJycsXG4gICAgICBmb3Jnb3RQYXNzd29yZDogZmFsc2VcbiAgICB9XG4gIH0sXG5cbiAgYXN5bmMgY3JlYXRlZCgpIHtcbiAgICBhd2FpdCB0aGlzLmF1dGgoKVxuICB9LFxuXG5cbiAgbWV0aG9kczoge1xuICAgIGFzeW5jIGF1dGgoKSB7XG4gICAgICBsZXQgdG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci10b2tlbicpXG4gICAgICBpZiAodG9rZW4gIT09IFwiZW1wdHlcIikge1xuICAgICAgICBsZXQgdXNlciA9IGF3YWl0IHRoaXMuJGF4aW9zLmdldCgnL2F1dGgvdG9rZW4nKS50aGVuKGFzeW5jIHIgPT4ge1xuICAgICAgICAgIGlmIChyLmRhdGEudG9rZW4pIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VyLXRva2VuJywgci5kYXRhLnRva2VuKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gci5kYXRhLnVzZXJcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy4kZW1pdCgnbG9naW4tdXNlcicsIHVzZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBsb2dpbigpIHtcbiAgICAgIHZhciB1c2VyID0gYXdhaXQgdGhpcy4kYXhpb3MucG9zdCgnL2F1dGgvbG9naW4nLCB7XG4gICAgICAgIFwiZW1haWxcIjogdGhpcy5lbWFpbCxcbiAgICAgICAgXCJwYXNzd29yZFwiOiB0aGlzLnBhc3N3b3JkXG4gICAgICB9KS50aGVuKGFzeW5jIChyKSA9PiB7XG4gICAgICAgIGlmIChyLmRhdGEudG9rZW4pIHtcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlci10b2tlbicsIHIuZGF0YS50b2tlbilcbiAgICAgICAgICBpZiAoci5kYXRhLnRva2VuICE9PSAnZW1wdHknKVxuICAgICAgICAgICAgdGhpcy4kYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0F1dGhvcml6YXRpb24nXSA9ICdCZWFyZXIgJyArIHIuZGF0YS50b2tlblxuICAgICAgICB9XG4gICAgICAgIGlmIChyLmRhdGEuc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XG4gICAgICAgICAgICBncm91cDogJ2ZvbycsXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ0hlcnpsaWNoIFdpbGxrb21tZW4nLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4kbm90aWZ5KHtcbiAgICAgICAgICAgIGdyb3VwOiAnZm9vJyxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICB0aXRsZTogci5kYXRhLm1lc3NhZ2VcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmRhdGEudXNlclxuICAgICAgfSlcbiAgICAgIHRoaXMuJGVtaXQoJ2xvZ2luLXVzZXInLCB1c2VyKVxuICAgIH0sXG4gICAgcmVzZXRQYXNzd29yZCgpIHtcbiAgICAgIHRoaXMuZm9yZ290UGFzc3dvcmQgPSB0cnVlO1xuICAgIH0sXG4gICAgYXN5bmMgcmVxdWVzdE5ld1Bhc3N3b3JkKCkge1xuICAgICAgYXdhaXQgdGhpcy4kYXhpb3MucG9zdCgnL2F1dGgvcmVzZXQvcGFzc3dvcmQnLCB7XG4gICAgICAgIFwiZW1haWxcIjogdGhpcy5lbWFpbCxcbiAgICAgIH0pLnRoZW4ociA9PiB7XG4gICAgICAgIGlmIChyLmRhdGEuc3RhdHVzID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XG4gICAgICAgICAgICBncm91cDogJ2ZvbycsXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogJ0RlaW4gbmV1ZXMgUGFzc3dvcnQgaXN0IGF1ZiBkZW0gV2VnIHp1IGRpci4nLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4kbm90aWZ5KHtcbiAgICAgICAgICAgIGdyb3VwOiAnZm9vJyxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICB0aXRsZTogJ1VwcHMsIGFuc2NoZWluZW5kIGxpZWYgZGEgZXR3YXMgc2NoaWVmLiBLb250YWt0aWVyZSBlaW4gQ2hhcnRlcnRlYW0gTWl0Z2xpZWQuJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuXG48L3NjcmlwdD5cblxuPCEtLSBBZGQgXCJzY29wZWRcIiBhdHRyaWJ1dGUgdG8gbGltaXQgQ1NTIHRvIHRoaXMgY29tcG9uZW50IG9ubHkgLS0+XG48c3R5bGUgc2NvcGVkPlxuLmxvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDM1JTtcbn1cblxuaW1nIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXgtd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xufVxuXG5mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDQwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi10b3A6IDNyZW07XG59XG5cbnAge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbn1cblxubGFiZWwge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogZ3JheTtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG5cbn1cblxuaW5wdXQge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xufVxuXG5pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDIyMCwgMjE1LCAyMTUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlc21va2U7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdHJhbnNpdGlvbjogMzAwbXNcbn1cblxuaW5wdXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMsIDIwLCAyMCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBvdXRsaW5lOiBub25lO1xuICBvdXRsaW5lOiBmb2N1cztcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDEyNCwgOTgsIDMwKTtcbn1cblxuLmNoZWNrYm94LWlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZm9udC1zaXplOiA4cHg7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4uaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbmlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGFjY2VudC1jb2xvcjogZ29sZDtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuXG5idXR0b24ge1xuICBhbGw6IHVuc2V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogMjAlO1xuICB3aWR0aDogNjAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogNXJlbTtcbn1cblxuLmJ1dHRvbi1ncm91cCAubmF2aWdhdGlvbi1idXR0b24ge1xuICB3aWR0aDogMjAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzI4cHgpIHtcbiAgZm9ybSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuXG4gIC5idXR0b24tZ3JvdXAge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8aW5wdXRcbiAgICA6cGxhY2Vob2xkZXI9XCJkaXNwbGF5XCJcbiAgICA6dHlwZT1cInR5cGVcIlxuICAgIEBpbnB1dD1cImNoYW5nZVJlZ2lzdGVyZWRcIlxuICA+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgZGlzcGxheTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICdLZWluIEluaGFsdCcgfSxcbiAgICB0eXBlOiB7IHR5cGU6IFN0cmluZywgZGVmYXVsdDogJ1N0cmluZycgfVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBjaGFuZ2VSZWdpc3RlcmVkKGUpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZS1kZXRlY3RlZCcsIGUudGFyZ2V0LnZhbHVlKVxuICAgIH1cbiAgfSxcbn1cblxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG5pbnB1dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMjAsIDIwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG91dGxpbmU6IGZvY3VzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ29sZGVucm9kO1xufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPG5vdGlmaWNhdGlvbnMgZ3JvdXA9XCJmb29cIiAvPlxuICAgIDxkaXZcbiAgICAgIHYtaWY9XCJzaG93TW9kYWxcIlxuICAgICAgY2xhc3M9XCJtb2RhbFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJnb2xkLXRleHRcIj5cbiAgICAgICAgICBCZW51dHplciBiZWFyYmVpdGVuXG4gICAgICAgIDwvaDM+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIHYtZm9yPVwiKHRpY2tldCwgaWR4KSBpbiB1c2VySW5Gb2N1cy50aWNrZXRzXCJcbiAgICAgICAgICAgIDprZXk9XCIndGlja2V0LXRhYmxlLScgKyBpZHggKyAnLXVzZXItJyArIHRpY2tldC5pZFwiXG4gICAgICAgICAgICBjbGFzcz1cInRpY2tldC1saXN0LWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGlja2V0LXRleHRcIj5cbiAgICAgICAgICAgICAge3sgdGlja2V0LmV2ZW50IH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRpY2tldC10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHRpY2tldC5wcmljZSB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0aWNrZXQtdGV4dFwiPlxuICAgICAgICAgICAgICB7eyB0aWNrZXQucGFpZCA/ICdiZXphaGx0JyA6ICdvZmZlbicgfX1cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB2LWlmPVwidGlja2V0LnBhaWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uIGdvbGQtdGV4dFwiXG4gICAgICAgICAgICAgIEBjbGljaz1cImludmFsaWRhdGVQYXltZW50KHRpY2tldC5pZClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAmIzEwMDAzO1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHYtZWxzZVxuICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uIGdvbGQtdGV4dFwiXG4gICAgICAgICAgICAgIEBjbGljaz1cInZhbGlkYXRlUGF5bWVudCh0aWNrZXQuaWQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJiMxMjg0NzM7XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJzYXZlLWJ1dHRvbiBnb2xkLXRleHRcIlxuICAgICAgICAgICAgICBAY2xpY2s9XCJkZWxldGVUaWNrZXQodGlja2V0LmlkKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEzDtnNjaGVuXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJzYXZlLWJ1dHRvbiBnb2xkLXRleHRcIlxuICAgICAgICAgICAgQGNsaWNrPVwiY2xvc2VNb2RhbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgU2NobGllw59lblxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPEN1c3RvbUlucHV0XG4gICAgICBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXG4gICAgICA6dHlwZT1cIid0ZXh0J1wiXG4gICAgICA6ZGlzcGxheT1cIidTdWNoZSBuYWNoIEJlbnV0emVyJ1wiXG4gICAgICBAY2hhbmdlLWRldGVjdGVkPVwiYWRqdXN0RmlsdGVyXCJcbiAgICAvPlxuICAgIDx0YWJsZT5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyIGNsYXNzPVwiaGVhZFwiPlxuICAgICAgICAgIDx0aD5CZW51dHplcjwvdGg+XG4gICAgICAgICAgPHRoPkVtYWlsPC90aD5cbiAgICAgICAgICA8dGg+T2ZmZW5lIFRpY2tldHM8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyXG4gICAgICAgICAgdi1mb3I9XCIodXNlckVudHJ5LCBpbmRleCkgaW4gZmlsdGVyZWRVc2Vyc1wiXG4gICAgICAgICAgOmtleT1cIid1c2VyLXRhYmxlLScgKyBpbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCIgdXNlci1pdGVtXCJcbiAgICAgICAgICBAY2xpY2s9XCJvcGVuTW9kYWwodXNlckVudHJ5KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGQ+e3sgdXNlckVudHJ5LmZpcnN0TmFtZSArIFwiIFwiICsgdXNlckVudHJ5Lmxhc3ROYW1lIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgdXNlckVudHJ5LmVtYWlsIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgdXNlckVudHJ5Lm9wZW5UaWNrZXRzIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5pbXBvcnQgQ3VzdG9tSW5wdXQgZnJvbSAnLi4vTW9kdWxlL0N1c3RvbUlucHV0LnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBjb21wb25lbnRzOiB7XG4gICAgQ3VzdG9tSW5wdXRcbiAgfSxcbiAgcHJvcHM6IHtcbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcnM6IFtdLFxuICAgICAgZmlsdGVyZWRVc2VyczogW10sXG4gICAgICBzaG93TW9kYWw6IGZhbHNlXG4gICAgfVxuICB9LFxuICBhc3luYyBjcmVhdGVkKCkge1xuICAgIHRoaXMudXNlcnMgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKClcbiAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSB0aGlzLnVzZXJzO1xuICB9LFxuICBtZXRob2RzOiB7XG4gICAgYXN5bmMgbG9hZFVzZXIoKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy4kYXhpb3MuZ2V0KGAvYXBpL3VzZXJzYCkudGhlbihyID0+IHIuZGF0YS5kYXRhKVxuICAgIH0sXG5cbiAgICBhZGp1c3RGaWx0ZXIoZmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxuICAgICAgZm9yIChsZXQgaWR4IGluIHRoaXMudXNlcnMpIHtcbiAgICAgICAgaWYgKGZpbHRlciA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSB0aGlzLnVzZXJzXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy51c2Vyc1tpZHhdLmZpcnN0TmFtZS5pbmNsdWRlcyhmaWx0ZXIpKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZFVzZXJzLnB1c2godGhpcy51c2Vyc1tpZHhdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBvcGVuTW9kYWwodXNlcikge1xuICAgICAgdGhpcy51c2VySW5Gb2N1cyA9IHVzZXJcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZVxuICAgIH0sXG4gICAgY2xvc2VNb2RhbCgpIHtcbiAgICAgIHRoaXMudXNlckluRm9jdXMgPSB7fVxuICAgICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZVxuICAgIH0sXG4gICAgYXN5bmMgdmFsaWRhdGVQYXltZW50KGlkKSB7XG4gICAgICBhd2FpdCB0aGlzLiRheGlvcy5wdXQoYC9hcGkvdGlja2V0L2AgKyBpZCwgeyAncGFpZCc6IHRydWUgfSkudGhlbihyID0+IHIuZGF0YS5kYXRhKVxuICAgICAgZm9yIChsZXQgaWR4IGluIHRoaXMudXNlckluRm9jdXMudGlja2V0cykge1xuICAgICAgICBpZiAoaWQgPT09IHRoaXMudXNlckluRm9jdXMudGlja2V0c1tpZHhdLmlkKSB7XG4gICAgICAgICAgdGhpcy51c2VySW5Gb2N1cy50aWNrZXRzW2lkeF0ucGFpZCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5sb2FkVXNlcigpXG4gICAgfSxcbiAgICBhc3luYyBpbnZhbGlkYXRlUGF5bWVudChpZCkge1xuICAgICAgYXdhaXQgdGhpcy4kYXhpb3MucHV0KGAvYXBpL3RpY2tldC9gICsgaWQsIHsgJ3BhaWQnOiBmYWxzZSB9KS50aGVuKHIgPT4gci5kYXRhLmRhdGEpXG4gICAgICBmb3IgKGxldCBpZHggaW4gdGhpcy51c2VySW5Gb2N1cy50aWNrZXRzKSB7XG4gICAgICAgIGlmIChpZCA9PT0gdGhpcy51c2VySW5Gb2N1cy50aWNrZXRzW2lkeF0uaWQpIHtcbiAgICAgICAgICB0aGlzLnVzZXJJbkZvY3VzLnRpY2tldHNbaWR4XS5wYWlkID0gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5sb2FkVXNlcigpXG5cblxuICAgIH0sXG4gICAgYXN5bmMgZGVsZXRlVGlja2V0KGlkKSB7XG4gICAgICBhd2FpdCB0aGlzLiRheGlvcy5kZWxldGUoYC9hcGkvdGlja2V0L2AgKyBpZCkudGhlbihyID0+IHIuZGF0YS5kYXRhKVxuICAgICAgZm9yIChsZXQgaWR4IGluIHRoaXMudXNlckluRm9jdXMudGlja2V0cykge1xuICAgICAgICBpZiAoaWQgPT09IHRoaXMudXNlckluRm9jdXMudGlja2V0c1tpZHhdLmlkKSB7XG4gICAgICAgICAgdGhpcy51c2VySW5Gb2N1cy50aWNrZXRzLnNwbGljZShpZHgsIDEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9hZFVzZXIoKVxuXG5cbiAgICB9XG5cblxuICB9XG59XG5cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1vZGFsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMWMxOTE5IDAlLCByZ2IoMjYsIDI0LCAyNCkgMTAwJSk7XG4gIG1hcmdpbi10b3A6IDEwdmg7XG4gIHdpZHRoOiA4MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgaGVpZ2h0OiA4MHZoO1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xufVxuXG4ubW9kYWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgbWFyZ2luLXRvcDogNSU7XG59XG5cblxuXG5oMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogM3JlbTtcbn1cblxudGFibGUge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cblxudGFibGUgdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogNTAwbXM7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG5cbnRhYmxlIHRyOm50aC1jaGlsZCgybisyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MywgNDQsIDQ0KTtcbiAgO1xufVxuXG50YWJsZSB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcbn1cblxudGFibGUgdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xufVxuXG50YWJsZSB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcbn1cblxudGFibGUgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG59XG5cbi5ib29raW5nLWl0ZW06aG92ZXIge1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudHIge1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBoZWlnaHQ6IDNyZW07XG59XG5cbnRoIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jdXN0b20taW5wdXQge1xuICBtYXJnaW4tdG9wOiAxMHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDM1JTtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGVzbW9rZTtcbn1cblxuaW5wdXQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2IoMTc5LCAxNzAsIDE3MCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNpdGlvbjogMzAwbXNcbn1cblxuaW5wdXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMsIDIwLCAyMCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBvdXRsaW5lOiBub25lO1xuICBvdXRsaW5lOiBmb2N1cztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdvbGRlbnJvZDtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMTUlO1xufVxuXG4uc2F2ZS1idXR0b24ge1xuICBib3JkZXI6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMzAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiA1JTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDcyOHB4KSB7XG4gIHRhYmxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuY3VzdG9tLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxufVxuXG5oMyxcbmg0LFxucCB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAxMCU7XG59XG5cbnAge1xuICBmb250LXNpemU6IDlweDtcbiAgY29sb3I6IGdyYXk7XG59XG5cbmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IGdyYXk7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xuXG59XG5cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xufVxuXG5pbnB1dFt0eXBlPXRleHRdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXG5pbnB1dFt0eXBlPXRlbF0sXG50ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsXG5pbnB1dFt0eXBlPXRlbF06Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMjAsIDIwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG91dGxpbmU6IGZvY3VzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ29sZGVucm9kO1xufVxuXG4uY2hlY2tib3gtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmb250LXNpemU6IDhweDtcbn1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4uaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbmlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGFjY2VudC1jb2xvcjogZ29sZDtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLnRpY2tldC1saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLnRpY2tldC10ZXh0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgbWF4LXdpZHRoOiA0MCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3MjhweCkge1xuICAubW9kYWwge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuXG4gIC50aWNrZXQtbGlzdC1pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG59XG48L3N0eWxlPlxuXG4iLCI8dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPG5vdGlmaWNhdGlvbnMgZ3JvdXA9XCJmb29cIiAvPlxuICAgIDxoMSBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgTWVpbmUgQnVjaHVuZ2VuXG4gICAgPC9oMT5cbiAgICA8dGFibGU+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0ciBjbGFzcz1cImhlYWRcIj5cbiAgICAgICAgICA8dGg+VGlja2V0PC90aD5cbiAgICAgICAgICA8dGg+QmV6YWhsc3RhdHVzPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0clxuICAgICAgICAgIHYtZm9yPVwiKGJvb2tpbmdFbnRyeSwgaW5kZXgpIGluIGJvb2tpbmdzXCJcbiAgICAgICAgICA6a2V5PVwiJ2Jvb2tpbmctdGFibGUtJyArIGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImJvb2tpbmctaXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cD57eyBib29raW5nRW50cnkuZXZlbnQgfX08L3A+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cD57eyBib29raW5nRW50cnkucGFpZCA/IFwiYmV6YWhsdFwiIDogXCJvZmZlblwiIH19PC9wPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG5cbiAgICA8aDEgY2xhc3M9XCJnb2xkLXRleHRcIj5cbiAgICAgIFdlaXRlcmUgVGlja2V0cyBidWNoZW5cbiAgICA8L2gxPlxuICAgIDx0YWJsZT5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyIGNsYXNzPVwiaGVhZFwiPlxuICAgICAgICAgIDx0aD5WZXJhbnN0YWx0dW5nPC90aD5cbiAgICAgICAgICA8dGg+UHJlaXM8L3RoPlxuICAgICAgICAgIDx0aD5UaWNrZXRzIMO8YnJpZzwvdGg+XG4gICAgICAgICAgPHRoIC8+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICB2LWZvcj1cIihsZWZ0VGlja2V0LCBpbmRleCkgaW4gbGVmdFRpY2tldHNcIlxuICAgICAgICAgIDprZXk9XCInbGVmdC10aWNrZXQtdGFibGUtJyArIGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImJvb2tpbmctaXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGQgdi1pZj1cImxlZnRUaWNrZXQubGVmdCA+IDBcIj5cbiAgICAgICAgICAgIDxwPnt7IGxlZnRUaWNrZXQubmFtZSB9fTwvcD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCB2LWlmPVwibGVmdFRpY2tldC5sZWZ0ID4gMFwiPlxuICAgICAgICAgICAgPHA+e3sgbGVmdFRpY2tldC5wcmljZS50b0ZpeGVkKDIpIH19IOKCrDwvcD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCB2LWlmPVwibGVmdFRpY2tldC5sZWZ0ID4gMFwiPlxuICAgICAgICAgICAgPHA+e3sgbGVmdFRpY2tldC5sZWZ0IH19PC9wPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImFkZC1idXR0b24gZ29sZC10ZXh0XCJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiYWRkQm9va2luZyhsZWZ0VGlja2V0LmlkKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICtcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIHVzZXJzOiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9XG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb2tpbmdzOiBbXSxcbiAgICAgIGxlZnRUaWNrZXRzOiBbXVxuICAgIH1cbiAgfSxcblxuICBhc3luYyBjcmVhdGVkKCkge1xuICAgIGF3YWl0IHRoaXMubG9hZEJvb2tpbmdzKClcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGFzeW5jIGxvYWRCb29raW5ncygpIHtcbiAgICAgIGNvbnN0IHRpY2tldHMgPSBhd2FpdCB0aGlzLiRheGlvcy5nZXQoYC9hcGkvbXlUaWNrZXRzYClcbiAgICAgIHRoaXMuYm9va2luZ3MgPSB0aWNrZXRzLmRhdGEuZGF0YVxuICAgICAgdGhpcy5sZWZ0VGlja2V0cyA9IHRpY2tldHMuZGF0YS5sZWZ0VGlja2V0c1xuICAgIH0sXG4gICAgYXN5bmMgYWRkQm9va2luZyhpZCkge1xuICAgICAgYXdhaXQgdGhpcy4kYXhpb3MucG9zdChgL2FwaS90aWNrZXQvYnV5YCwge1xuICAgICAgICBcImV2ZW50XCI6IGlkXG4gICAgICB9KS50aGVuKHIgPT4ge1xuICAgICAgICBpZiAoci5kYXRhLnN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgZ3JvdXA6ICdmb28nLFxuICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgdGl0bGU6ICdFaW5lIEJ1Y2h1bmcgd3VyZGUgZGVpbmVtIFRpY2tldCBoaW56dWdlZsO8Z3QnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4kbm90aWZ5KHtcbiAgICAgICAgICAgIGdyb3VwOiAnZm9vJyxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICB0aXRsZTogci5kYXRhLm1lc3NhZ2VcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgYXdhaXQgdGhpcy5sb2FkQm9va2luZ3MoKVxuICAgIH1cbiAgfVxuXG59XG5cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuaDEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogNTAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDdyZW07XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5cbnRhYmxlIHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IDUwMG1zO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuXG50YWJsZSB0cjpudGgtY2hpbGQoMm4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTMsIDQ0LCA0NCk7XG4gIDtcbn1cblxudGFibGUgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG59XG5cbnRhYmxlIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbn1cblxudGFibGUgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XG59XG5cbnRhYmxlIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xufVxuXG50ciB7XG4gIG1hcmdpbi10b3A6IDRyZW07XG4gIGhlaWdodDogM3JlbTtcbn1cblxudGgge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmN1c3RvbS1pbnB1dCB7XG4gIG1hcmdpbi10b3A6IDEwcmVtO1xuICBtYXJnaW4tbGVmdDogMzUlO1xuICB3aWR0aDogMzAlO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xufVxuXG5pbnB1dCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYigxNzksIDE3MCwgMTcwKTtcbiAgYm9yZGVyOiBub25lO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG4uYWRkLWJ1dHRvbiB7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAzMCU7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xufVxuXG5pbnB1dDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMjAsIDIwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG91dGxpbmU6IGZvY3VzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ29sZGVucm9kO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgdGFibGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC5jdXN0b20tYnV0dG9uIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG59XG5cbmgzLFxuaDQsXG5wIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luLWxlZnQ6IDEwJTtcbn1cbjwvc3R5bGU+XG5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8bm90aWZpY2F0aW9ucyBncm91cD1cImZvb1wiIC8+XG4gICAgPGgxIGNsYXNzPVwiZ29sZC10ZXh0XCI+XG4gICAgICBCZW51dHplcmRhdGVuIGFucGFzc2VuXG4gICAgPC9oMT5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgdi1tb2RlbD1cInVzZXIuZmlyc3ROYW1lXCJcbiAgICAgICAgICBuYW1lPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cImZpcnN0TmFtZVwiPlZvcm5hbWU8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImxhc3ROYW1lXCJcbiAgICAgICAgICB2LW1vZGVsPVwidXNlci5sYXN0TmFtZVwiXG4gICAgICAgICAgbmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cImxhc3ROYW1lXCI+TmFjaG5hbWU8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImVtYWlsXCJcbiAgICAgICAgICB2LW1vZGVsPVwidXNlci5lbWFpbFwiXG4gICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCI+RS1NYWlsPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJjbHViXCJcbiAgICAgICAgICB2LW1vZGVsPVwidXNlci5jbHViXCJcbiAgICAgICAgICBuYW1lPVwiY2x1YlwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICA+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJjbHViXCI+TWVpbiBDbHViPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJwaG9uZVwiXG4gICAgICAgICAgdi1tb2RlbD1cInVzZXIucGhvbmVcIlxuICAgICAgICAgIG5hbWU9XCJwaG9uZVwiXG4gICAgICAgICAgdHlwZT1cInRlbFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCI+VGVsZWZvbm51bW1lcjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwicGhvbmVcIlxuICAgICAgICAgIHYtbW9kZWw9XCJ1c2VyLnBhc3N3b3JkXCJcbiAgICAgICAgICBuYW1lPVwicGFzc3dvcnRcIlxuICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgID5cbiAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCI+UGFzc3dvcnQ8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1pbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cInBob3Rvc1wiXG4gICAgICAgICAgdi1tb2RlbD1cInVzZXIub3B0SW5QaG90b3NcIlxuICAgICAgICAgIG5hbWU9XCJwaG90b3NcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJvcHQtaW5cIj5cbiAgICAgICAgICBFaW53aWxsaWd1bmcgZsO8ciBGb3Rvcy5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1pbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cImRhdGFcIlxuICAgICAgICAgIHYtbW9kZWw9XCJ1c2VyLm9wdEluRGF0YVwiXG4gICAgICAgICAgbmFtZT1cImRhdGFcIlxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJvcHQtaW5cIj5cbiAgICAgICAgICBFaW53aWxsaW5nIG1laW5lbSBOYW1lbiBhdWYgZGVyIFZlcmFuc3RhbHR1bmcgenUgemVpZ2VuLlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzYXZlLWJ1dHRvbiBnb2xkLXRleHRcIlxuICAgICAgICBAY2xpY2s9XCJ1cGRhdGVVc2VyXCJcbiAgICAgID5cbiAgICAgICAgU3BlaWNoZXJuXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHt9LFxuICBwcm9wczoge1xuICAgIHVzZXJEYXRhOiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4geyB9IH1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjogW11cbiAgICB9XG4gIH0sXG5cbiAgY3JlYXRlZCgpIHtcbiAgICB0aGlzLnVzZXIgPSB0aGlzLnVzZXJEYXRhXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBhc3luYyB1cGRhdGVVc2VyKCkge1xuICAgICAgYXdhaXQgdGhpcy4kYXhpb3MucHV0KFwiL2FwaS91c2VyL1wiICsgdGhpcy51c2VyLmlkLCB0aGlzLnVzZXIpLnRoZW4oXG4gICAgICAgIGFzeW5jIChyKSA9PiB7XG4gICAgICAgICAgbGV0IHVwZGF0ZWRVc2VyID0gci5kYXRhLmRhdGFcbiAgICAgICAgICBpZiAoci5kYXRhLnN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICAgIHRoaXMudXNlciA9IHVwZGF0ZWRVc2VyXG4gICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgICBncm91cDogJ2ZvbycsXG4gICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdEZWluIEJlbnV0emVyIHd1cmRlIGFrdHVhbGlzaWVydCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xuICAgICAgICAgICAgICBncm91cDogJ2ZvbycsXG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgIHRpdGxlOiByLmRhdGEubWVzc2FnZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cbn1cblxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5oMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiA1MCU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogN3JlbTtcbn1cblxuLnVzZXItY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5zYXZlLWJ1dHRvbiB7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAzMCU7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjhweCkge1xuICAudXNlci1jb250YWluZXIge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cblxuICAuc2F2ZS1idXR0b24ge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbn1cblxucCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogZ3JheTtcbn1cblxubGFiZWwge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogZ3JheTtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG5cbn1cblxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbi10b3A6IC41cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG59XG5cbmlucHV0W3R5cGU9dGV4dF0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXSxcbmlucHV0W3R5cGU9dGVsXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsXG5pbnB1dFt0eXBlPXRlbF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMsIDIwLCAyMCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBvdXRsaW5lOiBub25lO1xuICBvdXRsaW5lOiBmb2N1cztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdvbGRlbnJvZDtcbn1cblxuLmNoZWNrYm94LWlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZm9udC1zaXplOiA4cHg7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLmlucHV0LWdyb3VwOmZvY3VzLXdpdGhpbiBsYWJlbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBhY2NlbnQtY29sb3I6IGdvbGQ7XG59XG5cbmlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8bm90aWZpY2F0aW9ucyBncm91cD1cImZvb1wiIC8+XG4gICAgPGRpdlxuICAgICAgdi1pZj1cInNob3dNb2RhbFwiXG4gICAgICBjbGFzcz1cIm1vZGFsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGFpbmVyXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImdvbGQtdGV4dFwiPlxuICAgICAgICAgIEV2ZW50IGJlYXJiZWl0ZW5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cIm5hbWVcIlxuICAgICAgICAgICAgdi1tb2RlbD1cImV2ZW50SW5Gb2N1cy5uYW1lXCJcbiAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWVcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImxvY2F0aW9uXCJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJldmVudEluRm9jdXMubG9jYXRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImxvY2F0aW9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImxvY2F0aW9uXCI+U3RhbmRvcnQ8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgdi1tb2RlbD1cImV2ZW50SW5Gb2N1cy5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImRlc2NyaXB0aW9uXCI+QmVzY2hyZWlidW5nPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInByaWNlXCJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJldmVudEluRm9jdXMucHJpY2VcIlxuICAgICAgICAgICAgbmFtZT1cInByaWNlXCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwicHJpY2VcIj5QcmVpczwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJhbW91bnRBdmFpbGFibGVcIlxuICAgICAgICAgICAgdi1tb2RlbD1cImV2ZW50SW5Gb2N1cy5hbW91bnRBdmFpbGFibGVcIlxuICAgICAgICAgICAgbmFtZT1cImFtb3VudEF2YWlsYWJsZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhbW91bnRBdmFpbGFibGVcIj5UaWNrZXRzPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInN0YXJ0VGltZVwiXG4gICAgICAgICAgICB2LW1vZGVsPVwiZXZlbnRJbkZvY3VzLnN0YXJ0VGltZVwiXG4gICAgICAgICAgICBuYW1lPVwic3RhcnRUaW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJkYXRldGltZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhbW91bnRBdmFpbGFibGVcIj5TdGFydHplaXQ8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwiZW5kVGltZVwiXG4gICAgICAgICAgICB2LW1vZGVsPVwiZXZlbnRJbkZvY3VzLmVuZFRpbWVcIlxuICAgICAgICAgICAgbmFtZT1cImVuZFRpbWVcIlxuICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImVuZFRpbWVcIj5FbmR6ZWl0PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic2F2ZS1idXR0b24gZ29sZC10ZXh0XCJcbiAgICAgICAgICBAY2xpY2s9XCJjbG9zZU1vZGFsXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNjaGxpZcOfZW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uIGdvbGQtdGV4dFwiXG4gICAgICAgICAgQGNsaWNrPVwidXBkYXRlRXZlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgU3BlaWNoZXJuXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8Q3VzdG9tSW5wdXRcbiAgICAgIGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcbiAgICAgIDp0eXBlPVwiJ3RleHQnXCJcbiAgICAgIDpkaXNwbGF5PVwiJ1N1Y2hlIG5hY2ggRXZlbnRzJ1wiXG4gICAgICBAY2hhbmdlLWRldGVjdGVkPVwiYWRqdXN0RmlsdGVyXCJcbiAgICAvPlxuICAgIDx0YWJsZT5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyIGNsYXNzPVwiaGVhZFwiPlxuICAgICAgICAgIDx0aD5OYW1lPC90aD5cbiAgICAgICAgICA8dGg+U3RhbmRvcnQ8L3RoPlxuICAgICAgICAgIDx0aD5QcmVpczwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICB2LWZvcj1cIihldmVudEVudHJ5LCBpbmRleCkgaW4gZmlsdGVyZWRFdmVudHNcIlxuICAgICAgICAgIDprZXk9XCInZXZlbnQtdGFibGUtJyArIGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImV2ZW50LWl0ZW1cIlxuICAgICAgICAgIEBjbGljaz1cIm9wZW5Nb2RhbChldmVudEVudHJ5KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cD57eyBldmVudEVudHJ5Lm5hbWUgfX08L3A+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cD57eyBldmVudEVudHJ5LmxvY2F0aW9uIH19PC9wPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPHA+e3sgcGFyc2VGbG9hdChldmVudEVudHJ5LnByaWNlKS50b0ZpeGVkKDIpIH19PC9wPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblxuaW1wb3J0IEN1c3RvbUlucHV0IGZyb20gJy4uL01vZHVsZS9DdXN0b21JbnB1dC52dWUnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHtcbiAgICBDdXN0b21JbnB1dFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBldmVudHM6IFtdLFxuICAgICAgZmlsdGVyZWRFdmVudHM6IFtdLFxuICAgICAgc2hvd01vZGFsOiBmYWxzZSxcbiAgICAgIGV2ZW50SW5Gb2N1czoge31cbiAgICB9XG4gIH0sXG5cbiAgYXN5bmMgY3JlYXRlZCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRFdmVudHMoKTtcbiAgICB0aGlzLmZpbHRlcmVkRXZlbnRzID0gdGhpcy5ldmVudHM7XG4gIH0sXG5cblxuXG4gIG1ldGhvZHM6IHtcbiAgICBhc3luYyBvcGVuTW9kYWwoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcbiAgICAgIHRoaXMuZXZlbnRJbkZvY3VzID0gZXZlbnQ7XG4gICAgfSxcbiAgICBhc3luYyBsb2FkRXZlbnRzKCkge1xuICAgICAgdGhpcy5ldmVudHMgPSBhd2FpdCB0aGlzLiRheGlvcy5nZXQoYC9hcGkvZXZlbnRzYCkudGhlbihyID0+IHIuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgY2xvc2VNb2RhbCgpIHtcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XG4gICAgICB0aGlzLmV2ZW50SW5Gb2N1cyA9IHt9O1xuICAgIH0sXG4gICAgYXN5bmMgdXBkYXRlRXZlbnQoKSB7XG4gICAgICBhd2FpdCB0aGlzLiRheGlvcy5wdXQoYC9hcGkvZXZlbnQvYCArIHRoaXMuZXZlbnRJbkZvY3VzLmlkLCB0aGlzLmV2ZW50SW5Gb2N1cykudGhlbihyID0+IHIuZGF0YS5kYXRhKVxuICAgICAgYXdhaXQgdGhpcy5sb2FkRXZlbnRzKCk7XG4gICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xuICAgICAgdGhpcy5ldmVudEluRm9jdXMgPSB7fTtcbiAgICB9LFxuXG4gICAgYWRqdXN0RmlsdGVyKGZpbHRlcikge1xuICAgICAgdGhpcy5maWx0ZXJlZEV2ZW50cyA9IFtdXG4gICAgICBmb3IgKGxldCBpZHggaW4gdGhpcy5ldmVudHMpIHtcbiAgICAgICAgaWYgKGZpbHRlciA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkRXZlbnRzID0gdGhpcy5ldmVudHNcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV2ZW50c1tpZHhdLm5hbWUuaW5jbHVkZXMoZmlsdGVyKSkge1xuICAgICAgICAgIHRoaXMuZmlsdGVyZWRFdmVudHMucHVzaCh0aGlzLmV2ZW50c1tpZHhdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgfSxcblxufVxuXG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5tb2RhbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzFjMTkxOSAwJSwgcmdiKDI2LCAyNCwgMjQpIDEwMCUpO1xuICBtYXJnaW4tdG9wOiAxMHZoO1xuICB3aWR0aDogODAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiAxMCU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGhlaWdodDogODB2aDtcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGVzbW9rZTtcbn1cblxuLm1vZGFsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAxMCU7XG4gIG1hcmdpbi10b3A6IDUlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzI4cHgpIHtcbiAgLm1vZGFsIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbn1cblxuaDEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogNTAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDdyZW07XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5cbnRhYmxlIHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IDUwMG1zO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuXG50YWJsZSB0cjpudGgtY2hpbGQoMm4rMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTMsIDQ0LCA0NCk7XG4gIDtcbn1cblxudGFibGUgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG59XG5cbnRhYmxlIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbn1cblxudGFibGUgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XG59XG5cbnRhYmxlIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xufVxuXG4uYm9va2luZy1pdGVtOmhvdmVyIHtcbiAgY29sb3I6IGJsYWNrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnRyIHtcbiAgbWFyZ2luLXRvcDogNHJlbTtcbiAgaGVpZ2h0OiAzcmVtO1xufVxuXG50aCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uY3VzdG9tLWlucHV0IHtcbiAgbWFyZ2luLXRvcDogMTByZW07XG4gIG1hcmdpbi1sZWZ0OiAzNSU7XG4gIHdpZHRoOiAzMCU7XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlc21va2U7XG59XG5cbmlucHV0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zaXRpb246IDMwMG1zXG59XG5cbmlucHV0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzLCAyMCwgMjApO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAjY2I5YjUxIDIyJSxcbiAgICAgICNmNmUyN2EgNDUlLFxuICAgICAgI2Y2ZjJjMCA1MCUsXG4gICAgICAjZjZlMjdhIDU1JSxcbiAgICAgICNjYjliNTEgNzglKTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3V0bGluZTogZm9jdXM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBnb2xkZW5yb2Q7XG59XG5cbi5idXR0b24tZ3JvdXAge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW4tbGVmdDogMTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDE1JTtcbn1cblxuLnNhdmUtYnV0dG9uIHtcbiAgYm9yZGVyOiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDMwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tbGVmdDogNSU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICB0YWJsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLmN1c3RvbS1idXR0b24ge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cbn1cblxuaDMsXG5oNCxcbnAge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW4tbGVmdDogMTAlO1xufVxuXG5cbmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IGdyYXk7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xuXG59XG5cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IDQwMG1zO1xufVxuXG5pbnB1dFt0eXBlPXRleHRdLFxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXG5pbnB1dFt0eXBlPXRlbF0sXG50ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiKDE3OSwgMTcwLCAxNzApO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICB0cmFuc2l0aW9uOiAzMDBtc1xufVxuXG5pbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsXG5pbnB1dFt0eXBlPXRlbF06Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMywgMjAsIDIwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG91dGxpbmU6IGZvY3VzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ29sZGVucm9kO1xufVxuXG4uY2hlY2tib3gtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmb250LXNpemU6IDhweDtcbn1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4uaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgI2NiOWI1MSAyMiUsXG4gICAgICAjZjZlMjdhIDQ1JSxcbiAgICAgICNmNmYyYzAgNTAlLFxuICAgICAgI2Y2ZTI3YSA1NSUsXG4gICAgICAjY2I5YjUxIDc4JSk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbmlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGFjY2VudC1jb2xvcjogZ29sZDtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbjwvc3R5bGU+XG5cbiIsIjx0ZW1wbGF0ZT5cbiAgPExvZ2luXG4gICAgdi1pZj1cIiF1c2VyXCJcbiAgICBAbG9naW4tdXNlcj1cImxvZ2luXCJcbiAgLz5cblxuICA8ZGl2XG4gICAgdi1lbHNlXG4gICAgY2xhc3M9XCJjb250YWluZXJcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzaWRlYmFyXCJcbiAgICAgIDpjbGFzcz1cInsgJ3NpZGUtYmFyLW9wZW4nOiBzaWRlQmFyT3BlbiB9XCJcbiAgICA+XG4gICAgICA8QnVyZ2VyXG4gICAgICAgIDpvcGVuPVwic2lkZUJhck9wZW5cIlxuICAgICAgICBjbGFzcz1cImJ1cmdlci1idXR0b24gYnVyZ2VyLWNvbnRhaW5lclwiXG4gICAgICAgIEB0b2dnbGVkPVwidG9nZ2xlXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIHYtaWY9XCJzaWRlQmFyT3BlblwiXG4gICAgICAgIGNsYXNzPVwiY3VzdG9tLWhlYWQtc2lkZWJhclwiXG4gICAgICA+XG4gICAgICAgIDxyb3V0ZXItbGluayB0bz1cIi9cIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzcz1cImhvbWUtaWNvblwiXG4gICAgICAgICAgICA6c3JjPVwicmVxdWlyZShgLi4vYXNzZXRzL2ltYWdlcy9TdmdzL0hvbWUuc3ZnYClcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9yb3V0ZXItbGluaz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcbiAgICAgICAgICBAY2xpY2s9XCJsb2dvdXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzcz1cImhvbWUtaWNvblwiXG4gICAgICAgICAgICA6c3JjPVwicmVxdWlyZShgLi4vYXNzZXRzL2ltYWdlcy9TdmdzL0xvZ291dC5zdmdgKVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHVsIHYtaWY9XCJzaWRlQmFyT3BlblwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICA6Y2xhc3M9XCJ7ICdnb2xkLXRleHQgYWN0aXZlJzogKGN1cnJlbnRWaWV3ID09PSAnYWNjb3VudCcpIH1cIlxuICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVZpZXcoJ2FjY291bnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICBBY2NvdW50XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cInsgJ2dvbGQtdGV4dCBhY3RpdmUnOiAoY3VycmVudFZpZXcgPT09ICdib29raW5ncycpIH1cIlxuICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVZpZXcoJ2Jvb2tpbmdzJylcIlxuICAgICAgICA+XG4gICAgICAgICAgTWVpbmUgQnVjaHVuZ2VuXG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaVxuICAgICAgICAgIHYtaWY9XCJ1c2VyLnJvbGUuaW5jbHVkZXMoJ2FkbWluJylcIlxuICAgICAgICAgIDpjbGFzcz1cInsgJ2dvbGQtdGV4dCBhY3RpdmUnOiAoY3VycmVudFZpZXcgPT09ICd1c2VycycpIH1cIlxuICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVZpZXcoJ3VzZXJzJylcIlxuICAgICAgICA+XG4gICAgICAgICAgQmVudXR6ZXJcbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgdi1pZj1cInVzZXIucm9sZS5pbmNsdWRlcygnYWRtaW4nKVwiXG4gICAgICAgICAgOmNsYXNzPVwieyAnZ29sZC10ZXh0IGFjdGl2ZSc6IChjdXJyZW50VmlldyA9PT0gJ2V2ZW50cycpIH1cIlxuICAgICAgICAgIEBjbGljaz1cInRvZ2dsZVZpZXcoJ2V2ZW50cycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEV2ZW50c1xuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPGRpdlxuICAgICAgICB2LWlmPVwiY3VycmVudFZpZXcgPT09ICdhY2NvdW50J1wiXG4gICAgICAgIGNsYXNzPVwiYWNjb3VudC1jb250YWluZXJcIlxuICAgICAgPlxuICAgICAgICA8QWNjb3VudCA6dXNlci1kYXRhPVwidXNlclwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgdi1lbHNlLWlmPVwiY3VycmVudFZpZXcgPT09ICdib29raW5ncydcIlxuICAgICAgICBjbGFzcz1cImJvb2tpbmctY29udGFpbmVyXCJcbiAgICAgID5cbiAgICAgICAgPEJvb2tpbmdzIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgdi1lbHNlLWlmPVwiY3VycmVudFZpZXcgPT09ICd1c2VycydcIj5cbiAgICAgICAgPFVzZXJzIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgdi1lbHNlLWlmPVwiY3VycmVudFZpZXcgPT09ICdldmVudHMnXCI+XG4gICAgICAgIDxFdmVudHMgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmltcG9ydCBMb2dpbiBmcm9tICcuLi9jb21wb25lbnRzL0FjY291bnRWaWV3L0xvZ2luLnZ1ZSc7XG5pbXBvcnQgVXNlcnMgZnJvbSAnLi4vY29tcG9uZW50cy9BY2NvdW50Vmlldy9Vc2Vycy52dWUnO1xuaW1wb3J0IEJvb2tpbmdzIGZyb20gJy4uL2NvbXBvbmVudHMvQWNjb3VudFZpZXcvQm9va2luZ3MudnVlJztcbmltcG9ydCBBY2NvdW50IGZyb20gJy4uL2NvbXBvbmVudHMvQWNjb3VudFZpZXcvQWNjb3VudC52dWUnO1xuaW1wb3J0IEV2ZW50cyBmcm9tICcuLi9jb21wb25lbnRzL0FjY291bnRWaWV3L0V2ZW50cy52dWUnO1xuaW1wb3J0IEJ1cmdlciBmcm9tICcuLi9jb21wb25lbnRzL05hdkJhci9CdXJnZXIudnVlJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBjb21wb25lbnRzOiB7XG4gICAgTG9naW4sXG4gICAgVXNlcnMsXG4gICAgQm9va2luZ3MsXG4gICAgQWNjb3VudCxcbiAgICBFdmVudHMsXG4gICAgQnVyZ2VyXG4gIH0sXG4gIHByb3BzOiB7XG4gICAgbGFuZ3VhZ2U6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAnZGUnIH0sXG4gIH0sXG4gIGRhdGE6ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xhcFN5bWJvbDogXCI8XCIsXG4gICAgICBzaWRlQmFyT3BlbjogZmFsc2UsXG4gICAgICBjdXJyZW50VmlldzogJ2FjY291bnQnLFxuICAgICAgdXNlcjogZmFsc2UsXG4gICAgICB1c2VyczogW1xuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgY3JlYXRlZCgpIHtcbiAgICBsZXQgdG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci10b2tlbicpXG4gICAgaWYgKHRva2VuICE9PSBcImVtcHR5XCIpIHtcbiAgICAgIHRoaXMuJGF4aW9zLmdldCgnL2F1dGgvdG9rZW4nKS50aGVuKGFzeW5jIHIgPT4ge1xuICAgICAgICBpZiAoci5kYXRhLnRva2VuKSB7XG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXItdG9rZW4nLCByLmRhdGEudG9rZW4pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHIuZGF0YS51c2VyKSB7XG4gICAgICAgICAgdGhpcy51c2VyID0gci5kYXRhLnVzZXJcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGUoKSB7XG4gICAgICB0aGlzLnNpZGVCYXJPcGVuID0gIXRoaXMuc2lkZUJhck9wZW5cbiAgICB9LFxuICAgIHRvZ2dsZVZpZXcodG9nZ2xlKSB7XG4gICAgICB0aGlzLnNpZGVCYXJPcGVuID0gZmFsc2VcbiAgICAgIHRoaXMuY3VycmVudFZpZXcgPSB0b2dnbGVcbiAgICB9LFxuICAgIGxvZ291dCgpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwidXNlci10b2tlblwiLCBcImVtcHR5XCIpXG4gICAgICB0aGlzLnVzZXIgPSBmYWxzZVxuICAgIH0sXG5cbiAgICBsb2dpbihfZGF0YSkge1xuICAgICAgdGhpcy51c2VyID0gX2RhdGFcbiAgICB9XG4gIH1cbn1cblxuPC9zY3JpcHQ+XG5cbjwhLS0gQWRkIFwic2NvcGVkXCIgYXR0cmlidXRlIHRvIGxpbWl0IENTUyB0byB0aGlzIGNvbXBvbmVudCBvbmx5IC0tPlxuPHN0eWxlIHNjb3BlZD5cbi5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmhcbn1cblxuXG4uYnVyZ2VyLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5jdXN0b20taGVhZC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbi5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDclO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA5MyU7XG59XG5cblxuLnNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB3aGl0ZXNtb2tlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwYTA4MDggMCUsIHJnYigyNiwgMjQsIDI0KSAxMDAlKTtcbiAgd2lkdGg6IDglO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IDMwMG1zO1xufVxuXG4ucm90YXRlIHtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xufVxuXG4uc2lkZS1iYXItb3BlbiB7XG4gIHdpZHRoOiAyMCU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyOHB4KSB7XG4gIC5zaWRlLWJhci1vcGVuIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbn1cblxuXG5cbi5zaWRlYmFyIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zaWRlYmFyIGxpIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgdHJhbnNpdGlvbjogMjUwbXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHdoaXRlc21va2U7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuXG59XG5cbi5zaWRlYmFyIGxpOmhvdmVyIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCxcbiAgICAgICNjYjliNTEgMjIlLFxuICAgICAgI2Y2ZTI3YSA0NSUsXG4gICAgICAjZjZmMmMwIDUwJSxcbiAgICAgICNmNmUyN2EgNTUlLFxuICAgICAgI2NiOWI1MSA3OCUpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuXG4uYnV0dG9uIHtcbiAgYWxsOiB1bnNldDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaG9tZS1pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMjBweDtcbiAgdHJhbnNpdGlvbjogNDAwbXM7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMTZweCAxNnB4IDIwcHggcmVkKSBpbnZlcnQoMjAlKTtcbn1cblxuLmhvbWUtaWNvbjpob3ZlciB7XG4gIGZpbHRlcjogbm9uZTtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xufVxuXG4uYnV0dG9uLWdyb3VwIC5uYXZpZ2F0aW9uLWJ1dHRvbiB7XG4gIHdpZHRoOiAyMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2hlY2tib3gtaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/