body {
    background-color: lightgray;
}


.btn[data-v-172e25f9] {
    border-radius: 0;
    display: block;
    height: 30px;
    width: 100%;
    background-color: transparent;
    position: relative;
    padding: inherit;
    z-index: 1;
    align-items: flex-start;
    box-sizing: border-box;
    outline: none;
    border: 0px solid #1e282d;
    border-bottom-width: 1px;
    font-size: 11px;
    color: inherit;
    text-decoration: none;
    text-align: center;
    vertical-align: middle;
    font-family: inherit;
    font-family: 'Alata', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    transition-duration: 0.4s;
    cursor: pointer;
    overflow: visible;
}
.last[data-v-172e25f9]{
  background-color: rgb(165 42 42 / 80%);
}
.btn[data-v-172e25f9]:hover:not(.active) {
    border-color: #f0e6d2;
    border-bottom-width: 4px;
    text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
    transition-duration: 0.2s;
}
.active[data-v-172e25f9] {
    background-color: rgba(0, 108, 125,0.5);
}
.btn[data-v-172e25f9]:focus-visible,
.btn[data-v-172e25f9]:focus {
    outline: 0;
    box-shadow: none;
}
@media screen and (max-width: 850px){
.btn[data-v-172e25f9] {
    height:100%;
    font-size: 1.5em;
    background-color: #010a13;
}
.active[data-v-172e25f9] {
    background-color: rgba(0, 108, 125,1);
}
}


ul[data-v-7d2d4638] {
    width: 100%;
    border: none;
    font-family: 'MedievalSharp', cursive;
    color: inherit;
    list-style-image: none;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    margin-block-start: 0em;
    margin-block-end: 0em;
    padding-inline-start: 0px;
}
Tabs[data-v-7d2d4638]:focus {
    outline: 0;
}
/* Sidenav menu */
#closeBtn[data-v-7d2d4638],
#openBtn[data-v-7d2d4638] {
    display:none;
}
.hidden[data-v-7d2d4638]{
    display:block;
}
@media screen and (max-width: 850px){
#TheTabs[data-v-7d2d4638],
  #mySidenav[data-v-7d2d4638]{
    
    position: fixed;
    width: 100%;
    max-height: calc(100vh - 5em);
    overflow-y: auto;
    z-index:100;
}
#TheTabs.reduit[data-v-7d2d4638]{
    width: 20%;
    overflow: hidden;
}
#mySidenav[data-v-7d2d4638]:not(.hidden)
  {
    height: calc(100vh - 5em);
}
ul[data-v-7d2d4638] {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6,1fr);
    height: 100%;
    transition-duration: 0.4s;
}

    /* Sidenav menu */
#closeBtn[data-v-7d2d4638],
  #openBtn[data-v-7d2d4638] {
    display:block;
    font-size: 3.5em;
    padding: 8px 15px;
    text-align: left;
    float: left;
    overflow-x: hidden;
}
#openBtn svg[data-v-7d2d4638]{
    overflow-x: hidden;
}
.hidden[data-v-7d2d4638]{
    display:none !important;
}
}


.view[data-v-e3eff19c]{
  width:50px;
  height:50px;
  margin:1px;
  perspective:600px;
}
.dice3D[data-v-e3eff19c]{
  font-size: 4rem;
  position: relative;
  transform-style:preserve-3d;
  transition: transform 1s;
  transform: rotateY(360deg);
  line-height: 0;
  width: 50px;
  height: 50px;
}
.one[data-v-e3eff19c]{
  transform: rotateY(0deg);
}
.two[data-v-e3eff19c]{
  transform: rotatex(90deg);
}
.three[data-v-e3eff19c]{
  transform: rotateY(-90deg);
}
.four[data-v-e3eff19c]{
  transform: rotateY(90deg);
}
.five[data-v-e3eff19c]{
  transform: rotatex(-90deg);
}
.six[data-v-e3eff19c]{
  transform: rotateY(180deg);
}
svg[data-v-e3eff19c]{
  width: 50px;
  height: 50px;
}
.dice3D > div[data-v-e3eff19c]{
  position: absolute;
  backface-visibility: hidden;
  height: 50px;
  width: 50px;
  color: #f0e6d2;
  background-color: #282828;
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(1){
transform: rotateY(0deg) translateZ(25px);
color:brown;
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(2){
transform: rotateX(-90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(3){
transform: rotateY(90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(4){
transform: rotateY(270deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(5){
transform: rotateX(90deg) translateZ(25px);
}
.dice3D > div[data-v-e3eff19c]:nth-of-type(6){
transform: rotateY(180deg) translateZ(25px);
}
@media screen and (max-width: 850px){}
@media screen and (max-width: 850px) and (orientation:portrait){}


.mainscreen[data-v-73e8f1a1] {
    top: 30px;
    width: 80%;
    /* margin: auto; */
    /* left: 10%; */
    /* right: 10%; */
    /* bottom: 30px; */
    /* position: fixed; */
    background-color: transparent;
    overflow: auto;
    z-index: 0;
    margin-top: 20px;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    margin-left: auto;
    margin-right: auto;
}
.h2[data-v-73e8f1a1], h2[data-v-73e8f1a1] {
    font-size: 6rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
}
article[data-v-73e8f1a1] {
  margin-bottom: 20vh;
}
section[data-v-73e8f1a1]{
  display: block;
  position: relative;
}
.intro p[data-v-73e8f1a1] {
    font-size: 1.6vw;
}
.intro p + p[data-v-73e8f1a1] {
    margin-top: 5vh;
}
.intro p span[data-v-73e8f1a1]{
    color: brown;
}
.lore-post h1[data-v-73e8f1a1]{
  margin-top: 2em;
  font-size: 8em;
  text-transform: uppercase;
}
.lore-post h1+div[data-v-73e8f1a1]{
  text-transform: uppercase;
  margin-bottom: 15vh;
}
.factions[data-v-73e8f1a1] {
    list-style: none;
    margin-block-start: 0;
    margin-block-end: 0;
    padding-inline-start: 0;
    display: flex;
    flex-direction: row;
    justify-content: stretch;
}
.factions li[data-v-73e8f1a1] {
    display: flex;
    flex-grow: 1;
    margin: 1px;
    max-height: 50vh;
    overflow: hidden;
}
.factions li > div[data-v-73e8f1a1]:first-of-type {
    align-content: end;
    display: grid;
    grid-template-rows: 3fr 1fr 20px;
    border: 1px solid #1e282d;
    background-position: center;
    background-size: cover;
    pointer-events: all;
    flex-grow: 1;
    justify-content: center;
    position:relative;
    cursor: pointer;
    flex-basis:1;
    min-height: 50vh;
    transition-duration: 0.4s;
}
.factions li > div[data-v-73e8f1a1]:first-of-type:hover {
    border-color: #ccc3a7;
}
.factions li > div:first-of-type h4[data-v-73e8f1a1] {
    grid-row-start: 2;
    text-align:center;
    transition-duration: 0.4s;
    z-index:2;
}
.factions li > div[data-v-73e8f1a1]:last-of-type {
    padding: 20px 0;
    /*display:none;*/
    max-width:0;
    flex-grow: 4;
    flex-basis:4;
    background-color: #010a13;
    transition-duration: 0.4s;
    overflow:hidden;
}
.factions p[data-v-73e8f1a1] {
    padding: 0;
    margin: 0;
    margin-block-end: 0;
    margin-block-start: 0;
    margin-inline-end: 0;
    margin-inline-start: 0;
    width: 18vw;
    text-align:justify;
}
.factions li > div.active[data-v-73e8f1a1]{
  padding: 20px 10px;
  display:block !important;
  max-width:20vw;
}
.gradient[data-v-73e8f1a1] {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index:1;
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.35) 50%, rgba(255,255,255,0) 100%);
}
.active p[data-v-73e8f1a1] {
    display: block !important;
}
aside[data-v-73e8f1a1] {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    width: 100%;
    position: sticky;
    z-index: 80;
    text-align: center;
    background-color: rgba(0,0,0,0.75);
}
.background[data-v-73e8f1a1] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #28050D;
    background: linear-gradient(0deg, rgba(30, 6, 12, 0.5) 0%, rgba(40, 5, 13, 0) 25%);
    z-index: 0;
}
.background[data-v-73e8f1a1]::after {
    content: "";
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: #28050D;
    background: linear-gradient(0deg,rgba(40, 5, 13, 1) 0%, rgba(40, 5, 13, 0) 15%);
    z-index: 2;
    animation: brasier-data-v-73e8f1a1 3s ease 0s infinite normal forwards;
}
.spark[data-v-73e8f1a1] {
    display: block;
    position: relative;
    height: 6px;
    width: 1px;
    border-radius: 50%;
    z-index: 1;
    animation: spark-data-v-73e8f1a1 5s linear 0s infinite normal forwards;
    left: 0;
    bottom: -100%;
    background-color: rgb(255 154 154 / 46%);
    opacity: 0.7;
    box-shadow: 1px 1px 3px 3px rgb(176 49 67);
}
@keyframes spark-data-v-73e8f1a1{
0%{
    transform: rotate(30deg) translateX(0vw) translateY(-0vh);
}
100%{
      transform: rotate(-5deg) translateX(64vw) translateY(-100vh);
      opacity: 0;
}
}
@keyframes brasier-data-v-73e8f1a1 {
0%,
  75% {
    opacity: 1;
}
25%,
  100% {
    opacity: 0.95;
}
50% {
    opacity: 0.92;
}
12%,
  77%
  {
		opacity: 0.7;
}
37%
  {
		opacity: 0.75;
}
52% {
		opacity: 0.8;
}
}
@media screen and (max-width: 850px){
.mainscreen[data-v-73e8f1a1] {
      padding-top: 60px;
      top: 0;
      width: 100%;
      left: 0%;
      right: 0%;
      bottom: 0;
      margin: 0;
}
.intro p[data-v-73e8f1a1] {
      font-size: 5.2vw;
}
.lore-post h1[data-v-73e8f1a1]{
    font-size: 2.5em;
}
aside[data-v-73e8f1a1]{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(4,1fr);
}
.factions[data-v-73e8f1a1] {
    flex-direction: column;
}
.factions p[data-v-73e8f1a1]{
    min-width: calc(100vw - 40px);
    min-height: 15vh;
}
.factions li[data-v-73e8f1a1]{
      flex-direction: column;
      max-height: unset;
}
.factions li > div[data-v-73e8f1a1]:first-of-type {
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
    background-position: 50% 65%;
    min-height: 15vh;
}
.factions li > div:first-of-type[title="Vidieu"][data-v-73e8f1a1] {
    background-position-y: 50%;
}
.factions li > div:first-of-type[title="Servenatifs"][data-v-73e8f1a1] {
    background-position-y: 5%;
}
.factions li > div:first-of-type[title="Mesaives"][data-v-73e8f1a1] {
    background-position-y: 40%;
}
.factions li > div[data-v-73e8f1a1]:last-of-type {
    padding: 0px 10px;
    max-width:100vw;
    flex-grow: 4;
    flex-basis:4;
    background-color: rgba(7,10,11,1);
    max-height: 0vh;
}
.factions li > div.active[data-v-73e8f1a1] {
    padding: 20px 10px;
    display: block !important;
    max-height: 100vh;
}
.h2[data-v-73e8f1a1], h2[data-v-73e8f1a1] {
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 0.35em;
}
}


@media screen and (max-width: 850px){
}


.double[data-v-52fda430]{
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    margin: 5px auto;
    width: 20vw;
    height: 33vw;
    max-width: 255px;
    max-height: 423px;
    position: relative;
    transition-duration: 0.2s;
    background-color: transparent;/*#a09d99;*/
    /* box-shadow: 0px 0px 23px -30px rgba(0,0,0,0.01); */
    filter: drop-shadow(rgba(0, 0, 0, 0.6) 0px 3px 3px);
    cursor: pointer;
    font-family: 'Alata', sans-serif;
    letter-spacing: 0.05em;
    border-radius: 5px;
    color: black;
}
.detailed[data-v-52fda430]
  {
    cursor: default;
}
.double[data-v-52fda430]:not(.detailed):hover{
    transform: scale3d(1.08,1.08,1.08);
    border-radius: 5px;
    z-index: 2;
    filter: drop-shadow(rgba(255, 255, 255, 0.8) 0px 0px 4px);
}
.double >div[data-v-52fda430]:not(.details){
    width: 100%;
    height: 100%;
    top:0;
    right: 0;
    position: absolute;
    border: solid 0px transparent;
    display: grid;
    grid-template-rows: 5fr 1.5fr 1.5fr;
    grid-template-columns: 1fr;
    padding: 20px 10px;
    border-radius: 5px;
    animation-name: a_cards-data-v-52fda430;
    animation-duration: 1s;
    animation-timing-function:cubic-bezier(0.455, 0.03, 0.515, 0.955);
    animation-iteration-count: 1;
    animation-play-state:paused
}
.double h1[data-v-52fda430] {
    padding-top: 1.0rem;
    font-family: 'MedievalSharp', cursive;
    font-size: 1.2rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    display: block;
    color: black;
    text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white;
    font-weight: bolder;
    text-align: center;
}
h1+span[data-v-52fda430]{
    text-align: center;
    color: white;
    text-shadow: -1px -1px 0 brown, 1px -1px 0 brown, -1px 1px 0 brown, 1px 1px 0 brown;
}
.carteF[data-v-52fda430]{
    justify-content: space-between;
    animation-fill-mode: forwards;
    animation-direction: alternate;
    /*background-position-x: 20%;
    background-size: 340%;
    background-position-y: 1%;*/
    background-size: cover;
    background-position: center;
    background-color: transparent;
    background-image: url(/build/images/bg.da3ba154.png);
    position: relative;
}
.illu[data-v-52fda430] {
    width: calc(100% - 12px);
    height: calc(100% - 20px);
    position: absolute;
    top: 9px;
    left: 9px;
    /*mix-blend-mode: multiply;
    background-position-x: 20%;
    background-size: 340%;
    background-position-y: 1%;*/
    background-size: cover;
    background-position: center;
    z-index: -1;
    grid-column-start: unset !important;
    margin: 0 !important;
}
.carteF > div[data-v-52fda430]:not(.illu) {
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    z-index: 5;
}
.illu+div[data-v-52fda430]{
    display:block;
    background-size: cover;
    background-position: center;
    background-color: transparent;
    background-image: url(/build/images/border.7631cc46.png);
    position: absolute;
    z-index:3;
    width:100%;
    height:100%;
    pointer-events:none;
}
ul[data-v-52fda430]{
      list-style: none;
      margin-bottom: 0;
      padding-inline-start: 0;
      background-color: #a52a2ac7;
      color: white;
}
ul + ul[data-v-52fda430]{
      padding-left: 10px;
      z-index: 4;
}
.stats[data-v-52fda430] {
        display: grid;
        grid-template-columns: repeat(3,1fr);
        text-align: center;
        z-index: 4;
}
.stats > li > span[data-v-52fda430] {
        display: block;
        border: 1px solid white;
        border-left-width: 0;
        margin-bottom: 0;
        height: 50%;
        /*padding: 5px;*/
        font-size: 1.55em;
}
.stats > li > span[data-v-52fda430]:first-of-type {
        border-bottom-width: 0;
        grid-row-start: 3;
        grid-row-end: 3;
}
.stats > li:last-of-type span[data-v-52fda430] {
    border-right-width: 0;
}
.stats > li > span[data-v-52fda430]:last-of-type {
      padding: 0px 0 4px 0;
}
.stats > li > span:last-of-type > svg[data-v-52fda430] {
    transform: rotateZ(45deg);
}
.small-font[data-v-52fda430]{
      font-size: 0.8rem;
}
.details[data-v-52fda430] {
        display: none;
        background-color: #10100f;
        width: 11vw;
        top: 2%;
        right: -90%;
        height: fit-content;
        position: absolute;
        padding: 10px;
        z-index: 3;
        font-size: 0.7rem;
        border-radius: 5px;
        color: white;
}
.details span[data-v-52fda430] {
    color: brown;
    font-size: 1.02rem;
}
.detailed .details[data-v-52fda430]{
      display: block;
}
@keyframes a_cards-data-v-52fda430 {
0% {
		transform: rotateY(0deg);
}
50% {
		transform: rotateY(90deg);
}
100% {
		transform: rotateY(90deg);
}
}
@media screen and (max-width: 850px){
.double[data-v-52fda430]{
        font-size: 0.65rem;
        width: 25vw;
        height: 40vw;
}
.double h1[data-v-52fda430]{
      padding-top: 0rem;
}
.details[data-v-52fda430] {
    width: 20vw;
    font-size: 0.6rem;
    top: 5%;
    right: -85%;
}
.carteF[data-v-52fda430]{
    background-image: url(/build/images/mobile_bg.d36383c1.png);
}
.illu[data-v-52fda430]{
    width: calc(100% - 12px);
    height: 100%;
    top: 0;
    left: 7px;
    background-position-y: 20%;
    z-index: 2 !important;
}
}
.mobile-only[data-v-52fda430]{
    display: none !important;
}
.desktop-only[data-v-52fda430]{
    display: block !important;
}
@media screen and (max-width: 850px) and (orientation:portrait){
.double[data-v-52fda430]{
        font-size: .8rem;
        width: 64vw;
        height: 40vw;
        min-height: 150px;
        min-width: 240px;
}
.double > div[data-v-52fda430],
    .double >div[data-v-52fda430]:not(.details){
    grid-template-rows: 4fr 1fr;
    grid-template-columns: 1fr 4fr;
    padding: 10px;
}
.carteF[data-v-52fda430] {
    background-position-y: 20%;
}
.carteF > div[data-v-52fda430]:not(.illu),
  .carteF > div[data-v-52fda430] {
    grid-column-start: 2;
    margin: 10px 0;
    margin-bottom: 0;
    justify-content: flex-end;
    z-index: 4;
}
.stats[data-v-52fda430]{
    grid-column-start: 1;
    grid-column-end: 2;
    grid-row-start: 1;
    grid-row-end: 3;
    grid-template-columns: unset;
    grid-template-rows: repeat(3,1fr);
    border: 0px solid white;
    border-bottom-width: 0;
    height: 100%;
}
ul.stats[data-v-52fda430] {
    background-color: transparent;
    margin-left: 6px;
    z-index: 4;
}
.stats + ul[data-v-52fda430] {
    margin: 5px;
    z-index: 4;
}
.stats > li[data-v-52fda430] {
      display: flex;
      justify-content: space-between;
      height: 100%;
      border-bottom: 0px solid white;
}
.stats > li[data-v-52fda430]:first-of-type {
      border-left-width: 0;
}
.stats > li > span[data-v-52fda430]:first-of-type {
      margin: auto 4px auto;
}
.stats > li:first-of-type span[data-v-52fda430]:first-of-type{
  font-size: 1.5rem;
  margin-top: 5px;
}
.stats > li:nth-of-type(2) span[data-v-52fda430]:first-of-type{
  font-size: 1.08rem;
}
.stats > li:last-of-type span[data-v-52fda430]:first-of-type{
  font-size: 1.2rem;
  margin-top: 9px;
}
.stats > li span[data-v-52fda430]:last-of-type{
  font-size: 1.15rem;
  padding: unset;
}
.stats > li > span[data-v-52fda430] {
        width: 100%;
        margin: auto;
        border:unset;
        color: white;
        text-shadow: -1px -1px 0 brown, 1px -1px 0 brown, -1px 1px 0 brown, 1px 1px 0 brown;
}
.double h1[data-v-52fda430] {
    font-size: 1.1rem;
    margin-bottom: -4px;
}
h1+span[data-v-52fda430]{
    text-align: center;
}
ul + ul[data-v-52fda430]{
    padding-left: 0;
    background-color: transparent;
    color: white;
}
.mobile-only[data-v-52fda430]{
    display: block !important;
}
.desktop-only[data-v-52fda430]{
    display: none !important;
}
h1.small-font[data-v-52fda430]{
      font-size: 0.9rem;
}
h1.super-small-font[data-v-52fda430]{
    font-size: 0.7rem;
}
.details[data-v-52fda430] {
    width: 64vw;
    top: -100%;
    right: 0;
}
.double:first-of-type .details[data-v-52fda430] {
    top: 100%;
}
.illu+div[data-v-52fda430]{
    background-image: url(/build/images/mobile_border.78e96cf8.png);
    grid-column-start: unset !important;
    margin: unset !important;
    margin-bottom: unset !important;
    justify-content: unset !important;
    z-index: 3 !important;
}
}
  

ul[data-v-29411a58] {
    padding-inline-start: 0;
    list-style: none;
    display: flex;
    font-size: 4rem;
    margin: auto;
    justify-content: center;
    align-items: center;
}
.red[data-v-29411a58]{
    color:brown;
}
.unusedDice[data-v-29411a58]{
    color:rgb(40,40,40);
}
.not-relevant[data-v-29411a58]{
    opacity: .5;
}
li[data-v-29411a58]{
    margin: 2px 5px;
    height: 50px;
    line-height: 0;
    width: 50px;
}
.btn.btn-success[data-v-29411a58] {
	margin: auto;
  background: transparent;
  border-color: #4c4c4c;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #4c4c4c, #4c4c4c, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: #979797;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
}
.btn.btn-success[data-v-29411a58]:focus {
  box-shadow: 0 0 0 0.2rem rgba(40,167,69,.0);
  border-color: brown;
  border-radius: 0;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-29411a58]:not(:disabled):hover{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #4c4c4c, #4c4c4c, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-29411a58]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-29411a58] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
button[data-v-29411a58], select[data-v-29411a58] {
    margin-top: 15px;
}
select[data-v-29411a58]{
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
}
select[data-v-29411a58]:first-of-type{
  border-radius: 5px 0 0 5px;
}
@media screen and (max-width: 850px){
ul[data-v-29411a58] {
      font-size: 3rem;
}
.btn.btn-success[data-v-29411a58] {
      margin-top: 15px;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){}
  

div[data-v-413c1148] {
  padding: 20px;
  background-color: #282828;
  border-radius: 5px;
  width: 100%;
  height: 90%;
  margin: 20px;
}
span[data-v-413c1148]{
  display: block;
  margin: 2px;
}
span[data-v-413c1148]:first-of-type,
span[data-v-413c1148]:nth-of-type(2){
  font-size: 1rem;
}
span[data-v-413c1148]:nth-of-type(2){
  margin-right: 15px;
}
.red[data-v-413c1148]{
  color:brown;
}
.not-relevant[data-v-413c1148]{
  opacity: .5;
}
ul[data-v-413c1148] {
  padding-inline-start: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  font-size: 2rem;
  margin: auto;
  justify-content: center;
}
li[data-v-413c1148]{
  margin: 1px;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: baseline;
}
@media screen and (max-width: 850px){
}
@media screen and (max-width: 850px) and (orientation:portrait){
span[data-v-413c1148]:first-of-type,
  span[data-v-413c1148]:nth-of-type(2){
    font-size: 0.75rem;
}
span[data-v-413c1148]:nth-of-type(2){
    margin-right: 10px;
}
ul[data-v-413c1148] {
    font-size: 2rem;
}
}


table[data-v-5557e8e3]{
  margin: 10px;
  width: 80%;
}
tr[data-v-5557e8e3]{

  border-width: 1px;
  border-right-width: 0;
  border-style: solid;
  border-image: linear-gradient(90deg, #515151, #515151, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0 0 1px;
  min-height: 56px;
  min-width: 167px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
tr[data-v-5557e8e3]:last-of-type{
  border-image-width: 1px 0 1px 1px;
}
td input[data-v-5557e8e3]{
  display: none;
}
th[data-v-5557e8e3]{
  font-size: 1em;
  text-align: left;
}
input[type="checkbox"] + span[data-v-5557e8e3]{
  display: block;
  font-size: 2.5em;
}
.blanc[data-v-5557e8e3]{
  color: white;
}
.gris[data-v-5557e8e3]{
  color: grey;
}
.noir[data-v-5557e8e3]{
  color:white;
  background-color: #200756;
  background: rgb(32,7,86);
  background: linear-gradient(82deg, rgba(32,7,86,1) 50%, rgba(131,128,150,0) 100%);
}
label[data-v-5557e8e3]{
  margin-left: 1rem;
  cursor: pointer;
}
@media screen and (max-width: 850px){
}
@media screen and (max-width: 850px) and (orientation:portrait){
}


.characterSheet[data-v-363b4063]{
  width: 100%;
  height: calc(100% - 0px);
  background-color: black; /* #010a13;*/
  margin: 0;
  display: grid;
  grid-template-rows: 30px 110px 130px 1fr 50px 50px;
  grid-template-columns: repeat(3,1fr);
  justify-content: space-around;
  overflow: hidden;
  align-items: center;
}
.characterSheet > div[data-v-363b4063]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.characterSheet > div[data-v-363b4063]:first-of-type {
    text-align: center;
    margin: 10px 0;
    grid-column-start: 1;
    grid-column-end: 4;
    grid-row-start: 2;
}
.characterCard[data-v-363b4063]
{
    grid-column-start: 2;
    grid-column-end: 2;
    grid-row-start: 2;
    grid-row-end: 5;
}
h1[data-v-363b4063]{
  font-family: 'MedievalSharp', cursive;
  background: -webkit-linear-gradient(#ffe4af, #62543a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 3.5rem;
  border-style: solid;
  border-color: #cdbd91;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #515151, #515151, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 0 0 1px 0;
  border-width: 1px;
  margin: auto;
  width: fit-content;
  padding-right: 120px;
  padding-left: 120px;
}
.diceLine[data-v-363b4063]
{
    grid-column-start: 3;
    grid-column-end: 3;
    grid-row-start: 3;
    grid-row-end: 3;
}
.stat[data-v-363b4063]{
  grid-column-start: 1;
  grid-column-end: 1;
  grid-row-start: 3;
  grid-row-end: 5;
}
.changeCharacter[data-v-363b4063]{
  grid-column-start: 2;
  grid-column-end: 2;
  grid-row-start: 5;
  grid-row-end: 5;
}
.history[data-v-363b4063]{
  grid-column-start: 3;
  grid-column-end: 3;
  grid-row-start: 4;
  grid-row-end: 5;
  height: 100%;
  width: 90%;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
  background-color: brown;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(11,20,27,0) 100%);
}
input[data-v-363b4063]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-363b4063]{
  display: grid;
  margin: 10px auto;
  width: 40px;
  height: 40px;
}
.genreSelect input[data-v-363b4063]{
  display: none;
}
.genreSelect label[data-v-363b4063]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
}
.genreSelect label[data-v-363b4063]:first-of-type{
  border-radius: 50%;
}
label span[data-v-363b4063] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: brown;
}
input[type="radio"]:checked+label span[data-v-363b4063]{
  background-color: brown;
}
.genreSelect label[data-v-363b4063]:last-of-type{
  border-radius: 50%;
}
.shuffle[data-v-363b4063]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-363b4063;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
.btn.btn-success[data-v-363b4063] {
	margin: auto;
	background-color: brown;
  background: transparent;
  border-color: brown;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: brown;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
  box-shadow: none;
}
.btn.btn-success[data-v-363b4063]:focus {
  border-image: linear-gradient(90deg, rgba(131,128,150,0), white, white, rgba(131,128,150,0)) 27;
  box-shadow: none;
}
.btn-success.focus[data-v-363b4063], .btn-success[data-v-363b4063]:focus{
  box-shadow: none;
}
.btn-success[data-v-363b4063]:not(:disabled):hover{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-363b4063]:not(:disabled):active, 
.show>.btn-success.dropdown-toggle[data-v-363b4063] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@keyframes slide_in-data-v-363b4063{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.characterSheet[data-v-363b4063]{
    height: 100vh;
    align-items: center;
    overflow: auto;
    display: flex;
    flex-direction: column;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.characterSheet[data-v-363b4063] {
    justify-content: flex-start;
}
.characterSheet > div[data-v-363b4063]:first-of-type {
    margin: 110px 0 30px 0;
}
.characterSheet > div[data-v-363b4063]:last-of-type{
    flex-direction: column;
}
.characterSheet > div:first-of-type input[data-v-363b4063] {
    width: 50vw;
}
.h1[data-v-363b4063], h1[data-v-363b4063] {
    font-size: 1.8rem;
    padding-right: 0px;
    padding-left: 0px;
}
.changeCharacter[data-v-363b4063]{
    margin-bottom: 40px;
}
.stat[data-v-363b4063]{
    order:2;
    width: calc(100% - 32px);
}
.btn.btn-success[data-v-363b4063]:last-of-type{
    order:3;
    margin: 15px 0 25px 0;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.characterSheet > div[data-v-363b4063]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.characterSheet > div[data-v-363b4063]:last-of-type{
    display: none;
}
}


.board[data-v-12e93555]{
  width: 99vw;
  height: calc(99vh - 30px);
  background-color: #010a13;
  margin: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  overflow: hidden;
}
.board > div[data-v-12e93555]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.board > div[data-v-12e93555]:first-of-type {
    text-align: center;
    margin: 10px 0;
}
.board > div:first-of-type input[data-v-12e93555] {
  background-color: black;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
input[data-v-12e93555]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-12e93555]{
  display: grid;
  margin: 10px auto;
  grid-template-columns: repeat(2,1fr);
  width: 80px;
  height: 40px;
}
.genreSelect input[data-v-12e93555]{
  display: none;
}
.genreSelect label[data-v-12e93555]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
  cursor: pointer;
}
.genreSelect label[data-v-12e93555]:first-of-type{
  border-radius: 50% 0 0 50%;
}
label span[data-v-12e93555] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-12e93555]{
  background-color: brown;
}
.genreSelect label[data-v-12e93555]:last-of-type{
  border-radius: 0 50% 50% 0;
}
.shuffle[data-v-12e93555]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-12e93555;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
@keyframes slide_in-data-v-12e93555{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.board[data-v-12e93555]{
  height: 100vh;
  align-items: center;
  overflow: auto;
}
.board > div:first-of-type input[data-v-12e93555] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.board[data-v-12e93555] {
    justify-content: center;
}
.board > div[data-v-12e93555]:first-of-type {
    margin: 10px 0 30px 0;
}
.board > div[data-v-12e93555]:last-of-type{
    flex-direction: column;
}
.board > div:first-of-type input[data-v-12e93555] {
    width: 50vw;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.board > div[data-v-12e93555]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.board > div[data-v-12e93555]:last-of-type{
    display: none;
}
}


.board[data-v-091d44e9]{
  width: 100%;
  height: calc(100vh - 30px);
  background-color: #010a13;
  margin: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  overflow: hidden;
  background-image: url(https://www.vagabonds-jdr.fr/assets/images/illustration/page/character-selec/background/tavern.png);
  background-size: cover;
}
.board > div[data-v-091d44e9]:last-of-type{
  justify-content: space-evenly;
  display: flex;
  align-items: center;
}
.board > div[data-v-091d44e9]:first-of-type {
    text-align: center;
    height: 100%;
}
.board > div:first-of-type input[data-v-091d44e9] {
  background-color: black;
    color: white;
    border: 0px solid white;
    border-bottom-width: 1px;
    text-align: center;
    font-size: 1.5em;
    width: 10vw;
    font-family: 'MedievalSharp', cursive;
    letter-spacing: 0.10em;
    background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(11,20,27,0) 100%);
}
input[data-v-091d44e9]:focus-visible {
    outline: none;
    border-color: brown !important;
}
.genreSelect[data-v-091d44e9]{
  display: grid;
  margin: 10px auto;
  grid-template-columns: repeat(2,1fr);
  width: 80px;
  height: 40px;
}
.genreSelect input[data-v-091d44e9]{
  display: none;
}
.genreSelect label[data-v-091d44e9]{
  display: block;
  width: 100%;
  border: 1px solid white;
  background-color: white;
}
.genreSelect label[data-v-091d44e9]:first-of-type{
  border-radius: 50% 0 0 50%;
}
label span[data-v-091d44e9] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-091d44e9]{
  background-color: brown;
}
.genreSelect label[data-v-091d44e9]:last-of-type{
  border-radius: 0 50% 50% 0;
}
.shuffle[data-v-091d44e9]{
  animation-iteration-count: 1;
  animation-name: slide_in-data-v-091d44e9;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
}
@keyframes slide_in-data-v-091d44e9{
0%{
    transform: translate(-10vw,100vh) rotate3d(5, 1, 1, 41deg);
}
100% {
    transform: translateX(0);
}
}
@media screen and (max-width: 850px){
.board[data-v-091d44e9]{
  height: 100vh;
  align-items: center;
  overflow: auto;
}
.board > div:first-of-type input[data-v-091d44e9] {
    width: 30vw;
}
}
@media screen and (max-width: 850px) and (orientation:portrait){
.board[data-v-091d44e9] {
    justify-content: center;
}
.board > div[data-v-091d44e9]:first-of-type {
    margin: 10px 0 30px 0;
}
.board > div[data-v-091d44e9]:last-of-type{
    flex-direction: column;
}
.board > div:first-of-type input[data-v-091d44e9] {
    width: 50vw;
}
}
@media screen and (max-width: 850px) and (max-height: 100px){
.board > div[data-v-091d44e9]:last-of-type{
    display: none;
}
}
@media screen and (max-width: 850px) and (max-height: 400px) and (orientation:portrait){
.board > div[data-v-091d44e9]:last-of-type{
    display: none;
}
}


.mainscreen[data-v-306c7a65] {
    margin: 0 15%;
    background-color: transparent;
    overflow: auto;
    z-index: 1;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 30px;
    display: block;
    position: relative;
    overflow-x: hidden;
}
article[data-v-306c7a65] {
    border: 1px solid #1e282d;
    margin: 30px 10px;
    padding: 10px;
    background-color: #010a13;
}
.h2[data-v-306c7a65], h2[data-v-306c7a65] {
    font-size: 1rem;
    text-transform: capitalize;
    letter-spacing: 0.25em;
}
.landscape[data-v-306c7a65]{
    width: 100%;
    height: 95vh;
    position: relative;
    pointer-events: none;
    margin-top: -30px;
}
.landscape div[data-v-306c7a65]:first-of-type{
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.5) 30%, rgba(255,255,255,0) 100%);
    height: 110%;
    width: 100%;
    position: absolute;
    z-index: 1;
}
.landscape div + div[data-v-306c7a65] {
    background-image: url('https://www.vagabonds-jdr.fr/assets/images/illustration/cover/home4up.jpg');
    position: relative;
    height: 110%;
    z-index: 0;
    background-size: cover;
    background-position-x: center;
    background-position-y: 80%;
}
.titre[data-v-306c7a65]{
    width: 100%;
    z-index: 1;
    display: block;
    position: relative;
    margin-top: calc(-30vh + 30px);
    margin-bottom: 2.5vh;
}
.titre h1[data-v-306c7a65] {
    display: block;
    margin: auto;
    width: fit-content;
    letter-spacing: 5px;
    font-family: 'MedievalSharp', cursive;
    text-transform: uppercase;
    font-size: 5rem;
    line-height: .6em;
}
.titre h1 span[data-v-306c7a65]{
    font-size: 1rem;
}
.titre h1 + span[data-v-306c7a65] {
    font-size: 1.55rem;
    display: block;
    margin: auto;
    width: fit-content;
    margin-top: 13vh;
    text-transform: uppercase;
}
h3[data-v-306c7a65]{
  text-align:center;
}
.welcome[data-v-306c7a65]{
  display:grid;
}
.affiche[data-v-306c7a65] {
    display: grid;
    grid-template-rows: 50px 250px;
    align-items: stretch;
    justify-items: stretch;
    overflow-x: auto;
    margin: 0px -40px 15px;
    padding: 35px 40px 0;
    border: 0px solid #1e282d;
    border-bottom-width: 1px;
    background: rgba(0,0,0,0);
    background: linear-gradient(0deg, rgba(7,10,11,1) 0%, rgba(11,20,27,0) 100%);
}
.affiche > div[data-v-306c7a65] {
    overflow-x: hidden;
}
.affiche > div > div[data-v-306c7a65]
{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-template-rows: 1fr;
  overflow-x: auto;
}
.affiche article[data-v-306c7a65] {
    display: grid;
    grid-template-columns: 1fr 3fr;
    font-size: 12px;
    height: calc(100% - 30px);
    padding: 0;
    text-align: left;
    margin-top: 0;
    background-color: rgba(1,10,19,100);
    transition-duration: 0.2s;
    transition-timing-function: ease;
}
.affiche article[data-v-306c7a65]:hover {
    border: solid 1px #ccc3a7;
    background: rgba(1,10,19,100);
    /*background: linear-gradient(6deg, rgba(53,57,57,1) 0%, rgba(26,33,38,1) 50%, rgba(1,10,19,1) 100%);*/
    transition-duration: 0.2s;
}
.affiche article h3[data-v-306c7a65] {
    margin-top: 10px;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.03em;
    text-align: left;
}
.affiche article > div[data-v-306c7a65]:first-of-type {
    grid-column-start: 1;
    grid-column-end: 2;
    background-position: center;
    background-size: cover;
    min-width: 150px;
}
.affiche article > div[data-v-306c7a65]:last-of-type {
    padding: 10px;
    min-width: 220px;
    overflow-y: hidden;
    height: 200px;
}
.affiche article > div:last-of-type > div[data-v-306c7a65] {
    color: brown;
    font-weight: bold;
}
.news[data-v-306c7a65]{
  display:grid;
}
.news article[data-v-306c7a65] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    border-left-width: 0;
    border-right-width: 0;
    border-bottom-color: transparent;
    margin: 0px;
    padding: 20px 10px;
    color: #a4a095;
    background-color: transparent;
    padding-right: 30px;
}
.news a:hover article[data-v-306c7a65] {
    padding-left: 30px;
    padding-right: 0px;
    border-left-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    border-color:#ccc3a7;
}
.news article > div[data-v-306c7a65] {
    margin-top: auto;
    margin-bottom: auto;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}
.news article > div > div[data-v-306c7a65] {
  margin-bottom: 0.8em;
  color: brown;
  font-weight: bold;
}
.news article > img[data-v-306c7a65] {
    margin: auto;
    max-width: 26.25rem;
}
.news article h3[data-v-306c7a65] {
    text-align: left;
    color: #f0e6d2;
}
@media screen and (max-width: 850px){
.titre[data-v-306c7a65]{
      margin-top: -30vh;
      margin-bottom: 2.5vh;
}
.titre h1[data-v-306c7a65] {
      letter-spacing: -2px;
      font-size: 3.5rem;
      line-height: .6em;
}
.titre h1 span[data-v-306c7a65]{
        font-size: 1rem;
}
.titre h1 + span[data-v-306c7a65] {
        font-size: 1.05rem;
        margin-top: 6vh;
        text-align:center;
}
.mainscreen[data-v-306c7a65] {
        padding-top: 0px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
.affiche article h3[data-v-306c7a65] {
    margin-top: 0.4375rem;
    font-size: 0.8125rem;
}
.affiche article[data-v-306c7a65] {
      grid-template-columns: 1fr 2fr;
}
.news article[data-v-306c7a65] {
      display: flex;
      flex-direction: column;
      max-width: 400px;
      margin: 15px auto;
}
.news a:hover article[data-v-306c7a65] {
      padding: 20px 10px;
}
.news article > div[data-v-306c7a65] {
      padding-left: 0;
}
.news article > img[data-v-306c7a65] {
      max-width: 100%;
}
}


.mainscreen[data-v-a7cecd9c] {
    margin: 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 30px;
    display: block;
    position: relative;
}
article[data-v-a7cecd9c] {
    padding-left: 5px;
    padding-right: 5px;
    text-align: center;
}
h3[data-v-a7cecd9c]{
  text-align:center;
}
.mainscreen>article>table[data-v-a7cecd9c] {
    margin-top: 50PX;
}
table[data-v-a7cecd9c] {
    border-collapse: collapse;
}
tbody[data-v-a7cecd9c] {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}
th[data-v-a7cecd9c] {
    background-color: #f0e6d2;
    color: #010a13;
    font-size: 13px;
}
tr[data-v-a7cecd9c] {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
}
td[data-v-a7cecd9c] {
    background-color: inherit;
    border: 1px solid #1e282d;
    text-align: center;
    font-size: 14px;
    /* text-align: justify; */
}
@media screen and (max-width: 850px){
.mainscreen[data-v-a7cecd9c] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.side-bar-show[data-v-b4d17904] {
    right: 0;
    bottom: 0;
    display: flex;
    position: absolute;
    background-color: #010a13;
    align-content: center;
    border: 1px solid #1e282d;
    border-top-width: 0;
    text-align: center;
    /* transition-duration: 0.4s; */
    transition: all 0.20s;
    transition-timing-function: ease-in;
    z-index: 2;
    flex-direction: column;
    overflow-y:auto;
    padding-top:20px;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.side-bar-show div[data-v-b4d17904] {
    margin: 6.6px 26.6px;
    text-align: justify;
    padding: 2%;
    overflow-x: auto;
    overflow-y: hidden;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    color: #cdbd91;
    flex-grow: 0;
    flex-shrink: 0;
    z-index: 2;
    position: relative;
}
div.location-desc[data-v-b4d17904]{
  z-index: 3;
  overflow: unset;
}
.location-desc > p[data-v-b4d17904]:first-of-type{
  margin-top:140px;
}
.backgroundHex[data-v-b4d17904]{
  position: absolute;
  width: calc(100% - 40px);
  height: 400px;
  background-image: url("https://www.vagabonds-jdr.fr/assets/images/illustration/hex/Oceans1.jpg");
  background-size: cover;
  background-position: center;
  margin-top: -20px;
  right: 0;
}
.backgroundHex span[data-v-b4d17904]{
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: 1;
}
.backgroundHex span[data-v-b4d17904]:first-of-type
{
  background: linear-gradient(90deg, rgba(1,10,19,1) 0%, rgba(1,10,19,0.25) 30%, rgba(1,10,19,0.25) 100%);
}
.backgroundHex span[data-v-b4d17904]:nth-of-type(2)
{
  background: linear-gradient(0deg, rgba(1,10,19,1) 0%, rgba(1,10,19,.5) 40%, rgba(1,10,19,0.25) 50%, rgba(1,10,19,0.25) 100%);
}
.GM-part div[data-v-b4d17904] {
	margin-left: 0;
	margin-right: 0;
}
h3[data-v-b4d17904]{
  text-align: center;
  text-transform: uppercase;
  color: #f0e6d2;
  letter-spacing: 0.05em;
}
.topTitle[data-v-b4d17904]{
  padding-left: 15px;
}
.subTitle[data-v-b4d17904]{
  text-transform: capitalize;
  opacity: 0.75;
  font-weight: normal;
  margin-top: -0.85rem;
  padding-left: 15px;
}
.gm-desc[data-v-b4d17904]{
  margin-bottom: 0;
}
.gm-desc[data-v-b4d17904] a {
    font-weight: bolder;
}
.quest[data-v-b4d17904] {
    border: solid 1px #010a13;
    line-height: 1.8;
    font-size: 0.8em;
    cursor: pointer;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    color: #cdbd91;
    padding: 0 8% 0 0;
    margin: 0;
    height: 130px;
}
.quest[data-v-b4d17904]:focus-visible {
    outline: 1px white solid;
}
.quest h3[data-v-b4d17904] {
    line-height: 100%;
    font-weight: bold;
    line-height: 100%;
    font-size: 1.1em;
    padding: 8% 0 0 0;
    margin-top: 10px;
}
.quest[data-v-b4d17904]:hover {
    border: solid 1px #ccc3a7;
}
h4[data-v-b4d17904]{
    font-size: 16px;
    font-family: 'Spartan', sans-serif;
    color: #f0e6d2;
    text-align:center;
    font-weight:bold;
    margin-top:14px;
    margin-bottom:14px;
    display:block;
}
span.toggleBtn[data-v-b4d17904] {
    position: absolute;
    left: 16px;
    top: 30px;
    transform: rotateZ(45deg);
    background-color: #010a13;
    height: 30px;
    width: 30px;
    border: 1px solid red;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
    transition: all 0.2s;
    z-index: 10;
}
span.toggleBtn[data-v-b4d17904]:hover {
	transform: rotateZ(405deg) !important;
}
span.toggleBtn:hover button[data-v-b4d17904] {
	transform: rotateZ(-405deg) !important;
}
.toggleBtn > button[data-v-b4d17904] {
    background-color: transparent;
    color: red;
    transform: rotateZ(-45deg);
    border: 0px solid;
    margin: auto;
    width: 30px;
    height: 30px;
    cursor:pointer;
    outline:none;
    text-decoration: none;
    transition: all 0.2s;
}
.open-ai[data-v-b4d17904] {
    margin: 13px 10px 10px 10px;
    text-align: center;
    width: calc(100% - 20px);
    background: linear-gradient(0deg, #613908, #977413);
    border: 1px solid #cdbd91;
    color: #cdbd91;
    font-weight: bolder;
    padding: 8px 3px;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
    text-transform: uppercase;
    font-size: 0.8rem;
}
.gm-desc[data-v-b4d17904] .reminder > span:first-of-type{
  font-weight: bolder;
  cursor: pointer;
}
.gm-desc[data-v-b4d17904] .reminder > span:nth-of-type(2){
  display: none;
  font-style: italic;
  background-color: black;
  border: 1px solid #6c757d;
  padding: 10px 15px;
  position: absolute;
}
.gm-desc[data-v-b4d17904] .reminder:hover > span:nth-of-type(2){
  display: block;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character,
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).monster{
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 8px 10px;
    filter: drop-shadow(-2px 0px 0px #000) drop-shadow(2px 0px 0px #000) drop-shadow(0px -2px 0px #000) drop-shadow(0px 2px 0px #000) drop-shadow(0 0 10px rgba(0, 0, 0, 0.8));
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character{
  padding: 0;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character p,
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).monster p {
    display: block;
    text-align: left;
    align-self: self-start;
    margin-bottom: 0;
    margin-left: 8px;
}
.gm-desc[data-v-b4d17904] .reminder:hover span:nth-of-type(2).character p{
  margin-top: 6px;
  font-style: normal;
}
.gm-desc[data-v-b4d17904] hr::before,
.gm-desc[data-v-b4d17904] hr::after{
    content: '';
    width: 12px;
    height: 12px;
    transform: rotateZ(45deg);
    background-color: transparent;
    border: 1px solid #6c757d;
    display: block;
    position: absolute;
    top: -6px;
}
.gm-desc[data-v-b4d17904] hr::before{
    left: -14px;
}
.gm-desc[data-v-b4d17904] hr::after{
    right: -14px;
}
.gm-desc[data-v-b4d17904] hr{
    border-top: 1px solid #6c757d;
    position: relative;
    width: calc(70% - 28px);
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    opacity: .6;
}
.gm-desc[data-v-b4d17904] a {
    color: #0595a9;
}
@media screen and (min-width: 850px){
.side-bar-show[data-v-b4d17904] {
    width: 400px;
    height: calc(100% - 30px);
}
.masquee[data-v-b4d17904] {
    right: -400px;
}
}
@media screen and (max-width: 850px){
.side-bar-show[data-v-b4d17904] {
    max-height: 100%;
    padding-top:70px;
    width: 100%;
    border-left-width: 0px;
}
.player-mode .topTitle[data-v-b4d17904]{
  padding-left: 0;
  padding-right: 20px;
}
.player-mode[data-v-b4d17904]{
  padding-top:5px;
  border-top-width: 1px;
}
.masquee[data-v-b4d17904] {
    bottom: -100%;
}
span.toggleBtn[data-v-b4d17904] {
    top:25px;
    right: 26px;
    left: unset;
}
.player-mode span.toggleBtn[data-v-b4d17904] {
    height: 25px;
    width: 25px;
}
.player-mode .toggleBtn > button[data-v-b4d17904] {
    width: 25px;
    height: 25px;
    font-size: 0.9rem;
}
.player-mode span.toggleBtn[data-v-b4d17904] {
    top:20px;
}
.backgroundHex[data-v-b4d17904]{
  margin-top: -70px;
}
}


.select[data-v-3fe8225c]{
    position: relative;
    display: inline-block;
    width: 250px;
}
.selected[data-v-3fe8225c]{
    color: #ffffff;
    padding: 8px 16px;
    border: 1px solid #cdbd91;
    cursor: pointer;
    user-select: none;
    display: block;
    background-color: rgba(3, 12, 21, 0.9);
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
}
.open[data-v-3fe8225c]{
    display: block;
    position: absolute;
    background-color: rgba(3, 12, 21, 0.9);
    border: 1px solid #cdbd91;
    border-color: rgba(0, 0, 0, 0.1) #cdbd91 #cdbd91 #cdbd91;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 99;
    padding-inline-start:0;
    width: 100%;
    max-height: 500px;
    overflow-y: auto;
}
.open li[data-v-3fe8225c],
.closed li[data-v-3fe8225c]{
    color: #ffffff;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent;
    cursor: pointer;
    user-select: none;
    list-style: none;
    display: flex;
    flex-direction: row;
    align-items: center;
}
.selected img[data-v-3fe8225c],
li img[data-v-3fe8225c]{
    margin-right: 5px;
}
.same-as-selected[data-v-3fe8225c]{
    background-color: blue;
}
.closed[data-v-3fe8225c]{
    display: none;
}
@media screen and (max-width: 850px){
}


.edit-menu[data-v-535fe2b0]{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
input[type="radio"] + label[data-v-535fe2b0]{
    width: 25%;
    border: 1px solid #cdbd91;
    padding: 2px 5px;
}
input[type="radio"]:checked + label[data-v-535fe2b0]{
    border-color: #cdbd91c2;
    background-color: rgba(0, 108, 125,0.5);
    color: rgb(240, 230, 210);
}
.tab[data-v-535fe2b0]{
    display: none;
}
input[type="radio"][data-v-535fe2b0]{
    display: none;
}
input[type="radio"]:checked + label + .tab[data-v-535fe2b0]{
    display: block;
    order: 4;
}
textarea[data-v-535fe2b0]{
    overflow: auto;
    resize: vertical;
    width: 100%;
    min-height: 500px;
    margin-top: 5px;
}
@media screen and (max-width: 850px){
}


.modal-backdrop[data-v-0d2183cc] {
    background-color: rgba(3, 12, 21, 0.85);
}
.modal-dialog[data-v-0d2183cc]{
    border-style: solid;
    border-color: #cdbd91;
    border-image: linear-gradient(rgba(131,128,150,0), #cdbd91,rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 0 1px;
    border-width: 1px;
    margin: 10% 20%;
    max-width:100%;
    color: #cdbd91c2;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.modal-content[data-v-0d2183cc]{
    background-color:unset;
    border-radius: unset;
    border:unset;
}
header[data-v-0d2183cc]{
    display: block;
    width: 100%;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: solid 1px #cdbd91;
}
header h3[data-v-0d2183cc],
header h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    text-align: center;
    position: relative;
    color: #f0e6d2;
}
h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    margin: 0;
    position: fixed;
    padding-left: 85%;
    padding-bottom: 30px;
    letter-spacing: 0.7px;
    text-align: right;
    font-family: 'MedievalSharp', cursive;
    text-transform: uppercase;
}
article[data-v-0d2183cc] h3{
    font-size:1.17em;
    font-weight:bold;
}
article[data-v-0d2183cc] h3 a{
    text-transform: capitalize;
    text-decoration: underline;
}
header h1[data-v-0d2183cc],
.edit-h1[data-v-0d2183cc] {
    padding: 8% 10% 0 10%;
}
header input[data-v-0d2183cc]{
    position: relative;
    display: block;
    background-color: transparent;    
    z-index: 1;
    margin: auto;
    color: #cdbd91;
    border-width: 0;
    border-bottom-width: 1px;
    width: 52em;
    max-width: 80%;
    padding: 2% 0 5px 0;
    margin-bottom: calc(8% - 5px);
}
.edit-h1[data-v-0d2183cc] {
    position: relative;
    margin-block-start: 0.67em;
    margin-block-end: 0.67em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    unicode-bidi: isolate;
    font-weight: 500;
    line-height: 1.2;
    font-size: 2.5rem;
    margin: auto;
    text-align: center;
    width: 15em;
    padding-left: 0;
    padding-right: 0;
}
header input[data-v-0d2183cc]:focus-visible {
        outline: none;
        border-color: brown !important;
}
header h3[data-v-0d2183cc] {
    padding: 2% 10% 8% 10%;
}
article[data-v-0d2183cc] {
    background-color: rgba(3, 12, 21, 0.9);
    padding-bottom: 7em !important;
}
.edit[data-v-0d2183cc],
.save[data-v-0d2183cc]{
    width: fit-content;
    padding: 2px 8px;
    background: transparent;
    color: #cdbd91c2;
    border: 1px solid wheat;
    border-color: #cdbd91;
    float: right;
}
.btn-bar[data-v-0d2183cc]{
    display: flex;
    justify-content: flex-end;
}
.btn-bar > button[data-v-0d2183cc]{
    margin-left: 4px;
}
article[data-v-0d2183cc],
article[data-v-0d2183cc] p {
    margin: 0;
    padding: 1em 10%;
}
article[data-v-0d2183cc] p {
    text-align: justify;
}
table[data-v-0d2183cc] {
    border-collapse: collapse;
}
article[data-v-0d2183cc] table th {
    background-color: #f0e6d2;
    color: #010a13;
    font-size: 12px;
    padding: 2px 8px;
    text-align: left;
    width: 30%;
}
article[data-v-0d2183cc] table td {
	background-color: inherit;
	border: 1px solid #1e282d;
	text-align: center;
	font-size: 12px;
    padding: 2px 8px;
}
article[data-v-0d2183cc] .narratation {
  background: rgb(17, 27, 38);
  padding: 10px 10px 15px;
  margin-bottom: 10px;
}
article[data-v-0d2183cc] .reminder > span:first-of-type,
div[data-v-0d2183cc] .reminder > span:first-of-type,
p[data-v-0d2183cc] .reminder > span:first-of-type{
  font-weight: bolder;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-style: dashed;
  color: #cdbd91;
}
article[data-v-0d2183cc] .reminder > span:nth-of-type(2),
div[data-v-0d2183cc] .reminder > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder > span:nth-of-type(2){
  display: none;
  font-style: italic;
  background-color: black;
  border: 1px solid #6c757d;
  padding: 10px 15px;
  position: absolute;
  right: 110px;
  left: 110px;
}
article[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
div[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2),
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2){
  display: flex;
}
article[data-v-0d2183cc] .character,
article[data-v-0d2183cc] .monster,
article[data-v-0d2183cc] .item{
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    border-top: 1px solid #6c757d33;
    padding-top: 15px;
}
article[data-v-0d2183cc] div:first-of-type.character,
article[data-v-0d2183cc] div:first-of-type.monster,
article[data-v-0d2183cc] div:first-of-type.item{
    border-color: transparent;
}
article[data-v-0d2183cc] .character > p,
article[data-v-0d2183cc] .character > img,
article[data-v-0d2183cc] .monster > p,
article[data-v-0d2183cc] .monster > img,
article[data-v-0d2183cc] .item > p,
article[data-v-0d2183cc] .item > img
{
    display: block;
}
article[data-v-0d2183cc] .character > img,
article[data-v-0d2183cc] .monster > img
{
    padding-top: 5px;
    padding-bottom: 20px;
}
article[data-v-0d2183cc] .item > img
{
    padding-top: 0;
    padding-bottom: 0;
}
article[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img,
div[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img,
p[data-v-0d2183cc] .reminder:hover > span:nth-of-type(2) > img{
    padding-top: 0;
    padding-bottom: 0;
}
article[data-v-0d2183cc] .reminder:hover p,
div[data-v-0d2183cc] .reminder:hover p,
p[data-v-0d2183cc] .reminder:hover p{
    align-self: center;
}
article[data-v-0d2183cc] .item p:first-letter,
div[data-v-0d2183cc] .item p:first-letter,
p[data-v-0d2183cc] .item p:first-letter,
article[data-v-0d2183cc] .item div:first-letter,
div[data-v-0d2183cc] .item div:first-letter,
p[data-v-0d2183cc] .item div:first-letter{
    text-transform: uppercase;
}
article[data-v-0d2183cc] .character p,
article[data-v-0d2183cc] .monster p,
article[data-v-0d2183cc] .item p {
    display: block;
    padding: 0px 20px 10px !important;
    align-self: self-start;
}
article[data-v-0d2183cc] .character strong,
article[data-v-0d2183cc] .monster strong,
article[data-v-0d2183cc] .item strong {
    color: #cdbd91;
}
article[data-v-0d2183cc] .character table,
article[data-v-0d2183cc] .monster table,
article[data-v-0d2183cc] .item table {
    margin: 5px 20px;
    width: 100%;
}
article[data-v-0d2183cc] .character > div,
article[data-v-0d2183cc] .monster > div {
    display: flex;
    flex-direction: column;
    align-items: self-start;
    width: 100%;
}
article[data-v-0d2183cc] .item > div {
    display: block;
    width: 100%;
    padding-left: 15px;
}
article[data-v-0d2183cc] hr::before,
article[data-v-0d2183cc] hr::after{
    content: '';
    width: 12px;
    height: 12px;
    transform: rotateZ(45deg);
    background-color: transparent;
    border: 1px solid #6c757d;
    display: block;
    position: absolute;
    top: -6px;
}
article[data-v-0d2183cc] hr::before{
    left: -14px;
}
article[data-v-0d2183cc] hr::after{
    right: -14px;
}
article[data-v-0d2183cc] hr{
    border-top: 1px solid #6c757d;
    position: relative;
    width: calc(70% - 28px);
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    opacity: .6;
}
article[data-v-0d2183cc] h1,
article[data-v-0d2183cc] h2,
article[data-v-0d2183cc] h3,
article[data-v-0d2183cc] h4,
article[data-v-0d2183cc] h5{
    color: #cdbd91;
}
article[data-v-0d2183cc] .youtube{
    margin: 30px auto; 
    display: block;
    max-width: 94%;
}
article[data-v-0d2183cc] .youtube-captions{
    text-align: center;
    margin-top: -30px;
    font-style: italic;
}
@media screen and (max-width: 850px){
.modal-dialog[data-v-0d2183cc]{
        margin: 10px 20px;
}
article[data-v-0d2183cc],
    article[data-v-0d2183cc] p {
        margin: 0;
        padding: 1em 3%;
}
.modal-content[data-v-0d2183cc] {
        /*margin-bottom: 12em;*/
        margin-top: 2.5em;
}
.modal.show .modal-dialog[data-v-0d2183cc] {
        margin-bottom: 12em;
}
article[data-v-0d2183cc] .character,
    article[data-v-0d2183cc] .monster{
        flex-direction: column;
        align-items: center;
}
article[data-v-0d2183cc] .character p, 
    article[data-v-0d2183cc] .monster p {
    padding: 10px 20px 10px !important;
}
}


.mapContainer[data-v-09ddd990] {
    height: calc(100vh - 30px);
    overflow: scroll;
    position: relative;
}
.worldMap[data-v-09ddd990]
{
  width: 2477px;
  height: 2929px;
  background-image: url('https://www.vagabonds-jdr.fr/assets/images/illustration/map/map03.png');
  background-position: cover;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  padding-left: 50px;
}
.viewModeOn[data-v-09ddd990],
.viewModeOff[data-v-09ddd990]{
  padding-top: 0;
  position :absolute;
  top:60px;
  left:20px;
  z-index:5;
  height: 32px;
  width: 90px;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid brown;
  cursor: pointer;
}
.viewModeOff div[data-v-09ddd990],
.viewModeOn div[data-v-09ddd990]{
  width: 180px;
  display: flex;
  flex-wrap: nowrap;
  transition: all .5s;
  position: relative;
}
.viewModeOff span[data-v-09ddd990],
.viewModeOn span[data-v-09ddd990]{
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: white;
  border:1px solid transparent;
  z-index: 3;
  filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.5));
}
.viewModeOff div[data-v-09ddd990]{
  margin-left: -60px;
}
.viewModeOn label[data-v-09ddd990],
.viewModeOff label[data-v-09ddd990] {
	width: 90px;
	height: 32px;
  text-align: center;
	background-color: white;
  color: brown;
  margin-bottom: 0;
  margin-left: -15px;
  margin-right: 0;
  cursor: pointer;
}
.viewModeOn label p[data-v-09ddd990],
.viewModeOff label p[data-v-09ddd990]{
  margin: 7px auto;
  width: calc(100% - 40px);
  font-size: 0.85em;
}
.viewModeOn label[data-v-09ddd990]:first-of-type,
.viewModeOff label[data-v-09ddd990]:first-of-type {
	background-color: brown;
  color: white;
  margin-right: -15px;
}
.viewModeOn label:first-of-type p[data-v-09ddd990],
.viewModeOff label:first-of-type p[data-v-09ddd990]{
  margin-right: 15px;
}
.viewModeOn input[data-v-09ddd990],
.viewModeOff input[data-v-09ddd990] {
	display: none;
}
img[data-v-09ddd990]{
  width: 500px;
}
.hex-col[data-v-09ddd990] {
    margin-top: 22.5px;
}
.hex-col[data-v-09ddd990]:nth-of-type(2n+1) {
    padding-top: 61.75px;
}
.hexagone[data-v-09ddd990] {
    width: 71px;
    height: 123.5px;
    z-index: 2;
    color: white;
    text-align: center;
    background-color: rgba(255,0,0,0);
    border:0px solid red;
    position: relative;
    margin: 1px 18px;
    padding-top: 2px;
}
.shinrai[data-v-09ddd990]{
  background-color: rgba(255, 238, 0, 0.1);
}
.seniaux[data-v-09ddd990]{
  background-color: rgba(106, 6, 145, 0.4);
}
.vidieu[data-v-09ddd990]{
  background-color: rgba(255, 187, 0, 0.1);
}
.servenatif[data-v-09ddd990]{
  background-color: rgba(0, 4, 255, 0.1);
}
.mesaives[data-v-09ddd990]{
  background-color: rgba(16, 147, 57, 0.4);
}
.hexagone > span[data-v-09ddd990]{
  position: absolute;
}
.hexagone > span[data-v-09ddd990]:first-of-type {
    font-size: 22px;
    top: 2px;
    left: 0;
    width: 71px;
    font-weight: lighter;
}
.player[data-v-09ddd990] {
    left: 0;
    font-size: 5em;
    color: brown;
    width: 100%;
    top: 6px;
}
.cityName1[data-v-09ddd990],
.cityName2[data-v-09ddd990],
.cityName3[data-v-09ddd990]
 {
	z-index: 3;
  color:white;
	bottom: 45%;
	margin-bottom: 0;
	padding-bottom: 0;
	text-align: center;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.8));
  letter-spacing: -1px;
	left: -113px;
}

/*.hexagone-select .cityName1,
.hexagone-select .cityName2,
.hexagone-select .cityName3{
  color:white;
}*/
.cityName1[data-v-09ddd990] {
	font-size: 2em;
	text-transform: uppercase;
	width: 300px;
  font-weight: bolder;
  font-family: 'MedievalSharp', cursive;
}
.cityName2[data-v-09ddd990] {
	font-size: 1.8em;
	text-transform: capitalize;
	width: 300px;
  font-weight: bolder;
}
.cityName3[data-v-09ddd990] {
	font-size: 1.4em;
	text-transform: capitalize;
	width: 300px;
}
.hexagone[data-v-09ddd990]:hover{
  background-color: rgba(255,0,0,.3);
  /*color: black;*/
}
.hexagone[data-v-09ddd990]::before,
.hexagone[data-v-09ddd990]::after {
    width: 0;
    height: 123.5px;
    content: "";
    display: inline-block;
    position: absolute;
    border: 34px solid transparent;
    border-top-width: 61.75px;
    border-bottom-width: 61.75px;
    top:0;
}
.shinrai[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(255, 238, 0, 0.1);
  pointer-events: none;
}
.shinrai[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(255, 238, 0, 0.1);
  pointer-events: none;
}
.seniaux[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(106, 6, 145, 0.4);
  pointer-events: none;
}
.seniaux[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(106, 6, 145, 0.4);
  pointer-events: none;
}
.vidieu[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(255, 187, 0, 0.1);
  pointer-events: none;
}
.vidieu[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(255, 187, 0, 0.1);
  pointer-events: none;
}
.servenatif[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(0, 4, 255, 0.1);
  pointer-events: none;
}
.servenatif[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(0, 4, 255, 0.1);
  pointer-events: none;
}
.mesaives[data-v-09ddd990]::before{
  right: 100%;
  border-right-color: rgba(16, 147, 57, 0.4);
  pointer-events: none;
}
.mesaives[data-v-09ddd990]::after{
  left: 100%;
  border-left-color: rgba(16, 147, 57, 0.4);
  pointer-events: none;
}
.hexagone[data-v-09ddd990]:hover::before{
  right: 100%;
  border-right-color: rgba(255,0,0,.3);
}
.hexagone[data-v-09ddd990]:hover::after{
  left: 100%;
  border-left-color: rgba(255,0,0,.3);
}
.hexagone-select[data-v-09ddd990],
.hexagone-select[data-v-09ddd990]:hover{
  background-color: rgba(255,0,0,.73);
  /*color: black;*/
}
.hexagone-select[data-v-09ddd990]::before,
.hexagone-select[data-v-09ddd990]:hover::before
{
  right: 100%;
  border-right-color: rgba(255,0,0,.73);
}
.hexagone-select[data-v-09ddd990]::after,
.hexagone-select[data-v-09ddd990]:hover::after{
  left: 100%;
  border-left-color: rgba(255,0,0,.73);
}
.displayOnHover[data-v-09ddd990] {
    display: none;
}
.hexagone-select .displayOnHover[data-v-09ddd990],
.hexagone:hover .displayOnHover[data-v-09ddd990] {
    display: block;
}
@media screen and (max-width: 850px){
.mapContainer[data-v-09ddd990] {
    height: 100vh;
}
.viewModeOn[data-v-09ddd990],
  .viewModeOff[data-v-09ddd990]{
    left:unset;
    top:25px;
    right:calc(50% - 45px);
    height: 34px;
}
.viewModeOn label p[data-v-09ddd990],
  .viewModeOff label p[data-v-09ddd990]{
    width: calc(100% - 30px);
}
}


.mainscreen[data-v-3fa7c049] {
    margin: 0 8% 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2% 0 2% 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 0px;
    display: block;
    position: relative;
}
article[data-v-3fa7c049] {
    padding-left: 5px;
    padding-right: 5px;
    text-align: center;
    display: grid;
    grid-template-columns: 1fr 380px;
    padding-top: 0px;
}
.details[data-v-3fa7c049]{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border:1px black solid;
  background-size: cover;
  background-position: center;
  padding: 160px 5px 30px;
}
h1[data-v-3fa7c049]{
  margin-top: 50px;
}
h3[data-v-3fa7c049]{
  text-align:center;
}
ul[data-v-3fa7c049]{
  list-style: none;
  padding-block-start: 0;
  padding-inline-start: 0;
  margin-bottom: 0 ;
}
ul[data-v-3fa7c049]:not(:first-of-type){
  border:1px white solid;
  min-height: 500px;
}
li[data-v-3fa7c049]{
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 250px 180px 40px;
  text-align: center;
  padding: 2px 7px;
  padding-right: 15px;
}
ul:not(:first-of-type)>li[data-v-3fa7c049]{
  cursor: pointer;
}
li>span[data-v-3fa7c049]:first-of-type{
  text-align: left;
}
.player-line[data-v-3fa7c049]{
  background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 10%, rgba(0,0,0,.75) 90%, rgba(0,0,0,0) 100%);
  margin: 1px;
  display: grid;
  width: 100%;
  padding: 5px;
  grid-template-columns: 36px 1fr;
  align-items: center;
  height: 46px;
  position: relative;
}
br+.player-line[data-v-3fa7c049]{
  margin-top: 20px;
}
.player-line > a[data-v-3fa7c049]{
  width: 36px;
  height: 36px;
  border: 1px solid black;
  background: radial-gradient(circle, rgb(27, 27, 27) 0%, rgb(27, 27, 27) 5%, rgb(10, 10, 10) 100%);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  display: block;
}
a.img-player[data-v-3fa7c049]{
  border-color: #f0e6d2;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
}
.player-line > span[data-v-3fa7c049]:first-of-type{
  text-align: left;
  padding-left: 10px;
  padding-top: .4em;
}
.player-details[data-v-3fa7c049]{
  width: 132px;
  height: 70px;
  display: none;
  position: absolute;
  background-color: black;
  left: -147px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
  border: 1px solid #1e282d;
  border-right-width: 0;
  border-left-width: 0;
}
.player-details[data-v-3fa7c049]::after{
  width: 25px;
  height: 25px;
  display: block;
  position: absolute;
  border: 12.5px solid transparent;
  border-left-color: black;
  left: 132px;
  content: '';
  z-index: 2;
  top: 22.5px;
}
.player-details>div[data-v-3fa7c049]{
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(-45deg, rgba(0,0,0,1) 19%, rgba(0,0,0,0.8) 40%, rgba(0,0,0,0) 100%);
  z-index: 0;
  top: 0;
}
.player-details>p[data-v-3fa7c049]{
  z-index: 1;
  position: relative;
  text-transform: capitalize;
  margin-top: 30px;
  font-size: 1.1em;
}
.player-line:hover > .player-details[data-v-3fa7c049]{
display: block;
}
.selected[data-v-3fa7c049]{
  background-color: darkblue;
}
.btn-game[data-v-3fa7c049]{
  padding: 15px 15px 30px;
}
/*.btn-game button{
  border:solid 1px #f0e6d2;
  color: #f0e6d2;
  background-color: brown;
  font-size: 1.5rem;
  padding: 4px 15px 4px;
}*/
.btn.btn-success[data-v-3fa7c049] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-3fa7c049]:not(:disabled):hover,
.btn-success[data-v-3fa7c049]:not(:disabled):focus,
.btn-success[data-v-3fa7c049]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-3fa7c049]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-3fa7c049] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@media screen and (max-width: 850px){
.mainscreen[data-v-3fa7c049] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.me span[data-v-744711ac]{
    color: yellow !important;
}
.mainscreen[data-v-744711ac] {
    margin: 0 8% 0 15%;
    background-color: #010a13;
    overflow: auto;
    z-index: 0;
    padding: 2% 0 2% 2%;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
    padding-bottom: 0px;
    display: block;
    position: relative;
}
article[data-v-744711ac] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 15px 10%;
    grid-template-rows: 2em 6em 1fr 50px;
    height: calc(100vh - 30px);
}
.details[data-v-744711ac]{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border:1px black solid;
  background-size: cover;
  background-position: center;
  padding: 160px 5px 30px;
}
h1[data-v-744711ac] {
    margin-top: 50px;
    grid-column-start: 1;
    grid-column-end: 3;
    display: block;
}
h3[data-v-744711ac]{
  text-align:center;
}
ul[data-v-744711ac] {
  list-style: none;
  padding-block-start: 0;
  padding-inline-start: 0;
  margin-bottom: 0 ;
}
.left-panel[data-v-744711ac], .right-panel[data-v-744711ac] {
  padding: 17px 5px;
}
.left-panel[data-v-744711ac] {
  grid-row-start: 3;
}
.right-panel[data-v-744711ac]{
  grid-row-start: 3;
  grid-column-start: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
ul[data-v-744711ac]:not(:first-of-type){
  border:1px white solid;
  min-height: 500px;
}
li[data-v-744711ac]{
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 250px 180px 40px;
  text-align: center;
  padding: 2px 7px;
  padding-right: 15px;
}
.right-panel li[data-v-744711ac]{
  grid-template-columns: 1fr 50px;
}
ul:not(:first-of-type)>li[data-v-744711ac]{
  cursor: pointer;
}
li>span[data-v-744711ac]:first-of-type{
  text-align: left;
}
.player-line[data-v-744711ac]{
  background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 10%, rgba(0,0,0,.75) 90%, rgba(0,0,0,0) 100%);
  margin: 1px;
  display: grid;
  width: 100%;
  padding: 5px;
  padding-right: 25px;
  grid-template-columns: 36px 1fr 30px;
  align-items: center;
  height: 46px;
  position: relative;
}
br+.player-line[data-v-744711ac]{
  margin-top: 20px;
}
.player-line > a[data-v-744711ac]{
  width: 36px;
  height: 36px;
  border: 1px solid black;
  background: radial-gradient(circle, rgb(27, 27, 27) 0%, rgb(27, 27, 27) 5%, rgb(10, 10, 10) 100%);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  display: block;
}
a.img-player[data-v-744711ac]{
  border-color: #f0e6d2;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
}
.player-line > span[data-v-744711ac]:first-of-type{
  text-align: left;
  padding-left: 10px;
  padding-top: .4em;
}
.player-details[data-v-744711ac]{
  width: 132px;
  height: 70px;
  display: none;
  position: absolute;
  background-color: black;
  left: -147px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url(https://vagabonds-jdr.github.io/images/events/placeholder.jpg);
  border: 1px solid #1e282d;
  border-right-width: 0;
  border-left-width: 0;
}
.player-details[data-v-744711ac]::after{
  width: 25px;
  height: 25px;
  display: block;
  position: absolute;
  border: 12.5px solid transparent;
  border-left-color: black;
  left: 132px;
  content: '';
  z-index: 2;
  top: 22.5px;
}
.player-details>div[data-v-744711ac]{
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(-45deg, rgba(0,0,0,1) 19%, rgba(0,0,0,0.8) 40%, rgba(0,0,0,0) 100%);
  z-index: 0;
  top: 0;
}
.player-details>p[data-v-744711ac]{
  z-index: 1;
  position: relative;
  text-transform: capitalize;
  margin-top: 30px;
  font-size: 1.1em;
}
.player-line:hover > .player-details[data-v-744711ac]{
display: block;
}
.selected[data-v-744711ac]{
  background-color: darkblue;
}
.btn-game[data-v-744711ac]{
  padding: 15px 15px 30px;
}
/*.btn-game button{
  border:solid 1px #f0e6d2;
  color: #f0e6d2;
  background-color: brown;
  font-size: 1.5rem;
  padding: 4px 15px 4px;
}*/
.btn.btn-success[data-v-744711ac] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-744711ac]:not(:disabled):hover,
.btn-success[data-v-744711ac]:not(:disabled):focus,
.btn-success[data-v-744711ac]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-744711ac]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-744711ac] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
@media screen and (max-width: 850px){
.mainscreen[data-v-744711ac] {
        padding-top: 50px;
        top: 0;
        width: 100%;
        left: 0%;
        right: 0%;
        bottom: 0;
        margin: 0;
}
}


.modal-content[data-v-77cef5c7] {
	background-color: transparent;
    border-width: 0;
}
.modal-footer[data-v-77cef5c7] {
	border-width: 0;
}
.btn.btn-success[data-v-77cef5c7] {
    margin: auto;
	background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
  border-color: brown;
  border-radius: 5px;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
  border-image-repeat: stretch;
  border-image-width: 1px 0;
  padding: 4px 15px 4px;
  font-size: 1.5rem;
  color: #ff0f0f;
  letter-spacing: 2px;
  font-family: 'MedievalSharp', cursive;
  outline:none;
  box-shadow: none;
}
.btn-success[data-v-77cef5c7]:not(:disabled):hover,
.btn-success[data-v-77cef5c7]:not(:disabled):focus,
.btn-success[data-v-77cef5c7]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-77cef5c7]:not(:disabled):active, 
.show>.btn-success.dropdown-toggle[data-v-77cef5c7] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.chose-option[data-v-77cef5c7]{
    height: 90%;
}
.chose-option .modal-content[data-v-77cef5c7]
{
    height: 100%;
    justify-content: space-around;
}
.chose-option .modal-body[data-v-77cef5c7]
{
    flex: unset;
}
@media screen and (max-width: 850px){
.chose-option[data-v-77cef5c7]{
    height: 60%;
    margin-top: 18%;
    margin-bottom: 18%;
}
.chose-option .modal-content[data-v-77cef5c7]
    {
        justify-content: space-between;
}
}
@media screen and (max-width: 850px) and (max-height: 700px){
.chose-option[data-v-77cef5c7]{
    height: 80%;
}
}


form[data-v-2216acb0]{
    text-align: center;
}
input[type="text"][data-v-2216acb0] {
      background-color: black;
        color: white;
        border: 0px solid white;
        border-bottom-width: 1px;
        text-align: center;
        font-size: 1.5em;
        width: 10vw;
        font-family: 'MedievalSharp', cursive;
        letter-spacing: 0.10em;
        background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
.modal-content[data-v-2216acb0]{
    background-color: #010a13;
    overflow: auto;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
}
.btn.btn-success[data-v-2216acb0] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-2216acb0]:not(:disabled):hover,
.btn-success[data-v-2216acb0]:not(:disabled):focus,
.btn-success[data-v-2216acb0]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-2216acb0]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-2216acb0] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.publicSelect[data-v-2216acb0]{
    display: grid;
    margin: 10px auto;
    grid-template-columns: repeat(2,1fr);
    width: 80px;
    height: 40px;
}
.publicSelect input[data-v-2216acb0]{
    display: none;
}
.publicSelect label[data-v-2216acb0]{
    display: block;
    width: 100%;
    border: 1px solid white;
    background-color: white;
}
.publicSelect label[data-v-2216acb0]:first-of-type{
    border-radius: 50% 0 0 50%;
}
label span[data-v-2216acb0] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-2216acb0]{
    background-color: brown;
}
.publicSelect label[data-v-2216acb0]:last-of-type{
    border-radius: 0 50% 50% 0;
}


form[data-v-2206bfb6]{
    text-align: center;
}
input[type="text"][data-v-2206bfb6] {
      background-color: black;
        color: white;
        border: 0px solid white;
        border-bottom-width: 1px;
        text-align: center;
        font-size: 1.5em;
        width: 10vw;
        font-family: 'MedievalSharp', cursive;
        letter-spacing: 0.10em;
        background: linear-gradient(0deg, rgb(155 153 153 / 20%) 0%, rgba(11,20,27,0) 100%)
}
.modal-content[data-v-2206bfb6]{
    background-color: #010a13;
    overflow: auto;
    padding-top: 0px;
    border-left-style: solid;
    border-right-style: solid;
    border-width: 0px;
    border-color: #ccc3a7;
}
.btn.btn-success[data-v-2206bfb6] {
    background-color: brown;
    background: linear-gradient(82deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 20%, rgba(0,0,0,.75) 80%, rgba(0,0,0,0) 100%);
    border-color: brown;
    border-radius: 5px;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #a51f1f, #a51f1f, rgba(131,128,150,0)) 27;
    border-image-repeat: stretch;
    border-image-width: 1px 0;
    padding: 4px 15px 4px;
    font-size: 1.5rem;
    color: #ff0f0f;
    letter-spacing: 2px;
    font-family: 'MedievalSharp', cursive;
    outline:none;
    box-shadow: none;
}
.btn-success[data-v-2206bfb6]:not(:disabled):hover,
.btn-success[data-v-2206bfb6]:not(:disabled):focus,
.btn-success[data-v-2206bfb6]:not(:disabled):focus-visible{
  color: #f0e6d2;
  text-shadow: 0px 0px 2px white, 0 0 25px #f0e6d2;
  border-image: linear-gradient(90deg, rgba(131,128,150,0), brown, brown, rgba(131,128,150,0)) 27;
}
.btn-success[data-v-2206bfb6]:not(:disabled):active,
.show>.btn-success.dropdown-toggle[data-v-2206bfb6] {
    color: #f0e6d2;
    border-color: #f0e6d2;
    border-image: linear-gradient(90deg, rgba(131,128,150,0), #f0e6d2, #f0e6d2, rgba(131,128,150,0)) 27;
    background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, rgba(131,128,150,0.02) 100%);
}
.publicSelect[data-v-2206bfb6]{
    display: grid;
    margin: 10px auto;
    grid-template-columns: repeat(2,1fr);
    width: 80px;
    height: 40px;
}
.publicSelect input[data-v-2206bfb6]{
    display: none;
}
.publicSelect label[data-v-2206bfb6]{
    display: block;
    width: 100%;
    border: 1px solid white;
    background-color: white;
}
.publicSelect label[data-v-2206bfb6]:first-of-type{
    border-radius: 50% 0 0 50%;
}
label span[data-v-2206bfb6] {
    display: block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    margin: 1px;
    font-size: 1.6em;
    padding: 4px;
    border: 0px solid brown;
    background-color: black;
}
input[type="radio"]:checked+label span[data-v-2206bfb6]{
    background-color: brown;
}
.publicSelect label[data-v-2206bfb6]:last-of-type{
    border-radius: 0 50% 50% 0;
}


#app[data-v-5bcdaf03]{
  min-height: calc(100% - 30px);
  overflow-y: auto;
}
@media screen and (max-width: 850px){
#app[data-v-5bcdaf03]{
    min-height:calc(100vh - 5em);
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDJCQUEyQjtBQUMvQjs7O0FDa0NBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0lBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUMvQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBOzs7SUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7O0lBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUNyQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQzhEQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7O0lBRUE7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBOzs7RUFHQTtBQUNBO0FBQ0E7O0VBRUE7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtNQUNBO01BQ0E7QUFFQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOzs7QUN2ZUE7QUFFQTs7O0FDMERBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OytCQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OzsrQkFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBQ0E7TUFDQTtNQUNBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBR0E7TUFDQTtBQUNBO0FBRUE7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUdBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO01BQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUdBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztBQy9WQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtDQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO01BQ0E7QUFDQTtBQUNBO0FBRUE7OztBQ3ZJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFHQTtBQUVBO0FBRUE7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7OztBQ25GQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFFQTtBQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBRUE7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBOzs7QUM3Q0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0NBQ0E7Q0FDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0FDck5BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0FDcExBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBOzs7QUNqRkE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFDQTtNQUNBO0FBQ0E7QUFFQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBRUE7UUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtBQUNBO0FBRUE7TUFDQTtBQUNBO0FBQ0E7TUFDQTtBQUNBO0FBQ0E7TUFDQTtBQUNBO0FBQ0E7OztBQzNTQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtBQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUNBOzs7QUM2R0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7RUFFQTtBQUNBO0FBRUE7O0VBRUE7QUFDQTtBQUNBO0NBQ0E7Q0FDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0NBQ0E7QUFDQTtBQUVBO0NBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFFQTs7O0FDcmZBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7QUFHQTs7O0FDaENBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtBQUdBOzs7QUMzQkE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0lBR0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO1FBQ0E7UUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7OztFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTs7OztFQUlBO0FBQ0E7QUFFQTs7O0lBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7OztJQUdBO0FBQ0E7QUFDQTs7Ozs7OztJQU9BO0FBQ0E7QUFDQTs7O0lBR0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7SUFDQTtBQUNBO0FBQ0E7OztJQUdBO0lBQ0E7QUFDQTtBQUVBOzs7SUFHQTtBQUNBO0FBQ0E7Ozs7OztJQU1BO0FBQ0E7QUFDQTs7O0lBR0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTs7O0lBR0E7QUFDQTtBQUNBOzs7SUFHQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBOzs7OztJQUtBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7UUFDQTtBQUNBO0FBRUE7O1FBRUE7UUFDQTtBQUNBO0FBRUE7UUFDQTtRQUNBO0FBQ0E7QUFDQTtRQUNBO0FBQ0E7QUFFQTs7UUFFQTtRQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBRUE7OztBQzdTQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUVBOztDQUVBO0NBQ0E7RUFDQTtDQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBRUE7O0VBRUE7RUFDQTtFQUNBO0FBQ0E7QUFFQTs7Q0FFQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztFQUVBO0FBQ0E7QUFFQTs7Q0FFQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBOzs7O0NBSUE7RUFDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0VBQ0E7RUFDQTtDQUNBO0FBR0E7O0FBRUE7Ozs7RUFJQTtBQUNBO0NBQ0E7Q0FDQTtDQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7Q0FDQTtDQUNBO0NBQ0E7RUFDQTtBQUVBO0FBRUE7Q0FDQTtDQUNBO0NBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOztFQUVBO0VBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0FBQ0E7QUFDQTs7RUFFQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFFQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O0lBRUE7QUFDQTtBQUNBOzs7QUN4VUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7Ozs7OztFQU1BO0FBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0FBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFDQTs7O0FDbk1BO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUVBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7RUFDQTtBQUNBO0FBQ0E7Ozs7OztFQU1BO0FBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0FBRUE7QUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtBQUVBO0FBQ0E7QUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0FBQ0E7QUFDQTs7O0FDMVNBO0NBQ0E7SUFDQTtBQUNBO0FBQ0E7Q0FDQTtBQUNBO0FBQ0E7SUFDQTtDQUNBO0lBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7QUFFQTtBQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0FBRUE7QUFFQTtJQUNBO0FBQ0E7QUFDQTs7SUFFQTtJQUNBO0FBQ0E7QUFFQTs7SUFFQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7O1FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtJQUNBO0FBQ0E7QUFDQTs7O0FDekRBO0lBQ0E7QUFDQTtBQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7RUFDQTtBQUVBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTs7O0FDdEhBO0lBQ0E7QUFDQTtBQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7QUFDQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7OztFQUdBO0VBQ0E7RUFDQTtBQUVBO0FBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7QUFFQTtBQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBRUE7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUVBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7QUFDQTs7O0FDK1BBO0VBQ0E7RUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9UYWJzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9UaGVUYWJzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9vdGhlci9EaWNlM0QudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2RvY3VtZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9kcml2ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvY2hhcmFjdGVyQ3JlYXRvci9BcmNoZXR5cGVDYXJkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9jaGFyYWN0ZXJDcmVhdG9yL0RpY2VNb2R1bGUudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL2NoYXJhY3RlckNyZWF0b3IvRGljZUhpc3RvcnkudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL2NoYXJhY3RlckNyZWF0b3IvU3RhdGVzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9jaGFyYWN0ZXJUYWIvY2hhcmFjdGVyU2hlZXQudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2NoYXJhY3RlclRhYi9jaG9vc2VBcmNoZXR5cGUudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL3BhZ2VzL2dyb3VwLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9ob21lLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9uYW1lcy52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvbWFwL3NpZGVCYXIudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9jb21wb25lbnRzL290aGVyL2N1c3RvbURyb3Bkb3duLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9tYXAvdGV4dEVkaXRvci52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvbWFwL21hcEV2ZW50LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy93b3JsZG1hcC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvZ2FtZXNsaXN0LnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9wYWdlcy9nYW1lRGFzaGJvYXJkLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9EZXRhaWxzQ2FyZC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvbW9kYWwvbW9kYWxfbmV3R2FtZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2NvbXBvbmVudHMvcGFnZXMvbW9kYWwvbW9kYWxfY29uZmlybS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL0FwcC52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xufVxuIiwiPHRlbXBsYXRlPlxuICA8YnV0dG9uIDpjbGFzcz1cImBidG4gJHtnZXRBY3RpdmVUYWIoKT09dGFiLmNvbXBvbmVudCA/J2FjdGl2ZSc6Jyd9ICR7bGFzdCA/ICdsYXN0JzonJ31gXCIgQGNsaWNrPVwidGFiLnVybCA9PSAnJyA/IHN3aXRjaFRhYigpOm9wZW5VcmwoKVwiPlxuICAgICAgICB7e3RhYi5saWJ9fVxuICA8L2J1dHRvbj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcIlRhYnNcIixcbiAgaW5qZWN0OlsnZ2V0QWN0aXZlVGFiJywgJ3NldEFjdGl2ZVRhYicsJ2dldE9yaWdpbiddLFxuICBwcm9wczoge1xuICAgIHRhYjp7fSxcbiAgICBsYXN0OntcbiAgICAgIFR5cGU6Qm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6ZmFsc2UsXG4gICAgfSxcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgc3dpdGNoVGFiKClcbiAgICB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYih0aGlzLnRhYi5jb21wb25lbnQpO1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIGBgLCBgJHt0aGlzLmdldE9yaWdpbn0vP3RhYj0ke3RoaXMudGFiLmNvbXBvbmVudH1gKTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBgYCwgYCR7dGhpcy5nZXRPcmlnaW59Lz90YWI9JHt0aGlzLnRhYi5jb21wb25lbnR9YCk7XG4gICAgICB0aGlzLiRlbWl0KCdjbG9zZVRhYicsdHJ1ZSk7XG4gICAgfSxcbiAgICBvcGVuVXJsKClcbiAgICB7XG4gICAgICB3aW5kb3cub3Blbih0aGlzLnRhYi51cmwsICdfc2VsZicpLmZvY3VzKCk7XG4gICAgfVxuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLmJ0biB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IGluaGVyaXQ7XG4gICAgei1pbmRleDogMTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAwcHggc29saWQgIzFlMjgyZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogJ0FsYXRhJywgc2Fucy1zZXJpZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjdweDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjRzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5sYXN0e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY1IDQyIDQyIC8gODAlKTtcbn1cbi5idG46aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xuICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xufVxuLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMDgsIDEyNSwwLjUpO1xufVxuXG4uYnRuOmZvY3VzLXZpc2libGUsXG4uYnRuOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgLmJ0biB7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICB9XG4gIC5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTA4LCAxMjUsMSk7XG59XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdiBpZD1cIlRoZVRhYnNcIiA6Y2xhc3M9XCJoaWRkZW4/J3JlZHVpdCc6JydcIj5cbiAgPGRpdiBpZD1cIm15U2lkZW5hdlwiIDpjbGFzcz1cImhpZGRlbj8naGlkZGVuJzonJ1wiPlxuICAgIDxhIGlkPVwiY2xvc2VCdG5cIiBjbGFzcz1cImNsb3NlXCIgQGNsaWNrPVwiaGlkZGVuPXRydWVcIiA+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAndGltZXMnXVwiIC8+PC9hPlxuICAgICAgPHVsPlxuICAgICAgICA8bGkgdi1mb3I9XCIodGFiLGluZGV4KSBpbiB0YWJzXCIgOmtleT1cImluZGV4XCI+XG4gICAgICAgICAgPFRhYnMgOnRhYj1cInRhYlwiIEBjbG9zZVRhYj1cImhpZGRlbj10cnVlXCIgOmxhc3Q9XCJpbmRleCA9PSAodGFicy5sZW5ndGggLSAxKVwiLz5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gIDwvZGl2PlxuICA8YSBpZD1cIm9wZW5CdG5cIiBAY2xpY2s9XCJoaWRkZW49ZmFsc2VcIiA6Y2xhc3M9XCIhaGlkZGVuPydoaWRkZW4nOicnXCI+XG4gICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdiYXJzJ11cIiAvPlxuICA8L2E+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IFRhYnMgZnJvbSAnLi9UYWJzJztcbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYUJhcnMsZmFUaW1lc30gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuXG5saWJyYXJ5LmFkZChmYUJhcnMsZmFUaW1lcyk7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy9Ob20gZGUgbGEgdnVlXG4gIG5hbWU6IFwiVGhlVGFic1wiLFxuICBpbmplY3Q6WydnZXRBY3RpdmVUYWInXSxcbiAgLy9vbiBwcmVjaXNlIGxlcyB2dWVzIHF1aSB2b250IMOqdHJlIGNvbW11bmlxdcOpZSDDoCBsYSBwYWdlXG4gIGNvbXBvbmVudHM6IHtUYWJzfSxcbiAgcHJvcHM6IHtcbiAgICB0YWJzOnt9LFxuICB9LFxuXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhpZGRlbjp0cnVlLFxuICAgIH07XG4gIH0sXG4gIHByb3ZpZGUoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxudWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsMWZyKTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDBlbTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiAwZW07XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDBweDtcbn1cblxuVGFiczpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbn1cbi8qIFNpZGVuYXYgbWVudSAqL1xuI2Nsb3NlQnRuLFxuI29wZW5CdG4ge1xuICAgIGRpc3BsYXk6bm9uZTtcbn1cblxuICAuaGlkZGVue1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gIH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgI1RoZVRhYnMsXG4gICNteVNpZGVuYXZ7XG4gICAgXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA1ZW0pO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgei1pbmRleDoxMDA7XG5cbiAgfVxuICAjVGhlVGFicy5yZWR1aXR7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gICNteVNpZGVuYXY6bm90KC5oaWRkZW4pXG4gIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1ZW0pO1xuICB9XG4gIHVsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCg2LDFmcik7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gIH1cblxuICAgIC8qIFNpZGVuYXYgbWVudSAqL1xuICAjY2xvc2VCdG4sXG4gICNvcGVuQnRuIHtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMy41ZW07XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cbiAgI29wZW5CdG4gc3Zne1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuICAuaGlkZGVue1xuICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidmlld1wiPlxuICAgIDxkaXYgOmNsYXNzPVwiZGljZUNsYXNzKClcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdkaWNlLW9uZSddXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZGljZS10d28nXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtdGhyZWUnXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZm91ciddXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZGljZS1maXZlJ11cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdkaWNlLXNpeCddXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L3RlbXBsYXRlPlxuICA8c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuXG5saWJyYXJ5LmFkZChmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXgpO1xuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgLy9Ob20gZGUgbGEgdnVlXG4gICAgbmFtZTogXCJEaWNlM0RcIixcbiAgICBkYXRhKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSxcbiAgcHJvcHM6e1xuICAgIHZhbHVlOnt9LFxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgZGljZUNsYXNzKCl7XG4gICAgICBsZXQgY2xhc3NlID0nJztcbiAgICAgIHN3aXRjaCh0aGlzLnZhbHVlKVxuICAgICAge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgY2xhc3NlID0gJ29uZSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBjbGFzc2UgPSAndHdvJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGNsYXNzZSA9ICd0aHJlZSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBjbGFzc2UgPSAnZm91cic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBjbGFzc2UgPSAnZml2ZSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBjbGFzc2UgPSAnc2l4JztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbGFzc2UgKyAnIGRpY2UzRCc7XG4gICAgfVxuICB9LFxuICB3YXRjaDp7XG4gICAgdmFsdWUoKXtcbiAgICAgIHRoaXMuJGZvcmNlVXBkYXRlKCk7XG4gICAgfVxuICB9XG4gIH07XG4gIDwvc2NyaXB0PlxuICBcbiAgPHN0eWxlIHNjb3BlZD5cbiAgLnZpZXd7XG4gICAgd2lkdGg6NTBweDtcbiAgICBoZWlnaHQ6NTBweDtcbiAgICBtYXJnaW46MXB4O1xuICAgIHBlcnNwZWN0aXZlOjYwMHB4O1xuICB9XG4gIC5kaWNlM0R7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgzNjBkZWcpO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgfVxuXG4gIC5vbmV7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgLnR3b3tcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZXgoOTBkZWcpO1xuICB9XG5cbiAgLnRocmVle1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgtOTBkZWcpO1xuICB9XG5cbiAgLmZvdXJ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKTtcbiAgfVxuXG4gIC5maXZle1xuICAgIHRyYW5zZm9ybTogcm90YXRleCgtOTBkZWcpO1xuICB9XG5cbiAgLnNpeHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxuXG4gIHN2Z3tcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gIH1cblxuICAuZGljZTNEID4gZGl2e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODI4Mjg7XG4gIH1cblxuICAuZGljZTNEID4gZGl2Om50aC1vZi10eXBlKDEpe1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWigyNXB4KTtcbiAgY29sb3I6YnJvd247XG4gIH1cblxuICAuZGljZTNEID4gZGl2Om50aC1vZi10eXBlKDIpe1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTkwZGVnKSB0cmFuc2xhdGVaKDI1cHgpO1xuICB9XG5cbiAgLmRpY2UzRCA+IGRpdjpudGgtb2YtdHlwZSgzKXtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKDI1cHgpO1xuICB9XG5cbiAgLmRpY2UzRCA+IGRpdjpudGgtb2YtdHlwZSg0KXtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDI3MGRlZykgdHJhbnNsYXRlWigyNXB4KTtcbiAgfVxuXG4gIC5kaWNlM0QgPiBkaXY6bnRoLW9mLXR5cGUoNSl7XG4gIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgdHJhbnNsYXRlWigyNXB4KTtcbiAgfVxuXG4gIC5kaWNlM0QgPiBkaXY6bnRoLW9mLXR5cGUoNil7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpIHRyYW5zbGF0ZVooMjVweCk7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7fVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXt9XG4gIDwvc3R5bGU+XG4gICIsIjx0ZW1wbGF0ZT5cblx0PGRpdj5cblx0XHQ8YXNpZGUgY2xhc3M9XCJsb3JlLW5hdlwiPlxuXHRcdFx0PGRpdj5cbiAgICAgICAgPGEgaHJlZj1cIiNjb250ZXh0ZVwiPiBDb250ZXh0ZSA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhIGhyZWY9XCIjZmFjdGlvbnNcIj4gTGVzIGZhY3Rpb25zPC9hPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YSBocmVmPVwiI3BqXCI+Q3LDqWF0aW9uIGRlIHBlcnNvbm5hZ2UgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YSBocmVmPVwiI3N5c3RlbWVcIj4gVXRpbGlzZXIgbGUgU3lzdMOobWUgPC9hPlxuICAgICAgPC9kaXY+XG5cdFx0PC9hc2lkZT5cbiAgPGRpdiBjbGFzcz1cImJhY2tncm91bmRcIj5cbiAgICA8ZGl2IHYtZm9yPVwiaSBpbiAyMFwiIDprZXk9XCJpXCIgY2xhc3M9XCJzcGFya1wiIDpzdHlsZT1cImdldFN0eWxlUmFuZG9tKClcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgaWQ9XCJMb3JlVGFiXCIgY2xhc3M9XCJtYWluc2NyZWVuXCI+XG5cdFx0PHNlY3Rpb24gY2xhc3M9XCJsb3JlLXBvc3RcIj5cblx0XHRcdDxoMT5MZXMgdmFnYWJvbmRzPC9oMT5cbiAgICAgIDxkaXY+TGUgZMOpYnV0IGRlIGxhIGZpbi48L2Rpdj5cbiAgICAgIDxhcnRpY2xlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW50cm9cIiBpZD1cImNvbnRleHRlXCI+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8c3Bhbj5SYWRpZSAxMzA3PC9zcGFuPiwgdW4gaGl2ZXIgcGFydGljdWxpw6hyZW1lbnQgcnVkZSB2aWVudCBkZSBzZSB0ZXJtaW5lci5cbiAgICAgICAgICAgIExhIHBsdXBhcnQgZHUgcGF5cywgPHNwYW4+YWZmYW3DqTwvc3Bhbj4sIGEgZMO7IGVudm95ZXIgc2VzIHLDqXNlcnZlcyBkZSBub3Vycml0dXJlIGRlIGwnYXV0cmUgY8O0dMOpIGRlIGxhIG1lciwgZCdvw7kgbCdhcm3DqWUgcsOpZ3VsacOocmUgcXVpIGEgcG9ydMOpIGxhIGNyb2lzYWRlLCByZXZpZW50IDxzcGFuPnBlcmRhbnRlPC9zcGFuPi5cbiAgICAgICAgICAgIExlIHByaW50ZW1wcyB0YW50IGF0dGVuZHUgbidvZmZyZSBkZSBxdWUgZGUgbWFpZ3JlcyByw6ljb2x0ZXMsIGlsIGVzdCB0ZXJuZSBldCBmcm9pZC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIExlcyBjb25kaXRpb25zIGRlIHZpZSBwcsOpY2FpcmVzIG9udCBwcm92b3F1w6kgZGVzIDxzcGFuPsOpcGlkw6ltaWVzPC9zcGFuPiBhdXggcXVhdHJlcyBjb2lucyBkdSBwYXlzLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgTGUgc2hvZ3VuYXQgcydlc3QgcmVwbGnDqSBzdXIgbHVpLW3Dqm1lLCBhZmZhaWJsaXQgcGFyIGxlcyBub21icmV1c2VzIDxzcGFuPnLDqXZvbHRlczwvc3Bhbj4gZGUgdmlsbGFnZW9pcyBhZmZhbcOpcyBxdWkgb250IGFjaGV2w6kgbGVzIGRlcm5pw6hyZXMgcG9jaGVzIGQnYXV0b3JpdMOpcyBlbiBkZWhvcnMgZGUgbGEgY2FwaXRhbGUuIEFpbnNpIGxlIHNob2d1bmF0LCA8c3Bhbj5wYXJhbm/Dr2FxdWU8L3NwYW4+LCBnYXJkZSBzZXMgZGVybmnDqHJlcyBmb3JjZXMgcG91ciB2ZXJyb3VpbGxlciBzYSBwbGFjZSBmb3J0ZS5cbiAgICAgICAgICAgICAgRGVzIHZpbGxhZ2VzIHNvbnQgbWlzIMOgIHNhYyB1biBwZXUgcGFydG91dCBmb3LDp2FudCBsZXMgcG9wdWxhdGlvbnMgbG9jYWxlcyDDoCBmdWlyIGxldXIgbWFpc29uLlxuICAgICAgICAgIDwvcD5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXJ0aWNsZT5cbiAgICAgIDxhcnRpY2xlPlxuICAgICAgICA8aDMgaWQ9XCJmYWN0aW9uc1wiPkxlcyBmYWN0aW9uczwvaDM+XG4gICAgICAgIDx1bCBjbGFzcz1cImZhY3Rpb25zXCI+XG4gICAgICAgICAgPGxpIHYtZm9yPVwiKGZhY3Rpb24saW5kZXgpIGluIGZhY3Rpb25zXCIgOmtleT1cImluZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IEBjbGljaz1cInRvZ2dsZURpc3BsYXlDbGFuKGluZGV4KVwiIDpzdHlsZT1cImBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtmYWN0aW9uLmltZ30pO2BcIiA6dGl0bGU9XCJmYWN0aW9uLm5vbVwiPlxuICAgICAgICAgICAgICA8aDQ+e3tmYWN0aW9uLm5vbX19PC9oND5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyYWRpZW50XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiKGRpc3BsYXlDbGFuID09PSBpbmRleCk/J2FjdGl2ZSc6JydcIj5cbiAgICAgICAgICAgICAgPGgzPnt7ZmFjdGlvbi5ub219fTwvaDM+XG4gICAgICAgICAgICAgIDxwIHYtaHRtbD1cImZhY3Rpb24uRGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgICA8aDI+UsOoZ2xlczwvaDI+XG5cdFx0XHRcdDxkZXRhaWxzPlxuXHRcdFx0XHRcdDxzdW1tYXJ5IGlkPVwicGpcIj5DcsOpYXRpb24gZGUgcGVyc29ubmFnZTwvc3VtbWFyeT5cblx0XHRcdFx0XHQ8aDM+Q3LDqWF0aW9uIGRlIGxhIGZpY2hlPC9oMz5cblx0XHRcdFx0XHQ8cD5MZSBqb3VldXIgcsOpcGFydGl0IDUgcG9pbnRzIGVudHJlIGxlcyAzIHN0YXRzIChDb3JwcywgZXNwcml0IGV0IHNvY2lhbCkgcHLDqXNlbnRlcyBzdXIgbGEgZmljaGUgKGVudHJlIDMgZXQgMSlcblx0XHRcdFx0XHRcdDxiciAvPlxuXHRcdFx0XHRcdFx0SWwgY2hvaXNpdCBkZXV4IGNvbXDDqXRlbmNlcyBhaW5zaSBxdSd1bmUgc3DDqWNpYWxpdMOpLlxuXHRcdFx0XHRcdFx0SWwgY29tbWVuY2UgYXZlYyB1bmUgYXJtZSBldCB1bmUgYXJtdXJlIGQndW5lIGNsYXNzZSDDqWdhbGUgb3UgaW5mw6lyaWV1ciDDoCBzYSB2YWxldXIgZGUgY29ycHNcblx0XHRcdFx0XHRcdDxiciAvPlxuXHRcdFx0XHRcdFx0PGVtPlNpIGphbWFpcyBsZXMgam91ZXVycyBtYW5xdWVudCBkJ2lkw6llcywgdm91cyBwb3V2ZXogbGFuY2V6IHVuIEQ4MCBvdSBhbGxlciBzdXIgbCdvbmdsZXQgXCJjcsOpYXRpb24gZGUgZ3JvdXBlXCIgcG91ciBvYnRlbmlyIHVuIHBlcnNvbm5hZ2Ugc3VyIGxhIHRhYmxlIGRlcyBhcmNow6l0eXBlcy4sIGRlcyBjYXJ0ZXMgZXhwbGljYXRpdmVzIHNvbnQgZm91cm5pZXMgZW4gZmluIGQnb3V2cmFnZS48L2VtPiA8L3A+XG5cdFx0XHRcdFx0PGRldGFpbHM+XG5cdFx0XHRcdFx0XHQ8c3VtbWFyeT5UYWJsZSBkZXMgcsO0bGVzPC9zdW1tYXJ5PlxuXHRcdFx0XHRcdFx0PHRhYmxlPlxuXHRcdFx0XHRcdFx0XHQ8Y2FwdGlvbj48YnV0dG9uIGNsYXNzPVwiZmF2LWJ1dHRvblwiIEBjbGljaz1cInRvZ2dsZURpc3BsYXkoJ3JvbGUnKVwiPjxpIGNsYXNzPVwiZmFyIGZhLXN0YXJcIiBpZD1cImZhdi1yb2xlXCIgc3R5bGU9XCJmb250LXNpemU6MjBweDtcIj48L2k+PC9idXR0b24+QWpvdXRlciAvIFN1cHByaW1lciBjZXR0ZSB0YWJsZSBkZXMgZmF2b3JpczwvY2FwdGlvbj5cblx0XHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHRcdDx0aD4yRDY8L3RoPlxuXHRcdFx0XHRcdFx0XHRcdDx0aD5Sw7RsZTwvdGg+XG5cdFx0XHRcdFx0XHRcdFx0PHRoPkJ1dDwvdGg+XG5cdFx0XHRcdFx0XHRcdDwvdHI+XG4gICAgICAgICAgICAgIDx0ciB2LWZvcj1cInJvbGUgaW4gcm9sZXNcIiA6a2V5PVwicm9sZS5pZFwiPlxuICAgICAgICAgICAgICAgIDx0ZD57e3JvbGUuamV0fX08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD57e3JvbGUucm9sZX19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+e3tyb2xlLmJ1dH19PC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cblx0XHRcdFx0XHRcdDwvdGFibGU+XG5cblx0XHRcdFx0XHQ8L2RldGFpbHM+XG5cdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdDwvYXJ0aWNsZT5cblx0XHRcdDxhcnRpY2xlPlxuXHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHQ8c3VtbWFyeSBpZD1cInN5c3RlbWVcIj5VdGlsaXNlciBsZSBTeXN0w6htZTwvc3VtbWFyeT5cblx0XHRcdFx0XHQ8cD5MZSBqb3VldXIgY29tbWVuY2UgYXZlYyB1biA8c3Ryb25nPnN0b2NrIGRlIDNENjwvc3Ryb25nPiBxdSdpbCB1dGlsaXNlIHRvdXQgYXUgbG9uZyBkZSBsYSBwYXJ0aWUuPGJyIC8+XG5cdFx0XHRcdFx0XHRMb3JzIGRlcyB0ZXN0IG9uIGxhbmNlIGxlIG5vbWJyZSBkZSBkw6lzIMOpZ2FsZSDDoCBsYSB2YWxldXIgZGFucyBsYSBjb21ww6l0ZW5jZSBlbiBxdWVzdGlvbiBldCBsZSBqb3VldXIgY2hvaXNpIGxlIGTDqSBxdSdpbCBwcsOpZsOocmUuPGJyIC8+XG5cdFx0XHRcdFx0XHRVbiBqb3VldXIgbmUgcGV1dCB1dGlsaXNlciBxdWUgbGVzIGTDqXMgcHLDqXNlbnRzIGRhbnMgc29uIHN0b2NrLlxuXHRcdFx0XHRcdDwvcD5cblx0XHRcdFx0XHQ8dGFibGUgY2xhc3M9XCJiaWdcIj5cblx0XHRcdFx0XHRcdDxjYXB0aW9uPjxidXR0b24gY2xhc3M9XCJmYXYtYnV0dG9uXCIgQGNsaWNrPVwidG9nZ2xlRGlzcGxheSgndGVzdCcpXCI+PGkgc3R5bGU9XCJmb250LXNpemU6MjBweDtcIiBjbGFzcz1cImZhciBmYS1zdGFyXCIgaWQ9XCJmYXYtdGVzdFwiPjwvaT48L2J1dHRvbj4gQWpvdXRlciAvIFN1cHByaW1lciBjZXR0ZSB0YWJsZSBkZXMgZmF2b3JpczwvY2FwdGlvbj5cblx0XHRcdFx0XHRcdDx0cj5cblx0XHRcdFx0XHRcdFx0PHRoPkRpZmZpY3VsdMOpIGR1IHRlc3Q8L3RoPlxuXHRcdFx0XHRcdFx0XHQ8dGggY2xhc3M9XCJiaWctdGhcIj5Sw6lzdWx0YXRzIGF0dGVuZHVzPC90aD5cblx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0XHRcdDx0ZD5UcsOocyBEdXI8L3RkPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+NjwvdGQ+XG5cdFx0XHRcdFx0XHQ8L3RyPlxuXHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+QXNzZXogRHVyPC90ZD5cblx0XHRcdFx0XHRcdFx0PHRkPjUrPC90ZD5cblx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0XHRcdDx0ZD5Nb3llbjwvdGQ+XG5cdFx0XHRcdFx0XHRcdDx0ZD40KzwvdGQ+XG5cdFx0XHRcdFx0XHQ8L3RyPlxuXHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHQ8dGQ+RmFjaWxlPC90ZD5cblx0XHRcdFx0XHRcdFx0PHRkPjMrPC90ZD5cblx0XHRcdFx0XHRcdDwvdHI+XG5cblx0XHRcdFx0XHQ8L3RhYmxlPlxuXG5cdFx0XHRcdFx0PHA+PHN0cm9uZz5MYSBzcMOpY2lhbGl0w6kgZHUgcGVyc29ubmFnZTwvc3Ryb25nPiBsdWkgcGVybWV0IGRlIGJhaXNzZXIgZCd1biBjcmFuIGxhIGRpZmZpY3VsdMOpIGRlcyB0ZXN0IMOgIGZhaXJlIGRhbnMgY2UgZG9tYWluZS48L3A+XG5cdFx0XHRcdFx0PGRldGFpbHM+XG5cdFx0XHRcdFx0XHQ8c3VtbWFyeT5MZXMgbWVuYWNlczwvc3VtbWFyeT5cblx0XHRcdFx0XHRcdDxwPkxvcnNxdSd1biBqb3VldXIgc3ViaXQgdW5lIGFsdMOpcmF0aW9uIGQnw6l0YXQsIGlsIHBsYWNlIHVuIGTDqSBkZSBzb24gc3RvY2sgc3VyIGxhIGNhc2UgY29ycmVzcG9uZGFudGUsIGNlIGTDqSBuJ2VzdCBwbHVzIHV0aWxpc2FibGUgdGFudCBxdWUgbCfDqXRhdCBuJ2VzdCBwYXMgc29pZ27DqS48YnIgLz5cblx0XHRcdFx0XHRcdFx0TGVzIGpvdWV1cnMgbmUgcGV1dmVudCBwYXMgZmFpcmUgZGUgcsOpdXNzaXRlIGNyaXRpcXVlcywgY2VwZW5kYW50IGlscyBwZXV2ZW50IGZhaXJlIGRlcyA8c3Ryb25nPsOpY2hlY3MgY3JpdGlxdWVzPC9zdHJvbmc+IChsZSByw6lzdWx0YXQgZmluYWwgZCd1biB0ZXN0IGVzdCDDqWdhbCDDoCA8c3Ryb25nPjE8L3N0cm9uZz4pIGNlIHF1aSBlc3Qgc291dmVudCBzeW5vbnltZSBkZSA8c3Ryb25nPm1vcnQ8L3N0cm9uZz4gcG91ciBsZSBwZXJzb25uYWdlLjwvcD5cblxuXHRcdFx0XHRcdFx0PHA+TG9yc3F1J3VuIHBlcnNvbm5hZ2UgbidhcyA8c3Ryb25nPnBsdXMgZMOpczwvc3Ryb25nPiBkYW5zIHNvbiBzdG9jaywgaWwgPHN0cm9uZz5tZXVydDwvc3Ryb25nPi48YnIgLz5cblx0XHRcdFx0XHRcdFx0TG9yc3F1J3VuIHBlcnNvbm5hZ2Ugc3ViaXQgdW5lIDxzdHJvbmc+Ymxlc3N1cmU8L3N0cm9uZz4gYWxvcnMgcXUnaWwgZXN0IGFmZmVjdMOpIHBhciB1biA8c3Ryb25nPsOpdGF0IGdyaXM8L3N0cm9uZz4sIGlsIDxzdHJvbmc+bWV1cnQ8L3N0cm9uZz4uPGJyIC8+XG5cdFx0XHRcdFx0XHRcdExvcnNxdSd1biBwZXJzb25uYWdlIGVzdCBhZmZlY3TDqSBwYXIgdW4gPHN0cm9uZz7DqXRhdCBub2lyPC9zdHJvbmc+LCBpbCA8c3Ryb25nPm1ldXJ0PC9zdHJvbmc+LlxuXHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5Pk1vZHVsZXIgbGEgZGlmZmljdWx0w6k8L3N1bW1hcnk+XG5cdFx0XHRcdFx0XHQ8cD5DZXJ0YWlucyDDqWNoZWNzIGNyaXRpcXVlcyBuZSBzb250IHBhcyBsw6l0YXV4LCBjZXBlbmRhbnQgaWwgcGV1dmVudCBlbnRyYcOubmVyIHVuIGhhbmRpY2FwIGltbcOpZGlhdCBldCBwb25jdHVlbCwgb24gYXBwZWxsZSDDp2EgdW4gPHN0cm9uZz5kw6lzYXZhbnRhZ2U8L3N0cm9uZz4uPGJyIC8+XG5cdFx0XHRcdFx0XHRcdDxzdHJvbmc+RMOpc2F2YW50YWdlPC9zdHJvbmc+IDogbGUgbWVuZXVyIGFzIHVuIEQ2IHF1aSBwZXV0IHV0aWxpc2VyIGxvcnMgZCd1biB0ZXN0LiBMb3JzcXVlIGxlIGpvdWV1ciBhIGNob2lzaSBsZSBkw6kgZmluYWwgZGUgc29uIHRlc3QsIGxlIG1lbmV1ciBwZXV0IGxhbmNlciBsZSBENiBkZSBkw6lzYXZhbnRhZ2UgZXQgY2hvaXNpciB1biBub3V2ZWF1IGTDqSBmaW5hbCBlbnRyZSBzb24gcsOpc3VsdGF0IGV0IGNlbHVpIGR1IGpvdWV1ci48L3A+XG5cblx0XHRcdFx0XHRcdDxwPkRhbnMgZCdhdXRyZXMgY2FzLCBsZSBoYW5kaWNhcCBwZXV0IMOqdHJlIDxzdHJvbmc+cGx1cyBsb25nIGV0IHRyw6hzIGxvdXJkPC9zdHJvbmc+LiBjZXQgaGFuZGljYXAgcGV1dCDDqnRyZSBjYXVzw6kgcGFyIHVuZSB0csOocyA8c3Ryb25nPmdyYXZlIG1hbGFkaWU8L3N0cm9uZz4gb3UgdW5lIDxzdHJvbmc+aXZyZXNzZSBhdmFuY8OpPC9zdHJvbmc+LjxiciAvPlxuXHRcdFx0XHRcdFx0XHREYW5zIGNlIGNhcyBvbiBwZXV0IGFubm9uY2VyIHF1ZSB0b3VzIGxlcyByw6lzdWx0YXRzIGR1IGpvdWV1ciA8c3Ryb25nPmltcGFpcnM8L3N0cm9uZz4gc29udCBkZXMgPHN0cm9uZz7DqWNoZWNzIGF1dG9tYXRpcXVlczwvc3Ryb25nPi4gT24gcGV1dCBmYWlyZSBsYSBtw6ptZSBjaG9zZSBwb3VyIGxlcyByw6lzdWx0YXRzIDxzdHJvbmc+cGFpcnM8L3N0cm9uZz4gbWFpcyBjZSBkZXJuaWVyIGNhcyBlc3QgYmVhdWNvdXAgcGx1cyBncmF2ZSAsIDEgw6l0YW50IGTDqWrDoCBpbXBhaXIgbGVzIGTDqXMgb250IDIgY2hhbmNlcyBzdXIgMyBkZSBmYWlyZSB1biBlY2hlYyBjcml0aXF1ZS48L3A+XG5cblx0XHRcdFx0XHRcdDxwPkJpZW4gc3VyIGlsIGVzdCBwb3NzaWJsZSBkZSBmYWlyZSBsJ2ludmVyc2UgcG91ciBhaWRlciBsZXMgam91ZXVycyBtYWlzIGNlbGEgcmVudHJlIG1vaW5zIGJpZW4gZGFucyBsJ29wdGlxdWUgZGUgY2UgamV1LCB0b3V0IGTDqXBlbmRzIGRlcyBqb3VldXJzIHF1ZSB2b3VzIGF2ZXogw6Agdm90cmUgdGFibGUuPC9wPlxuXHRcdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5PkNvbXDDqXRlbmNlcyBwb3NzaWJsZXM8L3N1bW1hcnk+XG4gICAgICAgICAgICA8ZGw+XG4gICAgICAgICAgICAgIDxkaXYgdi1mb3I9XCJpZCBpbiBPYmplY3Qua2V5cyhza2lsbHMpXCIgOmtleT1cImlkXCI+XG4gICAgICAgICAgICAgICAgPGR0Pnt7c2tpbGxzW2lkXS5ub219fTwvZHQ+XG4gICAgICAgICAgICAgICAgPGRkPnt7c2tpbGxzW2lkXS5EZXNjcmlwdGlvbn19PC9kZD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cdFx0XHRcdFx0ICA8L2RsPlxuXHRcdFx0XHRcdDwvZGV0YWlscz5cblx0XHRcdFx0XHQ8ZGV0YWlscz5cblx0XHRcdFx0XHRcdDxzdW1tYXJ5PkV0YXRzPC9zdW1tYXJ5PlxuXHRcdFx0XHRcdFx0PHA+TG9yc3F1J3VuIGpvdWV1ciBlc3QgYWZmZWN0w6kgcGFyIHVuIMOpdGF0LCBjZSBkZXJuaWVyIGRpc3Bvc2UgdW4gRDYgZGUgc2EgcsOpc2VydmUgZGVzc3VzLCBjZXBlbmRhbnQgaWwgZG9pdCBtZXR0cmUgbGUgY2hpZmZyZSAxIGJpZW4gdmlzaWJsZSBldCBhaW5zaSBmYWlyZSBhdWdtZW50ZXIgbGUgbm9tYnJlIGNoYXF1ZSBqb3Vycy4gRGUgY2V0dGUgbWFuacOocmUsIHRvdXQgbGUgbW9uZGUgcGV1dCBjb25uYcOudHJlIGwnYXZhbmNlbWVudCBkZSBzb24gw6l0YXQuPC9wPlxuXG5cdFx0XHRcdFx0XHQ8cD5TaSB1biBwZXJzb25uYWdlIGNvbW1lbmNlIGF2ZWMgdW5lIGFsdMOpcmF0aW9uIGQnw6l0YXQ6PC9wPlxuXHRcdFx0XHRcdFx0PHVsPlxuXHRcdFx0XHRcdFx0XHQ8bGk+IHMnaWwgZG9pdCBsYSBjaG9pc2lyIGlsIGxlIGZhaXQ8L2xpPlxuXHRcdFx0XHRcdFx0XHQ8bGk+IElsIGxhbmNlIGxlIEQ2IGV0IGdhcmRlIGxlIHLDqXN1bHRhdCBhaW5zaSBvYnRlbnUuPC9saT5cblx0XHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdFx0XHQ8dGFibGU+PC90YWJsZT5cblx0XHRcdFx0XHQ8L2RldGFpbHM+XG5cdFx0XHRcdFx0PGRldGFpbHM+XG5cdFx0XHRcdFx0XHQ8c3VtbWFyeT5DbGFzc2VzIGQnYXJtZXMgZXQgZCdhcm11cmVzIGV0IGNvbWJhdDwvc3VtbWFyeT5cblx0XHRcdFx0XHRcdDx0YWJsZT48L3RhYmxlPlxuXHRcdFx0XHRcdFx0PHN0cm9uZz5MZXMgcGVyc29ubmFnZXMgbmUgcGV1dmVudCBwYXMgcG9ydGVyIHVuZSBhcm11cmUgb3UgdW5lIGFybWUgZCd1bmUgY2xhc3NlIHBsdXMgw6lsZXbDqWUgcXVlIGxldXIgc2NvcmUgZGUgY29ycHMgITwvc3Ryb25nPjxiciAvPlxuXHRcdFx0XHRcdFx0PHA+TG9yc3F1ZSBkZXV4IHBlcnNvbm5hZ2VzIHNlIGJhdHRlbnQsIGNoYWN1biBtZXQgZGUgY8O0dMOpIHVuIG5vbWJyZSBkZSBkw6lzIGRlIHN0b2NrIMOpZ2FsIGF1IHBvaWQgZGUgc29uIGFybWUgcHVpcyBmYWl0IHNvbiB0ZXN0LiBFbiBzdWl0ZSBpbCBham91dGUuIMOgIHNvbiByw6lzdWx0YXQgdW4gbm9tYnJlIGRlIHBvaW50cyDDqWdhbCDDoCBsYSBzb21tZSBkZSBzYSBjbGFzc2UgZCdhcm1lIGV0IGRlIHNhIGNsYXNzZSBkJ2FybXVyZS4gT24gY29tcGFyZSBsZXMgcsOpc3VsdGF0IDogY2VsdWkgYXlhbnQgZmFpdCBsZSBwbHVzIGhhdXQgc2NvcmUgZ2FnbmUgZXQgbGUgcGVyZGFudCBwcmVuZHMgdW5lIGJsZXNzdXJlcyBwYXIgcG9pbnRzIGQnw6ljYXJ0LiBFbiBjYXMgZCfDqWdhbGl0w6ksIGxlcyBkZXV4IHBlcnNvbm5hZ2VzIHByZW5uZW50IHVuZSBibGVzc3VyZS48L3A+XG5cdFx0XHRcdFx0PC9kZXRhaWxzPlxuXHRcdFx0XHQ8L2RldGFpbHM+XG5cdFx0XHQ8L2FydGljbGU+XG5cblx0XHQ8L3NlY3Rpb24+XG5cdDwvZGl2PlxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmltcG9ydCBEaWNlM0QgZnJvbSBcIi4uL290aGVyL0RpY2UzRC52dWVcIlxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJkb2N1bWVudFwiLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICAgIERpY2UzRCxcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBmYWN0aW9uczp7fSxcbiAgICBza2lsbHM6e30sXG4gICAgcm9sZXM6e30sXG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge2Rpc3BsYXlDbGFuOmZhbHNlfTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZURpc3BsYXkodmFsdWUpXG4gICAge1xuICAgICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgIH0sXG4gICAgdG9nZ2xlRGlzcGxheUNsYW4odmFsdWUpXG4gICAge1xuICAgICAgdGhpcy5kaXNwbGF5Q2xhbiA9ICh0aGlzLmRpc3BsYXlDbGFuICE9PSB2YWx1ZSkgPyB2YWx1ZSA6IGZhbHNlO1xuICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcbiAgICB9LFxuICAgIGdldFN0eWxlUmFuZG9tKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7KE1hdGgucmFuZG9tKCkgKiAxMzApLTMwfXZ3YCxcbiAgICAgICAgb3BhY2l0eTogMC4zKyhNYXRoLnJhbmRvbSgpKjAuNyksXG4gICAgICAgICdhbmltYXRpb24tZGVsYXknOiBgJHtNYXRoLnJhbmRvbSgpICogNX1zYCxcbiAgICAgICAgaGVpZ2h0OiBgJHtNYXRoLnJhbmRvbSgpICogNSArIDJ9cHhgLFxuICAgICAgICAnYW5pbWF0aW9uLWR1cmF0aW9uJzogYCR7KE1hdGgucmFuZG9tKCkgKiA1ICsgMikudG9GaXhlZCgxKX1zYCxcbiAgICAgIH07XG4gICAgfSxcbiAgfSxcblxuICBtb3VudGVkKCkge30sXG4gIHdhdGNoOiB7fSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5tYWluc2NyZWVuIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgd2lkdGg6IDgwJTtcbiAgICAvKiBtYXJnaW46IGF1dG87ICovXG4gICAgLyogbGVmdDogMTAlOyAqL1xuICAgIC8qIHJpZ2h0OiAxMCU7ICovXG4gICAgLyogYm90dG9tOiAzMHB4OyAqL1xuICAgIC8qIHBvc2l0aW9uOiBmaXhlZDsgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB6LWluZGV4OiAwO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMiU7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uaDIsIGgyIHtcbiAgICBmb250LXNpemU6IDZyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yZW07XG59XG5cbmFydGljbGUge1xuICBtYXJnaW4tYm90dG9tOiAyMHZoO1xufVxuXG5zZWN0aW9ue1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmludHJvIHAge1xuICAgIGZvbnQtc2l6ZTogMS42dnc7XG59XG5cbi5pbnRybyBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogNXZoO1xuXG59XG5cbi5pbnRybyBwIHNwYW57XG4gICAgY29sb3I6IGJyb3duO1xufVxuXG4ubG9yZS1wb3N0IGgxe1xuICBtYXJnaW4tdG9wOiAyZW07XG4gIGZvbnQtc2l6ZTogOGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmxvcmUtcG9zdCBoMStkaXZ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDE1dmg7XG59XG5cblxuLmZhY3Rpb25zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiAwO1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG59XG5cbi5mYWN0aW9ucyBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgbWF4LWhlaWdodDogNTB2aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFjdGlvbnMgbGkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYWxpZ24tY29udGVudDogZW5kO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAzZnIgMWZyIDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzFlMjgyZDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmxleC1iYXNpczoxO1xuICAgIG1pbi1oZWlnaHQ6IDUwdmg7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbn1cbi5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG59XG4uZmFjdGlvbnMgbGkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBoNCB7XG4gICAgZ3JpZC1yb3ctc3RhcnQ6IDI7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbiAgICB6LWluZGV4OjI7XG5cbn1cblxuLmZhY3Rpb25zIGxpID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIC8qZGlzcGxheTpub25lOyovXG4gICAgbWF4LXdpZHRoOjA7XG4gICAgZmxleC1ncm93OiA0O1xuICAgIGZsZXgtYmFzaXM6NDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xufVxuXG4uZmFjdGlvbnMgcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbiAgICB3aWR0aDogMTh2dztcbiAgICB0ZXh0LWFsaWduOmp1c3RpZnk7XG5cbn1cbi5mYWN0aW9ucyBsaSA+IGRpdi5hY3RpdmV7XG4gIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6MjB2dztcblxufVxuLmdyYWRpZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6MTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDApO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsMCwwLDAuNykgMCUsIHJnYmEoMCwwLDAsMC4zNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO1xufVxuLmFjdGl2ZSBwIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuYXNpZGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwxZnIpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgei1pbmRleDogODA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSk7XG59XG4uYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMjgwNTBEO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDMwLCA2LCAxMiwgMC41KSAwJSwgcmdiYSg0MCwgNSwgMTMsIDApIDI1JSk7XG4gICAgei1pbmRleDogMDtcbn1cbi5iYWNrZ3JvdW5kOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMyODA1MEQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSg0MCwgNSwgMTMsIDEpIDAlLCByZ2JhKDQwLCA1LCAxMywgMCkgMTUlKTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGFuaW1hdGlvbjogYnJhc2llciAzcyBlYXNlIDBzIGluZmluaXRlIG5vcm1hbCBmb3J3YXJkcztcbn1cblxuLnNwYXJrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgei1pbmRleDogMTtcbiAgICBhbmltYXRpb246IHNwYXJrIDVzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWwgZm9yd2FyZHM7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IC0xMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMTU0IDE1NCAvIDQ2JSk7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4IDNweCByZ2IoMTc2IDQ5IDY3KTs7XG59XG5cbkBrZXlmcmFtZXMgc3Bhcmt7XG4gIDAle1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKSB0cmFuc2xhdGVYKDB2dykgdHJhbnNsYXRlWSgtMHZoKTtcbiAgfVxuICAxMDAle1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpIHRyYW5zbGF0ZVgoNjR2dykgdHJhbnNsYXRlWSgtMTAwdmgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBicmFzaWVyIHtcblx0MCUsXG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMTtcblx0fVxuICAyNSUsXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuOTU7XG5cdH1cblxuXHQ1MCUge1xuICAgIG9wYWNpdHk6IDAuOTI7XG5cdH1cblxuXHQxMiUsXG4gIDc3JVxuICB7XG5cdFx0b3BhY2l0eTogMC43O1xuXHR9XG4gIDM3JVxuICB7XG5cdFx0b3BhY2l0eTogMC43NTtcblx0fVxuXHQ1MiUge1xuXHRcdG9wYWNpdHk6IDAuODtcblx0fVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAubWFpbnNjcmVlbiB7XG4gICAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMCU7XG4gICAgICByaWdodDogMCU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW46IDA7XG4gIH1cblxuICAuaW50cm8gcCB7XG4gICAgICBmb250LXNpemU6IDUuMnZ3O1xuICB9XG4gIC5sb3JlLXBvc3QgaDF7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcbiAgfVxuICBhc2lkZXtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KDQsMWZyKTtcbiAgfVxuICAuZmFjdGlvbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmZhY3Rpb25zIHB7XG4gICAgbWluLXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7XG4gICAgbWluLWhlaWdodDogMTV2aDtcbiAgfVxuICAuZmFjdGlvbnMgbGl7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWF4LWhlaWdodDogdW5zZXQ7XG5cbiAgfVxuICAuZmFjdGlvbnMgbGkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDY1JTtcbiAgICBtaW4taGVpZ2h0OiAxNXZoO1xuICB9XG5cbiAgLmZhY3Rpb25zIGxpID4gZGl2OmZpcnN0LW9mLXR5cGVbdGl0bGU9XCJWaWRpZXVcIl0ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogNTAlO1xuICB9XG4gIC5mYWN0aW9ucyBsaSA+IGRpdjpmaXJzdC1vZi10eXBlW3RpdGxlPVwiU2VydmVuYXRpZnNcIl0ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogNSU7XG4gIH1cblxuICAuZmFjdGlvbnMgbGkgPiBkaXY6Zmlyc3Qtb2YtdHlwZVt0aXRsZT1cIk1lc2FpdmVzXCJdIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDQwJTtcbiAgfVxuICAuZmFjdGlvbnMgbGkgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICBtYXgtd2lkdGg6MTAwdnc7XG4gICAgZmxleC1ncm93OiA0O1xuICAgIGZsZXgtYmFzaXM6NDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcsMTAsMTEsMSk7XG4gICAgbWF4LWhlaWdodDogMHZoO1xuICB9XG4gIC5mYWN0aW9ucyBsaSA+IGRpdi5hY3RpdmUge1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgLmgyLCBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNWVtO1xuICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdj5cbiAgICBEcml2ZVxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJkcml2ZVwiLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICB9LFxuICBwcm9wczoge1xuICB9LFxuXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuICBwcm92aWRlKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gIH0sXG5cbiAgbW91bnRlZCgpIHt9LFxuICB3YXRjaDoge30sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG5cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2IDpjbGFzcz1cIihkZXRhaWxlZCk/J2RvdWJsZSBkZXRhaWxlZCc6J2RvdWJsZSdcIiBAY2xpY2s9XCJjaG9vc2UoYXJjaGV0eXBlLmlkKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJ0ZUZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbGx1XCIgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCguL2Fzc2V0cy9pbWFnZXMvY2FyZHMvJHthcmNoZXR5cGUuaW1nIHx8ICdwbGFjZWhvbGRlci5wbmcnfSlgXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PjwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8aDFcbiAgICAgICAgICAgICAgOmNsYXNzPVwiKGFyY2hldHlwZS5ub20ubGVuZ3RoID4gMTQpP1xuICAgICAgICAgICAgICAoKGFyY2hldHlwZS5ub20ubGVuZ3RoID4gMTcpPydzdXBlci1zbWFsbC1mb250J1xuICAgICAgICAgICAgICA6J3NtYWxsLWZvbnQnKTonJ1wiPlxuICAgICAgICAgICAgICB7eyhnZW5yZT09XCJob21tZVwiKT9hcmNoZXR5cGUubm9tOmFyY2hldHlwZS5ub21GfX1cbiAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgPHNwYW4gOmNsYXNzPVwiKGFyY2hldHlwZS5TcGVjaWFsaXRlLmxlbmd0aCA+IDE4KT8nc21hbGwtZm9udCc6JydcIj5TcMOpY2lhbGl0w6kgOiB7e2FyY2hldHlwZS5TcGVjaWFsaXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInN0YXRzXCI+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnZmlzdC1yYWlzZWQnXVwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2JpbGUtb25seVwiPnt7YXJjaGV0eXBlLmNvcnBzfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atb25seVwiPjxmb250LWF3ZXNvbWUtaWNvbiB2LWZvcj1cIm4gaW4gYXJjaGV0eXBlLmNvcnBzXCIgOmtleT1cIm5cIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZml2ZSddXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdicmFpbiddXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vYmlsZS1vbmx5XCI+e3thcmNoZXR5cGUuaW50ZWxsaWdlbmNlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2t0b3Atb25seVwiPjxmb250LWF3ZXNvbWUtaWNvbiB2LWZvcj1cIm4gaW4gYXJjaGV0eXBlLmludGVsbGlnZW5jZVwiIDprZXk9XCJuXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLWZpdmUnXVwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAndXNlcnMnXVwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2JpbGUtb25seVwiPnt7YXJjaGV0eXBlLnNvY2lhbH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNrdG9wLW9ubHlcIj48Zm9udC1hd2Vzb21lLWljb24gdi1mb3I9XCJuIGluIGFyY2hldHlwZS5zb2NpYWxcIiA6a2V5PVwiblwiIDppY29uPVwiWydmYXMnLCAnZGljZS1maXZlJ11cIiAvPjwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIDxsaT57e3NraWxsc1thcmNoZXR5cGUuc2tpbGwxXS5ub219fTwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPnt7c2tpbGxzW2FyY2hldHlwZS5za2lsbDJdLm5vbX19PC9saT5cbiAgICAgICAgICAgIDwvdWw+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPnt7c2tpbGxzW2FyY2hldHlwZS5za2lsbDFdLm5vbX19PC9zcGFuPlxuICAgICAgICAgICAgPHA+e3tza2lsbHNbYXJjaGV0eXBlLnNraWxsMV0uRGVzY3JpcHRpb259fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Bhbj57e3NraWxsc1thcmNoZXR5cGUuc2tpbGwyXS5ub219fTwvc3Bhbj5cbiAgICAgICAgICAgIDxwIHYtaHRtbD1cInNraWxsc1thcmNoZXR5cGUuc2tpbGwyXS5EZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG4gIDxzY3JpcHQ+XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHsgZmFGaXN0UmFpc2VkLCBmYUJyYWluLCBmYVVzZXJzLGZhRGljZUZpdmV9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcbmltcG9ydCBhdWRpb0VmZmVjdHMgZnJvbSBcIi4uLy4uL291dGlscy9hdWRpb0VmZmVjdHNcIjtcblxubGlicmFyeS5hZGQoIGZhRmlzdFJhaXNlZCwgZmFCcmFpbiwgZmFVc2VycyxmYURpY2VGaXZlKTtcbiAgZXhwb3J0IGRlZmF1bHQge1xuICAgIC8vTm9tIGRlIGxhIHZ1ZVxuICAgIG5hbWU6IFwiQXJjaGV0eXBlQ2FyZFwiLFxuICAgIGluamVjdDpbJ2dldFNraWxscyddLFxuICAgIHByb3BzOiB7XG4gICAgICBhcmNoZXR5cGU6e30sXG4gICAgICBkZXRhaWxlZDpmYWxzZSxcbiAgICAgIGdlbnJlOnt9LFxuICAgIH0sXG5cbiAgICBtZXRob2RzOiB7XG4gICAgICBjaG9vc2UoaWQpXG4gICAgICB7XG4gICAgICAgIHRoaXMuJGVtaXQoJ2Nob29zZScsaWQpO1xuICAgICAgICB0aGlzLmRldGFpbHNTb3VuZHMoKTtcbiAgICAgIH0sXG4gICAgICBkZXRhaWxzU291bmRzKCl7XG4gICAgICAgIGF1ZGlvRWZmZWN0cy5wbGF5U0ZYKFwiL2Fzc2V0cy9zZngvY29sbGVjdGlvbl9tYW5hZ2VyX2NhcmRfbW91c2Vfb3Zlci5vZ2dcIiwgMC4zKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbXB1dGVkOntcbiAgICAgIHNraWxsczpmdW5jdGlvbigpXG4gICAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNraWxscygpXG4gICAgICB9XG4gICAgfSxcbiAgICBtb3VudGVkKCkge1xuICAgICAgICAgIC8qbGV0IG15QXVkaW8gPSBuZXcgQXVkaW8oXCIvYXNzZXRzL3NmeC9jcmVkaXRzX2NhcmRfZW50ZXJfMS5vZ2dcIik7XG4gICAgICAgICAgbXlBdWRpby5wbGF5KCk7Ki9cbiAgICAgICAgfSxcbiAgfTtcbiAgPC9zY3JpcHQ+XG5cbiAgPHN0eWxlIHNjb3BlZD5cblxuICAuZG91Ymxle1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW46IDVweCBhdXRvO1xuICAgIHdpZHRoOiAyMHZ3O1xuICAgIGhlaWdodDogMzN2dztcbiAgICBtYXgtd2lkdGg6IDI1NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQyM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Oy8qI2EwOWQ5OTsqL1xuICAgIC8qIGJveC1zaGFkb3c6IDBweCAwcHggMjNweCAtMzBweCByZ2JhKDAsMCwwLDAuMDEpOyAqL1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3cocmdiYSgwLCAwLCAwLCAwLjYpIDBweCAzcHggM3B4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdBbGF0YScsIHNhbnMtc2VyaWY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG4gIC5kZXRhaWxlZFxuICB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgLmRvdWJsZTpub3QoLmRldGFpbGVkKTpob3ZlcntcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wOCwxLjA4LDEuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3cocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDBweCAwcHggNHB4KTtcblxuICB9XG4gIC5kb3VibGUgPmRpdjpub3QoLmRldGFpbHMpe1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6MDtcbiAgICByaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiBzb2xpZCAwcHggdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDVmciAxLjVmciAxLjVmcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBhX2NhcmRzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWRcbiAgfVxuXG4gIC5kb3VibGUgaDEge1xuICAgIHBhZGRpbmctdG9wOiAxLjByZW07XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCB3aGl0ZSwgMXB4IC0xcHggMCB3aGl0ZSwgLTFweCAxcHggMCB3aGl0ZSwgMXB4IDFweCAwIHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuICBoMStzcGFue1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwIGJyb3duLCAxcHggLTFweCAwIGJyb3duLCAtMXB4IDFweCAwIGJyb3duLCAxcHggMXB4IDAgYnJvd247XG5cbiAgfVxuXG4gIC5jYXJ0ZUZ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcbiAgICAvKmJhY2tncm91bmQtcG9zaXRpb24teDogMjAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMzQwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDElOyovXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9wdWJsaWMvYXNzZXRzL2ltYWdlcy9jYXJkcy9iZy5wbmcnKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuaWxsdSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogOXB4O1xuICAgIGxlZnQ6IDlweDtcbiAgICAvKm1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDIwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDM0MCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAxJTsqL1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiB1bnNldCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuICAuY2FydGVGID4gZGl2Om5vdCguaWxsdSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHotaW5kZXg6IDU7XG4gIH1cbiAgLmlsbHUrZGl2e1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9wdWJsaWMvYXNzZXRzL2ltYWdlcy9jYXJkcy9ib3JkZXIucG5nJyk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6MztcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIH1cbiAgICB1bHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTUyYTJhYzc7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIHVsICsgdWx7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICB6LWluZGV4OiA0O1xuICAgIH1cbiAgLnN0YXRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywxZnIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxuXG4gICAgLnN0YXRzID4gbGkgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgIC8qcGFkZGluZzogNXB4OyovXG4gICAgICAgIGZvbnQtc2l6ZTogMS41NWVtO1xuICAgIH1cbiAgICAuc3RhdHMgPiBsaSA+IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICAgIGdyaWQtcm93LXN0YXJ0OiAzO1xuICAgICAgICBncmlkLXJvdy1lbmQ6IDM7XG4gICAgfVxuICAgIC5zdGF0cyA+IGxpOmxhc3Qtb2YtdHlwZSBzcGFuIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLnN0YXRzID4gbGkgPiBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nOiAwcHggMCA0cHggMDtcbiAgICB9XG5cbiAgICAuc3RhdHMgPiBsaSA+IHNwYW46bGFzdC1vZi10eXBlID4gc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpO1xuICAgIH1cblxuICAgIC5zbWFsbC1mb250e1xuICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgfVxuXG4gICAgLmRldGFpbHMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTAxMDBmO1xuICAgICAgICB3aWR0aDogMTF2dztcbiAgICAgICAgdG9wOiAyJTtcbiAgICAgICAgcmlnaHQ6IC05MCU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgIC5kZXRhaWxzIHNwYW4ge1xuICAgIGNvbG9yOiBicm93bjtcbiAgICBmb250LXNpemU6IDEuMDJyZW07XG59XG5cblxuICAgIC5kZXRhaWxlZCAuZGV0YWlsc3tcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgYV9jYXJkcyB7XG5cdDAlIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG5cdH1cblxuXHQ1MCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZyk7XG5cdH1cblxuICAgIDEwMCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZyk7XG5cdH1cbn1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgIC5kb3VibGV7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgd2lkdGg6IDI1dnc7XG4gICAgICAgIGhlaWdodDogNDB2dztcbiAgICB9XG4gICAgLmRvdWJsZSBoMXtcbiAgICAgIHBhZGRpbmctdG9wOiAwcmVtO1xuICAgIH1cbiAgICAuZGV0YWlscyB7XG4gICAgd2lkdGg6IDIwdnc7XG4gICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgdG9wOiA1JTtcbiAgICByaWdodDogLTg1JTtcbiAgICB9XG5cblxuICAuY2FydGVGe1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vcHVibGljL2Fzc2V0cy9pbWFnZXMvY2FyZHMvbW9iaWxlX2JnLnBuZycpO1xuICB9XG5cbiAgLmlsbHV7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEycHgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogN3B4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMjAlO1xuICAgIHotaW5kZXg6IDIgIWltcG9ydGFudDtcbiAgfVxufVxuICAubW9iaWxlLW9ubHl7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXNrdG9wLW9ubHl7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG5cbiAgICAuZG91Ymxle1xuICAgICAgICBmb250LXNpemU6IC44cmVtO1xuICAgICAgICB3aWR0aDogNjR2dztcbiAgICAgICAgaGVpZ2h0OiA0MHZ3O1xuICAgICAgICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAyNDBweDtcbiAgICB9XG5cbiAgICAuZG91YmxlID4gZGl2LFxuICAgIC5kb3VibGUgPmRpdjpub3QoLmRldGFpbHMpe1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogNGZyIDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0ZnI7XG4gICAgcGFkZGluZzogMTBweDtcbiAgfVxuICAuY2FydGVGIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDIwJTtcbiAgfVxuICAuY2FydGVGID4gZGl2Om5vdCguaWxsdSksXG4gIC5jYXJ0ZUYgPiBkaXYge1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB6LWluZGV4OiA0O1xuICB9XG5cbiAgLnN0YXRze1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICAgIGdyaWQtY29sdW1uLWVuZDogMjtcbiAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICBncmlkLXJvdy1lbmQ6IDM7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLDFmcik7XG4gICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgdWwuc3RhdHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgei1pbmRleDogNDtcbiAgfVxuXG4gIC5zdGF0cyArIHVsIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICB6LWluZGV4OiA0O1xuICB9XG5cbiAgLnN0YXRzID4gbGkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZCB3aGl0ZTtcbiAgfVxuXG4gIC5zdGF0cyA+IGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLnN0YXRzID4gbGkgPiBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luOiBhdXRvIDRweCBhdXRvO1xuICAgIH1cblxuICAuc3RhdHMgPiBsaTpmaXJzdC1vZi10eXBlIHNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgfVxuXG4gIC5zdGF0cyA+IGxpOm50aC1vZi10eXBlKDIpIHNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgZm9udC1zaXplOiAxLjA4cmVtO1xuICB9XG5cbiAgLnN0YXRzID4gbGk6bGFzdC1vZi10eXBlIHNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIG1hcmdpbi10b3A6IDlweDtcbiAgfVxuXG4gIC5zdGF0cyA+IGxpIHNwYW46bGFzdC1vZi10eXBle1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIHBhZGRpbmc6IHVuc2V0O1xuICB9XG5cbiAgLnN0YXRzID4gbGkgPiBzcGFuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgYm9yZGVyOnVuc2V0O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCBicm93biwgMXB4IC0xcHggMCBicm93biwgLTFweCAxcHggMCBicm93biwgMXB4IDFweCAwIGJyb3duO1xuICAgIH1cblxuICAuZG91YmxlIGgxIHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICB9XG5cbiAgaDErc3BhbntcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICB1bCArIHVse1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLm1vYmlsZS1vbmx5e1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRlc2t0b3Atb25seXtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICBoMS5zbWFsbC1mb250e1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgfVxuXG4gIGgxLnN1cGVyLXNtYWxsLWZvbnR7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cblxuXG4gIC5kZXRhaWxzIHtcbiAgICB3aWR0aDogNjR2dztcbiAgICB0b3A6IC0xMDAlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5kb3VibGU6Zmlyc3Qtb2YtdHlwZSAuZGV0YWlscyB7XG4gICAgdG9wOiAxMDAlO1xuICB9XG4gIC5pbGx1K2RpdntcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uLy4uL3B1YmxpYy9hc3NldHMvaW1hZ2VzL2NhcmRzL21vYmlsZV9ib3JkZXIucG5nJyk7XG4gICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiB1bnNldCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiB1bnNldCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDMgIWltcG9ydGFudDtcbiAgfVxufVxuICA8L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdj5cbiAgPHVsPlxuICAgIDxsaSB2LWZvcj1cImRpY2UgaW4gZGljZVRvU2hvd24ucm9sbFwiIDpjbGFzcz1cImRpY2VDbGFzcyhkaWNlLGRpY2VUb1Nob3duLmRpZmZpY3VsdHkpXCI+XG4gICAgICA8RGljZTNEIDp2YWx1ZT1cImRpY2VcIi8+XG4gICAgPC9saT5cbiAgICA8bGkgdi1mb3I9XCJuIGluIHVudXNlZERpY2VcIiBjbGFzcz1cInVudXNlZERpY2VcIj5cbiAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtdGhyZWUnXVwiIC8+XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPHNlbGVjdCB2LW1vZGVsPVwic3RhdFwiPlxuICAgIDxvcHRpb24gdmFsdWU9XCJjb3Jwc1wiPkNvcnBzPC9vcHRpb24+XG4gICAgPG9wdGlvbiB2YWx1ZT1cImludGVsbGlnZW5jZVwiPkVzcHJpdDwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCJzb2NpYWxcIj5Tb2NpYWw8L29wdGlvbj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiZGVybmllcmUgY2hhbmNlXCIgdi1pZj1cIihjaGFyYWN0ZXIuYXJjaGV0eXBlLnNraWxsMSA9PSAxNiB8fCBjaGFyYWN0ZXIuYXJjaGV0eXBlLnNraWxsMiA9PSAxNilcIj5EZXJuacOocmUgQ2hhbmNlPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuICA8c2VsZWN0IHYtbW9kZWw9XCJkaWZmXCI+XG4gICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj5GYWNpbGU8L29wdGlvbj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPk1veWVuPC9vcHRpb24+XG4gICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj5Bc3NleiBEdXI8L29wdGlvbj5cbiAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPlRyw6hzIER1cjwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+U3BlY2lhbDwvb3B0aW9uPlxuICA8L3NlbGVjdD5cbiAgPGJ1dHRvbiBAY2xpY2s9XCJyb2xsKGRpZmYpXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiA+TGFuY2VyPC9idXR0b24+XG5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbiAgPHNjcmlwdD5cbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXh9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcbmltcG9ydCBEaWNlM0QgZnJvbSBcIi4uL290aGVyL0RpY2UzRC52dWVcIlxuaW1wb3J0IGF1ZGlvRWZmZWN0cyBmcm9tIFwiLi4vLi4vb3V0aWxzL2F1ZGlvRWZmZWN0c1wiO1xuXG5saWJyYXJ5LmFkZChmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXgpO1xuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgLy9Ob20gZGUgbGEgdnVlXG4gICAgbmFtZTogXCJEaWNlTW9kdWxlXCIsXG4gICAgaW5qZWN0OlsnZ2V0UHJvZ3Jlc3MnLCdpbnNlcnRSb2xsJywnZ2V0Q2hhcmFjdGVyJ10sXG4gICAgcHJvcHM6IHt9LFxuICAgIGNvbXBvbmVudHM6e1xuICAgICAgRGljZTNELFxuICAgIH0sXG4gICAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlmZjozLFxuICAgICAgc3RhdDonY29ycHMnLFxuICAgIH07XG4gIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgcm9sbChkaWZmKVxuICAgICAge1xuICAgICAgICBpZih0aGlzLnN0YXQgPT0gJ2Rlcm5pZXJlIGNoYW5jZScpIHJldHVybiB0aGlzLmluc2VydFJvbGwoW01hdGguY2VpbChNYXRoLnJhbmRvbSgpICogNildLHBhcnNlSW50KGRpZmYpLHRoaXMuc3RhdCk7XG5cbiAgICAgICAgbGV0IHJvbGxzID0gW107XG4gICAgICAgIC8vUG9ydGV1ciBzYWluXG4gICAgICAgIGxldCBkaWNlTG9ja2VkID0gKCh0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwxID09IDIyIHx8IHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZS5za2lsbDIgPT0gMjIpICYmICh0aGlzLnN0YXQgIT0gJ3NvY2lhbCcpKT9cbiAgICAgICAgICAgKHRoaXMuZ2V0UHJvZ3Jlc3MoKS5zdGF0ZXNbNV0uY3VycmVudFRpbWUgPiAwID8gMSA6IDApIDogdGhpcy5kaWNlTG9ja2VkO1xuXG4gICAgICAgIC8vY2FsY3VsIGR1IG5vbWJyZSBkw6lzIMOgIGxhbmNlclxuICAgICAgICBsZXQgZGljZXMgPSAodGhpcy5kaWNlTnVtYmVyIC0gZGljZUxvY2tlZCkgPiB0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGVbdGhpcy5zdGF0XSA/IHRoaXMuY2hhcmFjdGVyLmFyY2hldHlwZVt0aGlzLnN0YXRdIDogKHRoaXMuZGljZU51bWJlciAtIGRpY2VMb2NrZWQpO1xuXG5cbiAgICAgICAgLy9EdXIgw6AgY3VpclxuICAgICAgICBpZih0aGlzLnN0YXQgPT0gJ2NvcnBzJyAmJiAodGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlLnNraWxsMSA9PSAxNyB8fCB0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwyID09IDE3KSl7XG4gICAgICAgICAgbGV0IHN0YXRlcyA9IHRoaXMuZ2V0UHJvZ3Jlc3MoKS5zdGF0ZXM7XG4gICAgICAgICAgbGV0IGJvbnVzRGljZXMgPSAwO1xuICAgICAgICAgIGZvcihsZXQgcz0wOyBzIDwgc3RhdGVzLmxlbmd0aDtzKyspIHsgaWYoc3RhdGVzW3NdLnN0YXR1c0NvbG9yID09ICdibGFuYycgJiYgc3RhdGVzW3NdLmN1cnJlbnRUaW1lID4gMCkgYm9udXNEaWNlcysrO31cbiAgICAgICAgICAgZGljZXMgKz0gYm9udXNEaWNlcztcbiAgICAgICAgICBjb25zb2xlLmxvZygnZHVyIMOgIGN1aXInLGJvbnVzRGljZXMpO1xuICAgICAgICB9XG4gICAgICAgIC8vY2hvaXggZGVzIGTDqXNcbiAgICAgICAgZm9yKGxldCByPTA7IHIgPCBkaWNlcztyKyspIHsgcm9sbHMucHVzaCggTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiA2KSk7IH1cbiAgICAgICAgdGhpcy5yb2xsU291bmRzKCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Um9sbChyb2xscyxwYXJzZUludChkaWZmKSx0aGlzLnN0YXQpO1xuICAgICAgfSxcbiAgICAgIGRpY2VDbGFzcyh2YWx1ZSxkaWZmKVxuICAgICAge1xuICAgICAgICBpZihkaWZmID09IDApIHJldHVybiAnJztcbiAgICAgICAgaWYodmFsdWUgPT0gMSkgcmV0dXJuICdyZWQnO1xuICAgICAgICBpZih2YWx1ZSA8IGRpZmYpIHJldHVybiAnbm90LXJlbGV2YW50JztcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSxcbiAgICAgIHJvbGxTb3VuZHMoKXtcbiAgICAgICAgYXVkaW9FZmZlY3RzLnBsYXlTRlgoXCIvYXNzZXRzL3NmeC9kaWNlX3JvbGxfM2Iud2F2XCIsIDAuOCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZDp7XG4gICAgICB1bnVzZWREaWNlOiBmdW5jdGlvbigpe1xuICAgICAgICBsZXQgcmVzID0gdGhpcy5kaWNlTnVtYmVyIC0gdGhpcy5kaWNlTG9ja2VkIC0gdGhpcy5kaWNlVG9TaG93bi5yb2xsLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIChyZXMgPCAwKT8gMCA6IHJlcztcbiAgICAgIH0sXG4gICAgICBkaWNlTnVtYmVyOmZ1bmN0aW9uKClcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvZ3Jlc3MoKS5kaWNlcztcbiAgICAgIH0sXG4gICAgICBoaXN0b3J5OmZ1bmN0aW9uKClcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvZ3Jlc3MoKS5oaXN0b3J5O1xuICAgICAgfSxcbiAgICAgIGRpY2VMb2NrZWQ6IGZ1bmN0aW9uKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb2dyZXNzKCkuZGljZUxvY2tlZDtcbiAgICAgIH0sXG4gICAgICBkaWNlVG9TaG93bjpmdW5jdGlvbigpXG4gICAgICB7XG4gICAgICAgIGlmKHRoaXMuaGlzdG9yeS5sZW5ndGggPiAwKSByZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV07XG4gICAgICAgIGxldCBkaWNlcyA9IFtdO1xuICAgICAgICBmb3IobGV0IGQ9MDsgZCA8IHRoaXMuZGljZU51bWJlcjsgZCsrKSB7IGRpY2VzLnB1c2goNik7IH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJvbGw6ZGljZXMsXG4gICAgICAgICAgICBkaWZmaWN1bHR5OjMsXG4gICAgICAgICAgICBkYXRlOm51bGwsXG4gICAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBjaGFyYWN0ZXIoKSB7cmV0dXJuIHRoaXMuZ2V0Q2hhcmFjdGVyKCk7fSxcbiAgICB9XG4gIH07XG4gIDwvc2NyaXB0PlxuXG4gIDxzdHlsZSBzY29wZWQ+XG4gIHVsIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5yZWR7XG4gICAgY29sb3I6YnJvd247XG4gIH1cblxuICAudW51c2VkRGljZXtcbiAgICBjb2xvcjpyZ2IoNDAsNDAsNDApO1xuICB9XG4gIC5ub3QtcmVsZXZhbnR7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICBsaXtcbiAgICBtYXJnaW46IDJweCA1cHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiA1MHB4O1xuICB9XG4gIC5idG4uYnRuLXN1Y2Nlc3Mge1xuXHRtYXJnaW46IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICM0YzRjNGM7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICM0YzRjNGMsICM0YzRjNGMsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwO1xuICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogIzk3OTc5NztcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbn1cbi5idG4uYnRuLXN1Y2Nlc3M6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSg0MCwxNjcsNjksLjApO1xuICBib3JkZXItY29sb3I6IGJyb3duO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgYnJvd24sIGJyb3duLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbn1cblxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmhvdmVye1xuICBjb2xvcjogI2YwZTZkMjtcbiAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgIzRjNGM0YywgIzRjNGM0YywgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn1cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cbmJ1dHRvbiwgc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuc2VsZWN0e1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG5zZWxlY3Q6Zmlyc3Qtb2YtdHlwZXtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDAgMCA1cHg7XG59XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAgIHVsIHtcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICB9XG4gICAgLmJ0bi5idG4tc3VjY2VzcyB7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXt9XG4gIDwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2PlxuICA8dWw+XG4gICAgPGxpIHYtZm9yPVwibGluZSBpbiBoaXN0b3J5XCI+XG4gICAgICA8c3Bhbj57e2RhdGUobGluZS50aW1lKX19PC9zcGFuPlxuICAgICAgPHNwYW4+KHt7ZGlmZlRvVGV4dChsaW5lLnN0YXQpfX0ge3tkaWZmVG9UZXh0KGxpbmUuZGlmZmljdWx0eSl9fSkgOjwvc3Bhbj5cbiAgICAgIDxzcGFuIHYtZm9yPVwiZGljZSBpbiBsaW5lLnJvbGxcIiA6Y2xhc3M9XCJkaWNlQ2xhc3MoZGljZSxsaW5lLmRpZmZpY3VsdHkpXCI+XG4gICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwiZGljZSA9PSAxXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLW9uZSddXCIgLz5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJkaWNlID09IDJcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtdHdvJ11cIiAvPlxuICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cImRpY2UgPT0gM1wiIDppY29uPVwiWydmYXMnLCAnZGljZS10aHJlZSddXCIgLz5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJkaWNlID09IDRcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZm91ciddXCIgLz5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJkaWNlID09IDVcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZml2ZSddXCIgLz5cbiAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJkaWNlID09IDZcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utc2l4J11cIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG4gIDxzY3JpcHQ+XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHsgZmFEaWNlT25lLGZhRGljZVR3byxmYURpY2VUaHJlZSxmYURpY2VGb3VyLGZhRGljZUZpdmUsZmFEaWNlU2l4fSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5pbXBvcnQgdGltZVN0YW1wQ29udmVydGVyIGZyb20gXCIuLi8uLi9vdXRpbHMvdGltZVN0YW1wVG9EYXRlXCI7XG5saWJyYXJ5LmFkZChmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXgpO1xuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgLy9Ob20gZGUgbGEgdnVlXG4gICAgbmFtZTogXCJEaWNlSGlzdG9yeVwiLFxuICAgIGluamVjdDpbJ2dldFByb2dyZXNzJ10sXG4gICAgcHJvcHM6IHt9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgIGRhdGUodGltZSlcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHRpbWVTdGFtcENvbnZlcnRlci5EYXRldGltZVRvRGF0ZUhvdXJzKHRpbWUpO1xuICAgICAgfSxcbiAgICAgIGRpY2VDbGFzcyh2YWx1ZSxkaWZmKVxuICAgICAge1xuICAgICAgICBpZih2YWx1ZSA9PSAxKSByZXR1cm4gJ3JlZCc7XG4gICAgICAgIGlmKHZhbHVlIDwgZGlmZikgcmV0dXJuICdub3QtcmVsZXZhbnQnO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9LFxuICAgICAgZGlmZlRvVGV4dCh2YWx1ZSlcbiAgICAgIHtcbiAgICAgICAgc3dpdGNoKHBhcnNlSW50KHZhbHVlKSl7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuICdTcMOpY2lhbCc7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuICdGYWNpbGUnO1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIHJldHVybiAnTW95ZW4nO1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiAnQXNzZXogRHVyJztcbiAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gJ1Ryw6hzIER1cic7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgY29tcHV0ZWQ6e1xuICAgICAgaGlzdG9yeTpmdW5jdGlvbigpXG4gICAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb2dyZXNzKCkuaGlzdG9yeVxuICAgICAgfSxcbiAgICB9XG4gIH07XG4gIDwvc2NyaXB0PlxuICBcbiAgPHN0eWxlIHNjb3BlZD5cbiAgZGl2IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODI4Mjg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogOTAlO1xuICAgIG1hcmdpbjogMjBweDtcbiAgfVxuXG4gIHNwYW57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAycHg7XG4gIH1cblxuICBzcGFuOmZpcnN0LW9mLXR5cGUsXG4gIHNwYW46bnRoLW9mLXR5cGUoMil7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIHNwYW46bnRoLW9mLXR5cGUoMil7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICB9XG4gIC5yZWR7XG4gICAgY29sb3I6YnJvd247XG4gIH1cblxuICAubm90LXJlbGV2YW50e1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgbGl7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIH1cblxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcblxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSxcbiAgICBzcGFuOm50aC1vZi10eXBlKDIpe1xuICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIH0gICAgICBcbiAgICBzcGFuOm50aC1vZi10eXBlKDIpe1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICB1bCB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuICB9XG4gIDwvc3R5bGU+XG4gICIsIjx0ZW1wbGF0ZT5cbiAgPHRhYmxlPlxuICAgIDx0ciB2LWZvcj1cIihzdGF0ZSxpbmRleCkgaW4gc3RhdGVzXCIgOmNsYXNzPVwic3RhdGUuc3RhdHVzQ29sb3JcIiA6a2V5PVwiaW5kZXhcIiA6dGl0bGU9XCJzdGF0ZS5kZXNjcmlwdGlvblwiPlxuICAgICAgPHRoPlxuICAgICAgICA8bGFiZWwgOmZvcj1cInN0YXRlLmxpYmVsXCI+e3tzdGF0ZS5saWJlbH19PC9sYWJlbD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQ+XG4gICAgICAgIDxpbnB1dCA6aWQ9XCJzdGF0ZS5saWJlbFwiIHR5cGU9XCJjaGVja2JveFwiIEBjaGFuZ2U9XCJ0b2dnbGVTdGF0ZShzdGF0ZS5saWJlbClcIiA6dGl0bGU9XCJzdGF0ZS5kZXNjcmlwdGlvblwiLz5cbiAgICAgICAgPHNwYW4gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lIDwgc3RhdGUudGltZUxpbWl0IHx8ICFzdGF0ZS5kZWF0aCB8fCBzdGF0ZS5jdXJyZW50VGltZSA9PSAwXCI+XG4gICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIHYtaWY9XCJzdGF0ZS5jdXJyZW50VGltZSA9PSAxXCIgOmljb249XCJbJ2ZhcycsICdkaWNlLW9uZSddXCIgLz5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lID09IDJcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtdHdvJ11cIiAvPlxuICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiB2LWlmPVwic3RhdGUuY3VycmVudFRpbWUgPT0gM1wiIDppY29uPVwiWydmYXMnLCAnZGljZS10aHJlZSddXCIgLz5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lID09IDRcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZm91ciddXCIgLz5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lID09IDVcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2UtZml2ZSddXCIgLz5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gdi1pZj1cInN0YXRlLmN1cnJlbnRUaW1lID09IDZcIiA6aWNvbj1cIlsnZmFzJywgJ2RpY2Utc2l4J11cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIHYtZWxzZT5cbiAgICAgICAgICA8Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdza3VsbCddXCIgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3RhYmxlPlxuPC90ZW1wbGF0ZT5cbiAgPHNjcmlwdD5cbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYURpY2VPbmUsZmFEaWNlVHdvLGZhRGljZVRocmVlLGZhRGljZUZvdXIsZmFEaWNlRml2ZSxmYURpY2VTaXgsIGZhU2t1bGx9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcbmxpYnJhcnkuYWRkKGZhRGljZU9uZSxmYURpY2VUd28sZmFEaWNlVGhyZWUsZmFEaWNlRm91cixmYURpY2VGaXZlLGZhRGljZVNpeCwgZmFTa3VsbCk7XG4gIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAvL05vbSBkZSBsYSB2dWVcbiAgICBuYW1lOiBcIkRpY2VTdGF0c1wiLFxuICAgIGluamVjdDpbJ2dldFByb2dyZXNzJywndG9nZ2xlU3RhdGUnXSxcbiAgICBkYXRhKCkge1xuICAgIHJldHVybiB7fVxuICB9LFxuICAgIHByb3BzOiB7fSxcbiAgICBtZXRob2RzOiB7XG4gICAgfSxcbiAgICBjb21wdXRlZDp7XG4gICAgICBzdGF0ZXMoKXtcbiAgICAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmVzcygpLnN0YXRlcztcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIDwvc2NyaXB0PlxuXG4gIDxzdHlsZSBzY29wZWQ+XG4gIHRhYmxle1xuICAgIG1hcmdpbjogMTBweDtcbiAgICB3aWR0aDogODAlO1xuICB9XG5cbiAgdHJ7XG5cbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzUxNTE1MSwgIzUxNTE1MSwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwIDAgMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgbWluLXdpZHRoOiAxNjdweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIHRyOmxhc3Qtb2YtdHlwZXtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwIDFweCAxcHg7XG5cbiAgfVxuICB0ZCBpbnB1dHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdGh7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcblxuICAgIH1cblxuICAuYmxhbmN7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgLmdyaXN7XG4gICAgY29sb3I6IGdyZXk7XG4gIH1cblxuICAubm9pcntcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAwNzU2O1xuICAgIGJhY2tncm91bmQ6IHJnYigzMiw3LDg2KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMzIsNyw4NiwxKSA1MCUsIHJnYmEoMTMxLDEyOCwxNTAsMCkgMTAwJSk7XG4gIH1cbiAgbGFiZWx7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcblxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICB9XG4gIDwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2IGNsYXNzPVwiY2hhcmFjdGVyU2hlZXRcIj5cbiAgPGRpdj5cbiAgICA8aDE+e3tjaGFyYWN0ZXIubmFtZX19PC9oMT4gICAgXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2hhcmFjdGVyQ2FyZFwiPlxuICAgIDxBcmNoZXR5cGVDYXJkIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNtb2RhbENob29zZUFyY2hldHlwZVwiIDphcmNoZXR5cGU9XCJjaGFyYWN0ZXIuYXJjaGV0eXBlXCIgOmdlbnJlPVwiY2hhcmFjdGVyLmdlbnJlXCIvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN0YXRcIj5cbiAgICA8U3RhdGVzLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkaWNlTGluZVwiPlxuICAgIDxEaWNlTW9kdWxlLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoaXN0b3J5XCI+XG4gICAgPERpY2VIaXN0b3J5Lz5cbiAgPC9kaXY+XG4gIDxidXR0b24gY2xhc3M9XCJjaGFuZ2VDaGFyYWN0ZXIgYnRuIGJ0bi1zdWNjZXNzXCIgQGNsaWNrPVwic2V0TG9ja2VkQ2hhcmFjdGVyKGZhbHNlKVwiPkNoYW5nZXIgZGUgcGVyc29ubmFnZTwvYnV0dG9uPlxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cbmltcG9ydCBBcmNoZXR5cGVDYXJkIGZyb20gJy4uLy4uL2NoYXJhY3RlckNyZWF0b3IvQXJjaGV0eXBlQ2FyZC52dWUnO1xuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhTWFycywgZmFWZW51c30gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IERpY2VNb2R1bGUgZnJvbSBcIi4uLy4uL2NoYXJhY3RlckNyZWF0b3IvRGljZU1vZHVsZS52dWVcIjtcbmltcG9ydCBEaWNlSGlzdG9yeSBmcm9tIFwiLi4vLi4vY2hhcmFjdGVyQ3JlYXRvci9EaWNlSGlzdG9yeS52dWVcIlxuaW1wb3J0IFN0YXRlcyBmcm9tIFwiLi4vLi4vY2hhcmFjdGVyQ3JlYXRvci9TdGF0ZXMudnVlXCJcblxubGlicmFyeS5hZGQoIGZhTWFycywgZmFWZW51cyk7XG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImNoYXJhY3RlclNoZWV0XCIsXG4gIGluamVjdDpbJ2dldENoYXJhY3RlcicsJ3NldExvY2tlZENoYXJhY3RlciddLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICAgIEFyY2hldHlwZUNhcmQsXG4gICAgRGljZU1vZHVsZSxcbiAgICBEaWNlSGlzdG9yeSxcbiAgICBTdGF0ZXMsXG4gIH0sXG4gIHByb3BzOiB7XG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge31cbiAgfSxcbiAgY29tcHV0ZWQ6e1xuICAgIGNoYXJhY3RlcigpIHtyZXR1cm4gdGhpcy5nZXRDaGFyYWN0ZXIoKTt9LFxuXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICB9LFxuXG4gIG1vdW50ZWQoKSB7XG4gIH0sXG4gIHdhdGNoOiB7XG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uY2hhcmFjdGVyU2hlZXR7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyAvKiAjMDEwYTEzOyovXG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAzMHB4IDExMHB4IDEzMHB4IDFmciA1MHB4IDUwcHg7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsMWZyKTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uY2hhcmFjdGVyU2hlZXQgPiBkaXY6bGFzdC1vZi10eXBle1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNoYXJhY3RlclNoZWV0ID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IDQ7XG4gICAgZ3JpZC1yb3ctc3RhcnQ6IDI7XG59XG4uY2hhcmFjdGVyQ2FyZFxue1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICAgIGdyaWQtY29sdW1uLWVuZDogMjtcbiAgICBncmlkLXJvdy1zdGFydDogMjtcbiAgICBncmlkLXJvdy1lbmQ6IDU7XG59XG5cbmgxe1xuICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZmZlNGFmLCAjNjI1NDNhKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAzLjVyZW07XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2NkYmQ5MTtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICM1MTUxNTEsICM1MTUxNTEsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDAgMCAxcHggMDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAxMjBweDtcbn1cbi5kaWNlTGluZVxue1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAzO1xuICAgIGdyaWQtY29sdW1uLWVuZDogMztcbiAgICBncmlkLXJvdy1zdGFydDogMztcbiAgICBncmlkLXJvdy1lbmQ6IDM7XG59XG5cbi5zdGF0e1xuICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgZ3JpZC1jb2x1bW4tZW5kOiAxO1xuICBncmlkLXJvdy1zdGFydDogMztcbiAgZ3JpZC1yb3ctZW5kOiA1O1xufVxuXG4uY2hhbmdlQ2hhcmFjdGVye1xuICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgZ3JpZC1jb2x1bW4tZW5kOiAyO1xuICBncmlkLXJvdy1zdGFydDogNTtcbiAgZ3JpZC1yb3ctZW5kOiA1O1xufVxuXG4uaGlzdG9yeXtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDM7XG4gIGdyaWQtY29sdW1uLWVuZDogMztcbiAgZ3JpZC1yb3ctc3RhcnQ6IDQ7XG4gIGdyaWQtcm93LWVuZDogNTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogOTAlO1xufVxuXG4uY2hhcmFjdGVyU2hlZXQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgd2lkdGg6IDEwdnc7XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xMGVtO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsMCwwLC41KSAwJSwgcmdiYSgxMSwyMCwyNywwKSAxMDAlKTtcbn1cblxuaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGJyb3duICFpbXBvcnRhbnQ7XG59XG5cbi5nZW5yZVNlbGVjdHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5nZW5yZVNlbGVjdCBpbnB1dHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5nZW5yZVNlbGVjdCBsYWJlbHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZ2VucmVTZWxlY3QgbGFiZWw6Zmlyc3Qtb2YtdHlwZXtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxubGFiZWwgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IDFweDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDBweCBzb2xpZCBicm93bjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQrbGFiZWwgc3BhbntcbiAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG59XG4uZ2VucmVTZWxlY3QgbGFiZWw6bGFzdC1vZi10eXBle1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uc2h1ZmZsZXtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlX2luO1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuLmJ0bi5idG4tc3VjY2VzcyB7XG5cdG1hcmdpbjogYXV0bztcblx0YmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IGJyb3duO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCBicm93biwgYnJvd24sIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwO1xuICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogYnJvd247XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuLmJ0bi1zdWNjZXNzOmZvY3VzIHtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIHdoaXRlLCB3aGl0ZSwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuLXN1Y2Nlc3MuZm9jdXMsIC5idG4tc3VjY2Vzczpmb2N1c3tcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmhvdmVye1xuICBjb2xvcjogI2YwZTZkMjtcbiAgdGV4dC1zaGFkb3c6IDBweCAwcHggMnB4IHdoaXRlLCAwIDAgMjVweCAjZjBlNmQyO1xuICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgYnJvd24sIGJyb3duLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcblxufSBcbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsIFxuLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjZjBlNmQyLCAjZjBlNmQyLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDAlLCByZ2JhKDEzMSwxMjgsMTUwLDAuMDIpIDEwMCUpO1xuXG59XG5Aa2V5ZnJhbWVzIHNsaWRlX2lue1xuICAwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTB2dywxMDB2aCkgcm90YXRlM2QoNSwgMSwgMSwgNDFkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAuY2hhcmFjdGVyU2hlZXR7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5jaGFyYWN0ZXJTaGVldCA+IGRpdjpmaXJzdC1vZi10eXBlIGlucHV0IHtcbiAgICB3aWR0aDogMzB2dztcbn1cbn1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe1xuICAgIC5jaGFyYWN0ZXJTaGVldCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgLmNoYXJhY3RlclNoZWV0ID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbjogMTEwcHggMCAzMHB4IDA7XG4gIH1cbiAgXG4gIC5jaGFyYWN0ZXJTaGVldCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuY2hhcmFjdGVyU2hlZXQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgd2lkdGg6IDUwdnc7XG4gIH1cblxuICAuaDEsIGgxIHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIH1cbiAgLmNoYW5nZUNoYXJhY3RlcntcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB9XG5cbiAgLnN0YXR7XG4gICAgb3JkZXI6MjtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG4gIH1cblxuICAuYnRuLmJ0bi1zdWNjZXNzOmxhc3Qtb2YtdHlwZXtcbiAgICBvcmRlcjozO1xuICAgIG1hcmdpbjogMTVweCAwIDI1cHggMDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpIGFuZCAobWF4LWhlaWdodDogMTAwcHgpe1xuICAgIC5jaGFyYWN0ZXJTaGVldCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG5cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcbiAgLmNoYXJhY3RlclNoZWV0ID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIFxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYm9hcmRcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnZW5yZVNlbGVjdFwiID5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cImdlbnJlXCIgdmFsdWU9XCJob21tZVwiIGlkPVwiSG9tXCIgdi1tb2RlbD1cImdlbnJlXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIkhvbVwiPjxzcGFuPjxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ21hcnMnXVwiIC8+PC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJnZW5yZVwiIHZhbHVlPVwiZmVtbWVcIiBpZD1cIkZlbVwiIHYtbW9kZWw9XCJnZW5yZVwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJGZW1cIj48c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICd2ZW51cyddXCIgLz48L3NwYW4+PC9sYWJlbD4gICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJuYW1lXCIvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8QXJjaGV0eXBlQ2FyZCB2LWZvcj1cIihpZCxpbmRleCkgaW4gc2VsZWN0ZWRDYXJkc1wiIFxuICAgICAgICBAY2hvb3NlPVwiY2hvb3NlKGlkKVwiICAgICBcbiAgICAgICAgZGF0YS10b2dnbGU9XCJtb2RhbFwiXG4gICAgICAgIGRhdGEtdGFyZ2V0PVwiI21vZGFsQ2hvb3NlQXJjaGV0eXBlXCJcbiAgICAgICAgOmtleT1cImlkXCIgOmFyY2hldHlwZT1cImFyY2hldHlwZVtpZF1cIlxuICAgICAgICA6Z2VucmU9XCJnZW5yZVwiXG4gICAgICAgICBjbGFzcz1cInNodWZmbGVcIiA6c3R5bGU9XCJgYW5pbWF0aW9uLWR1cmF0aW9uOiAkeygwLjgqKGluZGV4KzEpKX1zO2BcIlxuICAgICAgICAgLz5cbiAgICBcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvdGVtcGxhdGU+XG4gICAgPHNjcmlwdD5cbiAgICBpbXBvcnQgQXJjaGV0eXBlQ2FyZCBmcm9tICcuLi8uLi9jaGFyYWN0ZXJDcmVhdG9yL0FyY2hldHlwZUNhcmQudnVlJztcbiAgICBpbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuICAgIGltcG9ydCB7IGZhTWFycywgZmFWZW51c30gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuICAgIFxuICAgIGxpYnJhcnkuYWRkKCBmYU1hcnMsIGZhVmVudXMpO1xuICAgIGV4cG9ydCBkZWZhdWx0IHtcbiAgICAgIC8vTm9tIGRlIGxhIHZ1ZVxuICAgICAgbmFtZTogXCJjaG9vc2VBcmNoZXR5cGVcIixcbiAgICAgIGluamVjdDpbJ3NldENoYXJhY3RlciddLFxuICAgICAgLy9vbiBwcmVjaXNlIGxlcyB2dWVzIHF1aSB2b250IMOqdHJlIGNvbW11bmlxdcOpZSDDoCBsYSBwYWdlXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEFyY2hldHlwZUNhcmRcbiAgICAgIH0sXG4gICAgICBwcm9wczoge1xuICAgICAgICBhcmNoZXR5cGU6e30sXG4gICAgICAgIG5vbXM6e30sXG4gICAgICB9LFxuICAgIFxuICAgICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZWxlY3RlZENhcmRzOiBbXSxcbiAgICAgICAgICBuYW1lOidvaycsXG4gICAgICAgICAgZ2VucmU6J2hvbW1lJyxcbiAgICAgICAgICBjaG9zZW46ZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgY29tcHV0ZWQ6e1xuICAgICAgICBjaGFyYWN0ZXIoKVxuICAgICAgICB7XG4gICAgICAgICAgaWYoIXRoaXMuY2hvc2VuKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgbGV0IHRpdHJlID0gKHRoaXMuZ2VucmUgPT0gXCJob21tZVwiKT8nbm9tJzonbm9tRic7XG4gICAgICAgICAgbGV0IGNoYXJhY3RlciA9IHtcbiAgICAgICAgICAgIG5hbWU6dGhpcy5uYW1lICsgJywgJyt0aGlzLmFyY2hldHlwZVt0aGlzLmNob3Nlbl1bdGl0cmVdLFxuICAgICAgICAgICAgZ2VucmU6dGhpcy5nZW5yZSxcbiAgICAgICAgICAgIGFyY2hldHlwZTpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYXJjaGV0eXBlW3RoaXMuY2hvc2VuXSkpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGNoYXJhY3RlcjsgXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIFxuICAgICAgbWV0aG9kczoge1xuICAgICAgICByYW5kTmFtZSgpXG4gICAgICAgIHtcbiAgICAgICAgICBsZXQgcmFuZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubm9tc1t0aGlzLmdlbnJlXS5sZW5ndGgpO1xuICAgICAgICAgIHJldHVybiB0aGlzLm5vbXNbdGhpcy5nZW5yZV1bcmFuZF07XG4gICAgICAgIH0sXG4gICAgICAgIGNob29zZShpZClcbiAgICAgICAge1xuICAgICAgICAgIHRoaXMuY2hvc2VuID0gaWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgXG4gICAgICBtb3VudGVkKCkge1xuICAgICAgICB3aGlsZSh0aGlzLnNlbGVjdGVkQ2FyZHMubGVuZ3RoPDMgKVxuICAgICAgICB7XG4gICAgICAgICAgbGV0IHJhbmQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLmFyY2hldHlwZS5sZW5ndGgpO1xuICAgICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkQ2FyZHMuaW5jbHVkZXMocmFuZCkpIHRoaXMuc2VsZWN0ZWRDYXJkcy5wdXNoKHJhbmQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMucmFuZE5hbWUoKTtcbiAgICAgIH0sXG4gICAgICB3YXRjaDoge1xuICAgICAgICBnZW5yZSgpe1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLnJhbmROYW1lKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNoYXJhY3Rlcigpe1xuICAgICAgICAgIHRoaXMuc2V0Q2hhcmFjdGVyKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFyYWN0ZXIpKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgICA8L3NjcmlwdD5cbiAgICBcbiAgICA8c3R5bGUgc2NvcGVkPlxuICAgIC5ib2FyZHtcbiAgICAgIHdpZHRoOiA5OXZ3O1xuICAgICAgaGVpZ2h0OiBjYWxjKDk5dmggLSAzMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIFxuICAgIC5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICB9XG4gICAgXG4gICAgLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUgaW5wdXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICB3aWR0aDogMTB2dztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMTBlbTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigxNTUgMTUzIDE1MyAvIDIwJSkgMCUsIHJnYmEoMTEsMjAsMjcsMCkgMTAwJSlcbiAgICB9XG4gICAgXG4gICAgaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogYnJvd24gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLmdlbnJlU2VsZWN0e1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwxZnIpO1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuICAgIFxuICAgIC5nZW5yZVNlbGVjdCBpbnB1dHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5nZW5yZVNlbGVjdCBsYWJlbHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICAuZ2VucmVTZWxlY3QgbGFiZWw6Zmlyc3Qtb2YtdHlwZXtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAwIDAgNTAlO1xuICAgIH1cbiAgICBsYWJlbCBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzOHB4O1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgYnJvd247XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICBcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCBzcGFue1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gICAgfVxuICAgIC5nZW5yZVNlbGVjdCBsYWJlbDpsYXN0LW9mLXR5cGV7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDUwJSA1MCUgMDtcbiAgICB9XG4gICAgLnNodWZmbGV7XG4gICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlX2luO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgIFxuICAgIEBrZXlmcmFtZXMgc2xpZGVfaW57XG4gICAgICAwJXtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwdncsMTAwdmgpIHJvdGF0ZTNkKDUsIDEsIDEsIDQxZGVnKTtcbiAgICAgIH1cbiAgICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAgIC5ib2FyZHtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICB9XG4gICAgXG4gICAgICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAzMHZ3O1xuICAgIH1cbiAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG4gICAgICAgIC5ib2FyZCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuICAgIFxuICAgICAgLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW46IDEwcHggMCAzMHB4IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ib2FyZCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiA1MHZ3O1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChtYXgtaGVpZ2h0OiAxMDBweCl7XG4gICAgICAgIC5ib2FyZCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcbiAgICAgICAgLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgICA8L3N0eWxlPlxuICAgICIsIjx0ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJib2FyZFwiPlxuICA8ZGl2IHYtaWY9XCIhbG9ja2VkQ2hhcmFjdGVyXCI+XG4gICAgPENob29zZUFyY2hldHlwZSA6YXJjaGV0eXBlPVwiYXJjaGV0eXBlXCIgOm5vbXM9XCJub21zXCIvPlxuICA8L2Rpdj5cbiAgPGRpdiB2LWVsc2U+XG4gICAgPENoYXJhY3RlclNoZWV0Lz5cbiAgPC9kaXY+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IENoYXJhY3RlclNoZWV0IGZyb20gXCIuL2NoYXJhY3RlclRhYi9jaGFyYWN0ZXJTaGVldC52dWVcIlxuaW1wb3J0IENob29zZUFyY2hldHlwZSBmcm9tIFwiLi9jaGFyYWN0ZXJUYWIvY2hvb3NlQXJjaGV0eXBlLnZ1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImdyb3VwXCIsXG4gIGluamVjdDpbJ2dldENoYXJhY3RlckxvY2tlZCddLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICAgIENoYXJhY3RlclNoZWV0LFxuICAgIENob29zZUFyY2hldHlwZSxcbiAgfSxcbiAgcHJvcHM6IHtcbiAgICBhcmNoZXR5cGU6e30sXG4gICAgbm9tczp7fSxcbiAgfSxcblxuICBkYXRhKCkge1xuICAgIHJldHVybiB7fVxuICB9LFxuICBjb21wdXRlZDp7XG4gICAgbG9ja2VkQ2hhcmFjdGVyKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDaGFyYWN0ZXJMb2NrZWQoKTtcbiAgICB9LFxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgfSxcblxuICBtb3VudGVkKCkge1xuICB9LFxuICB3YXRjaDoge30sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uYm9hcmR7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzMHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcbiAgbWFyZ2luOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vd3d3LnZhZ2Fib25kcy1qZHIuZnIvYXNzZXRzL2ltYWdlcy9pbGx1c3RyYXRpb24vcGFnZS9jaGFyYWN0ZXItc2VsZWMvYmFja2dyb3VuZC90YXZlcm4ucG5nKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLmJvYXJkID4gZGl2Omxhc3Qtb2YtdHlwZXtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgd2lkdGg6IDEwdnc7XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xMGVtO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsMCwwLC41KSAwJSwgcmdiYSgxMSwyMCwyNywwKSAxMDAlKTtcbn1cblxuaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IGJyb3duICFpbXBvcnRhbnQ7XG59XG5cbi5nZW5yZVNlbGVjdHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWFyZ2luOiAxMHB4IGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsMWZyKTtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLmdlbnJlU2VsZWN0IGlucHV0e1xuICBkaXNwbGF5OiBub25lO1xufVxuLmdlbnJlU2VsZWN0IGxhYmVse1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5nZW5yZVNlbGVjdCBsYWJlbDpmaXJzdC1vZi10eXBle1xuICBib3JkZXItcmFkaXVzOiA1MCUgMCAwIDUwJTtcbn1cbmxhYmVsIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyOiAwcHggc29saWQgYnJvd247XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkK2xhYmVsIHNwYW57XG4gIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xufVxuLmdlbnJlU2VsZWN0IGxhYmVsOmxhc3Qtb2YtdHlwZXtcbiAgYm9yZGVyLXJhZGl1czogMCA1MCUgNTAlIDA7XG59XG4uc2h1ZmZsZXtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlX2luO1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlX2lue1xuICAwJXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTB2dywxMDB2aCkgcm90YXRlM2QoNSwgMSwgMSwgNDFkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAuYm9hcmR7XG4gIGhlaWdodDogMTAwdmg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLmJvYXJkID4gZGl2OmZpcnN0LW9mLXR5cGUgaW5wdXQge1xuICAgIHdpZHRoOiAzMHZ3O1xufVxufVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7XG4gICAgLmJvYXJkIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC5ib2FyZCA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW46IDEwcHggMCAzMHB4IDA7XG4gIH1cbiAgXG4gIC5ib2FyZCA+IGRpdjpsYXN0LW9mLXR5cGV7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuYm9hcmQgPiBkaXY6Zmlyc3Qtb2YtdHlwZSBpbnB1dCB7XG4gICAgd2lkdGg6IDUwdnc7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDEwMHB4KXtcbiAgICAuYm9hcmQgPiBkaXY6bGFzdC1vZi10eXBle1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSBhbmQgKG1heC1oZWlnaHQ6IDQwMHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXtcbiAgICAuYm9hcmQgPiBkaXY6bGFzdC1vZi10eXBle1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgXG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdj5cbiAgPGRpdiBjbGFzcz1cImxhbmRzY2FwZVwiPlxuICAgIDxkaXY+PC9kaXY+XG4gICAgPGRpdj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0aXRyZVwiPlxuICAgIDxoMT48c3Bhbj5MZXM8L3NwYW4+PGJyLz52YWdhYm9uZHM8L2gxPlxuICAgIDxzcGFuPkdyYXR1aXQgLSBKRFIgZGllIGFuZCByZXRyeSBk4oCZZXhwbG9yYXRpb24gPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1haW5zY3JlZW5cIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImFmZmljaGVcIj5cbiAgICAgIDxoMj5BIEwnYWZmaWNoZTwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxhIHYtZm9yPVwiaWQgaW4gWzAsMSwyXVwiIDprZXk9XCJpZFwiIDpocmVmPVwiJy9pbmRleC5waHAvYXJ0aWNsZS8nK2FydGljbGVzW2lkXS5pZFwiPlxuICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgIDxkaXYgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2FydGljbGVzW2lkXS5pbWdBZmZpY2hlfSk7YFwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7YXJ0aWNsZXNbaWRdLmNhdGVnb3JpZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGgzPnt7YXJ0aWNsZXNbaWRdLnRpdGxlfX08L2gzPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAge3thcnRpY2xlc1tpZF0uZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwid2VsY29tZVwiPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxoMz5CaWVudmVudWU8L2gzPlxuICAgICAgICA8cD5CaWVudmVudWUgc3VyIGxlIHNpdGUgY29tcGFnbm9uIGRlIDxlbT5WYWdhYm9uZHM8L2VtPiwgbGUgamV1IGRlIHLDtGxlLjwvcD5cbiAgICAgICAgPHA+Q2Ugc2l0ZSBlc3QgZGVzdGluw6kgYXV4IHBlcnNvbm5lcyBxdWkgc291aGFpdGFudCBmYWlyZSB1bmUgcGFydGllIGRlIDxlbT5WYWdhYm9uZHM8L2VtPi48L3A+XG4gICAgICA8L2FydGljbGU+XG4gICAgICA8YXJ0aWNsZT5cbiAgICAgICAgPGgzPlZvaWNpIGNlIHF1ZSB2b3VzIHBvdXZleiB0cm91dmVyIHN1ciBjZSBzaXRlIDo8L2gzPlxuICAgICAgICA8cD5MJ29uZ2xldCBcIkNhcnRlIGR1IG1vbmRlXCI8L3A+XG4gICAgICAgIDxwPkwnb25nbGV0IFwiRG9jdW1lbnRhdGlvblwiIGRpZmbDqXJlbnRlcyBpbmZvcm1hdGlvbnMgc3VyIGwndW5pdmVycyBkdSBqZXUuPC9wPlxuICAgICAgICA8cD5JbCB5IGEgYXVzc2kgdW5lIGJhbnF1ZSBkZSBub21zIGRhbnMgbCdvbmdsZXQgY29ycmVzcG9uZGFudC4gVm91cyBwb3VycmV6IGFpbnNpIGZhY2lsZW1lbnQgaW1wcm92aXNlciBkZXMgcGVyc29ubmFnZXMgZXQgcHJvcG9zZXIgw6Agdm9zIGpvdWV1cnMgbGVzIG1vaW5zIGluc3BpcsOpcyBkZXMgbm9tcyBjb2jDqXJlbnRzIGV0IHF1aSBsZXVyIHBsYWl0PC9wPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwibmV3c1wiPlxuICAgICAgPGgyPkRlcm5pw6hyZXMgYWN0dXM8L2gyPlxuICAgICAgPGEgdi1mb3I9XCJhcnRpY2xlIGluIGFydGljbGVzXCIgOmtleT1cImFydGljbGUuaWRcIiA6aHJlZj1cIicvaW5kZXgucGhwL2FydGljbGUvJythcnRpY2xlLmlkXCIgPlxuICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICA8aW1nIDpzcmM9XCJhcnRpY2xlLmltZ1wiLz5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdj57e2FydGljbGUuY2F0ZWdvcmllfX08L2Rpdj5cbiAgICAgICAgICAgIDxoMz57e2FydGljbGUudGl0bGV9fTwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3thcnRpY2xlLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDx0aW1lPnt7dG9EYXRlKGFydGljbGUuZGF0ZS50aW1lc3RhbXApfX08L3RpbWU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgIDwvYT5cbiAgICA8L3NlY3Rpb24+XG5cbiAgPC9kaXY+XG48L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IHRpbWVTdGFtcENvbnZlcnRlciBmcm9tIFwiLi4vLi4vb3V0aWxzL3RpbWVTdGFtcFRvRGF0ZVwiO1xuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJob21lXCIsXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gIH0sXG4gIHByb3BzOiB7XG4gICAgYXJ0aWNsZXM6e30sXG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG4gIHByb3ZpZGUoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICB0b0RhdGUoVGltZXN0YW1wKVxuICAgIHtcbiAgICAgIHJldHVybiB0aW1lU3RhbXBDb252ZXJ0ZXIudGltZXN0YW1wVG9EYXRlKFRpbWVzdGFtcCk7XG4gICAgfVxuICB9LFxuXG4gIG1vdW50ZWQoKSB7fSxcbiAgd2F0Y2g6IHt9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1haW5zY3JlZW4ge1xuICAgIG1hcmdpbjogMCAxNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nOiAyJTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG5hcnRpY2xlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICAgIG1hcmdpbjogMzBweCAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcblxufVxuXG4uaDIsIGgyIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTtcbn1cblxuLmxhbmRzY2FwZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDk1dmg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xufVxuXG4ubGFuZHNjYXBlIGRpdjpmaXJzdC1vZi10eXBle1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwwLDAsMSkgMCUsIHJnYmEoMCwwLDAsMC41KSAzMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgaGVpZ2h0OiAxMTAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4ubGFuZHNjYXBlIGRpdiArIGRpdiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3d3dy52YWdhYm9uZHMtamRyLmZyL2Fzc2V0cy9pbWFnZXMvaWxsdXN0cmF0aW9uL2NvdmVyL2hvbWU0dXAuanBnJyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTEwJTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA4MCU7XG59XG5cbi50aXRyZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0zMHZoICsgMzBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMi41dmg7XG59XG5cbi50aXRyZSBoMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDVyZW07XG4gICAgbGluZS1oZWlnaHQ6IC42ZW07XG59XG5cbi50aXRyZSBoMSBzcGFue1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi50aXRyZSBoMSArIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS41NXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbi10b3A6IDEzdmg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDN7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xufVxuXG4ud2VsY29tZXtcbiAgZGlzcGxheTpncmlkO1xufVxuLmFmZmljaGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHB4IDI1MHB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktaXRlbXM6IHN0cmV0Y2g7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXJnaW46IDBweCAtNDBweCAxNXB4O1xuICAgIHBhZGRpbmc6IDM1cHggNDBweCAwO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkICMxZTI4MmQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoNywxMCwxMSwxKSAwJSwgcmdiYSgxMSwyMCwyNywwKSAxMDAlKTtcbn1cbi5hZmZpY2hlID4gZGl2IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYWZmaWNoZSA+IGRpdiA+IGRpdlxue1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLDFmcik7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4uYWZmaWNoZSBhcnRpY2xlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEsMTAsMTksMTAwKTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuXG4uYWZmaWNoZSBhcnRpY2xlOmhvdmVyIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjY2NjM2E3O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMSwxMCwxOSwxMDApO1xuICAgIC8qYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDZkZWcsIHJnYmEoNTMsNTcsNTcsMSkgMCUsIHJnYmEoMjYsMzMsMzgsMSkgNTAlLCByZ2JhKDEsMTAsMTksMSkgMTAwJSk7Ki9cbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xufVxuXG4uYWZmaWNoZSBhcnRpY2xlIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYWZmaWNoZSBhcnRpY2xlID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICAgIGdyaWQtY29sdW1uLWVuZDogMjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xufVxuXG4uYWZmaWNoZSBhcnRpY2xlID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtaW4td2lkdGg6IDIyMHB4O1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDIwMHB4O1xufVxuXG4uYWZmaWNoZSBhcnRpY2xlID4gZGl2Omxhc3Qtb2YtdHlwZSA+IGRpdiB7XG4gICAgY29sb3I6IGJyb3duO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubmV3c3tcbiAgZGlzcGxheTpncmlkO1xufVxuXG4ubmV3cyBhcnRpY2xlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgIGNvbG9yOiAjYTRhMDk1O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG59XG5cbi5uZXdzIGE6aG92ZXIgYXJ0aWNsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIGJvcmRlci1jb2xvcjojY2NjM2E3O1xufVxuXG4ubmV3cyBhcnRpY2xlID4gZGl2IHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ubmV3cyBhcnRpY2xlID4gZGl2ID4gZGl2IHtcbiAgbWFyZ2luLWJvdHRvbTogMC44ZW07XG4gIGNvbG9yOiBicm93bjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5uZXdzIGFydGljbGUgPiBpbWcge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXgtd2lkdGg6IDI2LjI1cmVtO1xuXG59XG5cbi5uZXdzIGFydGljbGUgaDMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gICAgLnRpdHJle1xuICAgICAgbWFyZ2luLXRvcDogLTMwdmg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjV2aDtcbiAgICB9XG5cbiAgICAudGl0cmUgaDEge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7XG4gICAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAuNmVtO1xuICAgIH1cblxuICAgIC50aXRyZSBoMSBzcGFue1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLnRpdHJlIGgxICsgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogNnZoO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICB9XG4gICAgLm1haW5zY3JlZW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgcmlnaHQ6IDAlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuYWZmaWNoZSBhcnRpY2xlIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAwLjQzNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgfVxuXG4gICAgLmFmZmljaGUgYXJ0aWNsZSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gICAgfVxuXG4gICAgLm5ld3MgYXJ0aWNsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICBtYXJnaW46IDE1cHggYXV0bztcbiAgICB9XG5cbiAgICAubmV3cyBhOmhvdmVyIGFydGljbGUge1xuICAgICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgIH1cbiAgICAubmV3cyBhcnRpY2xlID4gZGl2IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgLm5ld3MgYXJ0aWNsZSA+IGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJtYWluc2NyZWVuXCI+XG4gICAgPGFydGljbGU+XG4gICAgPHRhYmxlPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgdi1mb3I9XCJsZXR0ZXIgaW4gYWxwaGFiZXRcIiA6a2V5PVwibGV0dGVyXCI+XG4gICAgICAgICAgPHRoPnt7bGV0dGVyfX08L3RoPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiT2JqZWN0LmtleXMoYWxwaGFzLmhvbW1lKS5pbmNsdWRlcyhsZXR0ZXIpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gdi1mb3I9XCIobmFtZSxpbmRleCkgaW4gYWxwaGFzLmhvbW1lW2xldHRlcl1cIiA6a2V5PVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgIHt7bmFtZX19LCBcbiAgICAgICAgICAgICAgICA8L3NwYW4+ICAgICAgICBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgdi1lbHNlPlxuICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cIk9iamVjdC5rZXlzKGFscGhhcy5mZW1tZSkuaW5jbHVkZXMobGV0dGVyKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIHYtZm9yPVwiKG5hbWUsaW5kZXgpIGluIGFscGhhcy5mZW1tZVtsZXR0ZXJdXCIgOmtleT1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgICB7e25hbWV9fSwgXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHYtZWxzZT5cbiAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICAgIDwvYXJ0aWNsZT5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgQWxwaGFiZXQgZnJvbSBcIi4uLy4uL291dGlscy9hbHBoYWJldFwiO1xuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJuYW1lc1wiLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgcHJvcHM6IHtcbiAgICBub21zOnt9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBhbHBoYWJldDpbXSxcblxuICAgIH07XG4gIH0sXG4gIGNvbXB1dGVkOntcbiAgICBhbHBoYXM6ZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIGxldCBuZXdEYXRhID0ge1xuICAgICAgICAnaG9tbWUnOnt9LFxuICAgICAgICAnZmVtbWUnOnt9LFxuICAgICAgfTtcblxuICAgICAgLy90cmkgZGVzIGhvbW1lc1xuICAgICAgbmV3RGF0YS5ob21tZSA9IEFscGhhYmV0Lmdyb3VwQnlGaXJzdExldHRlcih0aGlzLm5vbXMuaG9tbWUpO1xuICAgICAgLy90cmkgZGVzIGZlbW1lc1xuICAgICAgbmV3RGF0YS5mZW1tZSA9IEFscGhhYmV0Lmdyb3VwQnlGaXJzdExldHRlcih0aGlzLm5vbXMuZmVtbWUpO1xuXG4gICAgICByZXR1cm4gbmV3RGF0YTtcbiAgICB9XG4gIH0sXG4gIG1vdW50ZWQoKVxuICB7XG4gICAgY29uc3QgYWxwaGEgPSBBcnJheS5mcm9tKEFycmF5KDI2KSkubWFwKChlLCBpKSA9PiBpICsgNjUpO1xuICAgIHRoaXMuYWxwaGFiZXQgPSBhbHBoYS5tYXAoKHgpID0+IFN0cmluZy5mcm9tQ2hhckNvZGUoeCkpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuYWxwaGFiZXQpO1xuICB9XG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4ubWFpbnNjcmVlbiB7XG4gICAgbWFyZ2luOiAwIDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcGFkZGluZzogMiU7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hcnRpY2xlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5oM3tcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG59XG5cbi5tYWluc2NyZWVuPmFydGljbGU+dGFibGUge1xuICAgIG1hcmdpbi10b3A6IDUwUFg7XG59XG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG50Ym9keSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuXG50aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZTZkMjtcbiAgICBjb2xvcjogIzAxMGExMztcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbnRyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xufVxuXG50ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLyogdGV4dC1hbGlnbjoganVzdGlmeTsgKi9cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgIC5tYWluc2NyZWVuIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDAlO1xuICAgICAgICByaWdodDogMCU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCIoKHNlbGVjdGVkSGV4KSA/ICdzaWRlLWJhci1zaG93JyA6ICdzaWRlLWJhci1zaG93IG1hc3F1ZWUnKSsnICcrKChnbU1vZGUpID8gJycgOiAncGxheWVyLW1vZGUnKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYmFja2dyb3VuZEhleFwiIDpzdHlsZT1cIidiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytkaXNwbGF5LmltZysnKSdcIj5cbiAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGVCdG5cIj48YnV0dG9uIEBjbGljaz1cInRvZ2dsZU9mZigpXCI+WDwvYnV0dG9uPjwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tZGVzY1wiPlxuICAgICAgPGgzIGNsYXNzPVwidG9wVGl0bGVcIj57e2Rpc3BsYXkubm9tfX08L2gzPlxuICAgICAgPGg0IGNsYXNzPVwic3ViVGl0bGVcIiB2LWlmPVwiZmFjdGlvblwiPnt7ZmFjdGlvbn19PC9oND5cbiAgICAgIDxwPjxlbSB2LWh0bWw9XCJkaXNwbGF5LmRlc2NyaXB0aW9uXCI+PC9lbT48L3A+XG4gICAgICA8YnIvPlxuICAgICAgPHAgdi1odG1sPVwiVGV4dFJlcGxhY2VyLnJlcGxhY2VOUEMoVGV4dFJlcGxhY2VyLnJlcGxhY2VNb25zdGVyKFRleHRSZXBsYWNlci5yZXBsYWNlS2V5V29yZHMoVGV4dFJlcGxhY2VyLnJlcGxhY2VJdGVtKGRpc3BsYXkuZGVzY3JpcHRpb25HTSkpLHRydWUpLHRydWUpXCIgdi1pZj1cImdtTW9kZSAmJiBkaXNwbGF5LmRlc2NyaXB0aW9uR01cIiBjbGFzcz1cImdtLWRlc2NcIj48L3A+XG4gICAgICA8cCB2LWVsc2UtaWY9XCJnbU1vZGVcIj5DZXR0ZSBab25lIG5lIGNvbnRpZW50IHBhcyBkZSBwcsOpY2lzaW9ucyBwb3VyIGxlIG1haXRyZSBkdSBqZXUuPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJHTS1wYXJ0XCIgdi1pZj1cImdtTW9kZVwiPlxuXG4gICAgICA8aDQ+U2PDqW5hcmlvcyBsb2NhdXg8L2g0PlxuXG4gICAgICA8ZGl2IHYtaWY9XCIhKGRpc3BsYXkubG9jYWwubGVuZ3RoID4gMClcIj5cbiAgICAgICAgPHA+SWwgc2VtYmxlcmFpdCBxdWUgY2V0dGUgem9uZSBuZSBwb3Nzw6hkZSBwYXMgZGUgc2PDqW5hcmlvIGxvY2FsLjwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHYtZm9yPVwic2NlbmFyaW8gaW4gZGlzcGxheS5sb2NhbFwiIDprZXk9XCJzY2VuYXJpby5pZFwiXG4gICAgICBjbGFzcz1cInF1ZXN0XCIgOnN0eWxlPVwiJ2JhY2tncm91bmQtaW1hZ2U6IHVybCgnK3NjZW5hcmlvLmltZysnKSdcIlxuICAgICAgQGNsaWNrPVwib3BlbkV2ZW50KHNjZW5hcmlvKVwiXG4gICAgICBkYXRhLXRvZ2dsZT1cIm1vZGFsXCJcbiAgICAgIGRhdGEtdGFyZ2V0PVwiI21vZGFsTWFwRXZlbnRcIlxuICAgICAgOmlkPVwiYGV2ZW50JHtzY2VuYXJpby5pZH1gXCJcbiAgICAgID5cbiAgICAgICAgPGgzPnt7c2NlbmFyaW8ubm9tfX08L2gzPlxuICAgICAgICA8cCB2LWh0bWw9XCJzY2VuYXJpby5zaG9ydFwiPjwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aDQ+U2PDqW5hcmlvcyBnw6luw6lyaXF1ZXM8L2g0PlxuXG4gICAgICA8ZGl2IHYtZm9yPVwic2NlbmFyaW8gaW4gZ2VuZXJpY0V2ZW50XCIgOmtleT1cInNjZW5hcmlvLmlkXCJcbiAgICAgIGNsYXNzPVwicXVlc3RcIiA6c3R5bGU9XCInYmFja2dyb3VuZC1pbWFnZTogdXJsKCcrc2NlbmFyaW8uaW1nKycpJ1wiXG4gICAgICBAY2xpY2s9XCJvcGVuRXZlbnQoc2NlbmFyaW8pXCJcbiAgICAgIGRhdGEtdG9nZ2xlPVwibW9kYWxcIlxuICAgICAgZGF0YS10YXJnZXQ9XCIjbW9kYWxNYXBFdmVudFwiXG4gICAgICA6aWQ9XCJgZXZlbnQke3NjZW5hcmlvLmlkfWBcIlxuICAgICAgPlxuICAgICAgICA8aDM+e3tzY2VuYXJpby5ub219fTwvaDM+XG4gICAgICAgIDxwIHYtaHRtbD1cInNjZW5hcmlvLnNob3J0XCI+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIHYtaWY9XCIhYWlFdmVudC5pZCAmJiBCdG5BaVwiIGNsYXNzPVwib3Blbi1haVwiIEBjbGljaz1cImNhbGxPcGVuQWkoKVwiPkfDqW7DqXJlciB1biDDqXbDqG5lbWVudCBzdXBwbMOpbWVudGFpcmU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IGFwaU9wZW5BSSBmcm9tICcuLi8uLi9hcGkvYXBpT3BlbkFJLmpzJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJzaWRlLWJhclwiLFxuICBpbmplY3Q6WydnZXRDb250ZW50JywnZ2V0R2VuZXJpY0V2ZW50JywnZ2V0VGVycml0b3J5JywnZ2V0T3JpZ2luJywndGV4dFJlcGxhY2VyJ10sXG4gIC8vb24gcHJlY2lzZSBsZXMgdnVlcyBxdWkgdm9udCDDqnRyZSBjb21tdW5pcXXDqWUgw6AgbGEgcGFnZVxuICBjb21wb25lbnRzOiB7XG4gIH0sXG4gIHByb3BzOiB7XG4gICAgc2VsZWN0ZWRIZXg6e30sXG4gICAgZ21Nb2RlOnt9LFxuICB9LFxuXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qcmVwbGFjZUtleVdvcmRzOiB0aGlzLixcbiAgICAgIHJlcGxhY2VNb25zdGVyOnRoaXMuLFxuICAgICAgcmVwbGFjZU5QQzogdGhpcy4sXG4gICAgICByZXBsYWNlSXRlbTogdGhpcy4sKi9cbiAgICAgIERlZmF1bHQ6e1xuICAgICAgICBub206J1pvbmUgSW5leHBsb3LDqWUnLFxuICAgICAgICBkZXNjcmlwdGlvbjonQ2V0dGUgcGFydGllIGR1IG1vbmRlIG5cXCdlc3QgcGFzIGVuY29yZSBkw6ljcml0ZS4gTlxcJ2jDqXNpdGV6IHBhcyDDoCBwcm9wb3NlciBkZXMgY2hvc2VzLicsXG4gICAgICAgIGRlc2NyaXB0aW9uR00gOiAnJyxcbiAgICAgICAgbG9jYWw6W10sXG4gICAgICAgIGltZzonaHR0cHM6Ly93d3cudmFnYWJvbmRzLWpkci5mci9hc3NldHMvaW1hZ2VzL2lsbHVzdHJhdGlvbi9oZXgvUGxhaW5zMS5qcGcnXG4gICAgICB9LFxuICAgICAgYWlFdmVudDp7XG4gICAgICAgIGF1dGV1cjp7XG4gICAgICAgICAgaWQ6MSxcbiAgICAgICAgICBpZGVudGlmaWFudDpcIk9wZW5BSVwiLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjOlwiRW4gYXR0ZW50ZSBkZSBkb25uw6llcy4uLlwiLFxuICAgICAgICBpZDpmYWxzZSxcbiAgICAgICAgaW1nOlwiaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3poaWh1aS1zdS0yLmpwZ1wiLFxuICAgICAgICBub206XCI/XCIsXG4gICAgICAgIHNob3J0OlwiLi4uXCIsXG4gICAgICB9LFxuICAgICAgQnRuQWk6ZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICBkaXNwbGF5KCl7XG4gICAgICBsZXQgZGlzcGxheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5EZWZhdWx0KSk7XG5cbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkSGV4IHx8ICF0aGlzLmNvbnRlbnQgfHwgIXRoaXMuY29udGVudFt0aGlzLnNlbGVjdGVkSGV4XSkgcmV0dXJuIGRpc3BsYXk7XG5cbiAgICAgIGxldCBjb250ZW50U2NvcGVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRlbnRbdGhpcy5zZWxlY3RlZEhleF0pKTtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQubm9tKSBkaXNwbGF5Lm5vbSA9IGNvbnRlbnRTY29wZWQubm9tO1xuICAgICAgaWYoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbikgZGlzcGxheS5kZXNjcmlwdGlvbiA9IGNvbnRlbnRTY29wZWQuZGVzY3JpcHRpb247XG4gICAgICBpZihjb250ZW50U2NvcGVkLmRlc2NyaXB0aW9uR00pIGRpc3BsYXkuZGVzY3JpcHRpb25HTSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbkdNKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmxvY2FsKSBkaXNwbGF5LmxvY2FsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250ZW50U2NvcGVkLmxvY2FsKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmltZykgZGlzcGxheS5pbWcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnRTY29wZWQuaW1nKSk7XG5cbiAgICAgIHJldHVybiBkaXNwbGF5O1xuICAgIH0sXG4gICAgY29udGVudCgpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGVudCgpO1xuICAgIH0sXG4gICAgZ2VuZXJpY0V2ZW50KCl7XG4gICAgICBsZXQgZ2VuID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdldEdlbmVyaWNFdmVudCgpKSk7XG4gICAgICBpZih0aGlzLmFpRXZlbnQuaWQgIT09IGZhbHNlKXtcbiAgICAgICAgZ2VuLnB1c2goSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmFpRXZlbnQpKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ2VuO1xuICAgIH0sXG4gICAgQUlvcHRpb25zKCl7XG4gICAgICBsZXQgb3B0aW9ucyA9IHtcbiAgICAgICAgICBjaGFyYWN0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5vbTonbWljaGVsLCBsZSBzYW11cmFpJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBub206J1Rla2tlbiwgbGUgZ2FyZGUtY8O0dGVzJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBub206J1l2ZXMsIGwgXFwnw6lydWRpdCdcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGxpZXU6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXkpKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9LFxuICAgIGZhY3Rpb24oKXtcbiAgICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRUZXJyaXRvcnkoKTtcbiAgICAgIGxldCBjZWxsTmFtZSA9IHRoaXMuc2VsZWN0ZWRIZXg7XG4gICAgICBsZXQgcmV0ID0gJyc7XG4gICAgICBmb3IobGV0IGM9MDsgYyA8IE9iamVjdC5rZXlzKGNvbnRlbnQpLmxlbmd0aDsgYysrKVxuICAgICAge1xuICAgICAgICBpZihjb250ZW50W09iamVjdC5rZXlzKGNvbnRlbnQpW2NdXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXQgKz0gKChyZXQgPT09ICcnKT8gKE9iamVjdC5rZXlzKGNvbnRlbnQpW2NdKSA6ICgnLCAnK09iamVjdC5rZXlzKGNvbnRlbnQpW2NdKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gICAgVGV4dFJlcGxhY2VyKCl7XG4gICAgICByZXR1cm4gdGhpcy50ZXh0UmVwbGFjZXIoKTtcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6e1xuICAgIHRvZ2dsZU9mZigpe3RoaXMuJGVtaXQoJ3Vuc2VsZWN0SGV4Jyx0cnVlKTt9LFxuICAgIG9wZW5FdmVudCh2YWx1ZSl7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgYGAsIGAke3RoaXMuZ2V0T3JpZ2lufS8/dGFiPXdvcmxkbWFwJmhleD0ke3RoaXMuc2VsZWN0ZWRIZXh9JmdtPXQmZXZlbnQ9JHt2YWx1ZS5pZH1gKTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBgYCwgYCR7dGhpcy5nZXRPcmlnaW59Lz90YWI9d29ybGRtYXAmaGV4PSR7dGhpcy5zZWxlY3RlZEhleH0mZ209dCZldmVudD0ke3ZhbHVlLmlkfWApO1xuICAgICAgdGhpcy4kZW1pdCgnb3BlbkV2ZW50JyxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSkpO1xuICAgICAgfSxcbiAgICBuZXdBSVNjZW5hcmlvOiBhc3luYyBmdW5jdGlvbigpe1xuICAgICAgLy9zdHJ1Y3R1cmUgZGUgYmFzZSBkZSBsJ2V2ZW50XG4gICAgICBsZXQgbmV3QWkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYWlFdmVudCkpO1xuXG4gICAgICAvL3JlcXVldGFnZSBkdSBjb250ZW51IGV0IGluamVjdGlvbiBkYW5zIGwnZXZlbnRcbiAgICAgIGNvbnN0IHJlcSA9IGF3YWl0IGFwaU9wZW5BSVxuICAgICAgLmdldFNjZW5hcmlvQWkodGhpcy5BSW9wdGlvbnMpXG4gICAgICAudGhlbigocmVzdWx0KT0+e1xuICAgICAgICBsZXQgY29udGVudCA9IHJlc3VsdC5jaG9pY2VzWzBdLm1lc3NhZ2UuY29udGVudDtcblxuICAgICAgICAvL1BhcnNlciBxdWkgcsOpY3Vww6hyZSBsZXMgMyBwYXJhZ3JhcGhlcyBsYSBwcmVtacOocmUgdmVyc2lvbiB0cmFpdGUgbGUgY2FzIG91IGwnYWkgcmVwb25kIGxpZ25lIHBhciBsaWduZSB0YW5kaXMgcXVlIGxlIHJlc3RlIGVzdCB0cmFpdMOpIGF1IGdyb3VwZSBkZSBwYXJhZ3JhcGhlcy5cbiAgICAgICAgY29uc3QgZ3JhYlBhcnRzID0gKGNvbnRlbnQuaW5jbHVkZXMoJzonKSk/L14uKlxcOlxcbj8oKC58XFxuKSopXi4qXFw6XFxuPygoLnxcXG4pKileLipcXDpcXG4/KCgufFxcbikqKS9tIDogLyguKylcXG4/L2dtO1xuICAgICAgICBsZXQgbGluZXMgPSBjb250ZW50Lm1hdGNoKGdyYWJQYXJ0cyk7XG4gICAgICAgIGxldCBuZXdsaW5lcyA9IFtdO1xuICAgICAgICBmb3IobGV0IGw9MDsgbCA8IGxpbmVzLmxlbmd0aDsgbCsrKVxuICAgICAgICB7XG4gICAgICAgICAgLy9KJ2VsaW1pbmUgbGVzIGNhcHR1cmVzIGRlIHJlc2lkdXNcbiAgICAgICAgICBpZihsaW5lc1tsXS5sZW5ndGggPD0gMyB8fCBsaW5lc1tsXS5sZW5ndGggPT0gY29udGVudC5sZW5ndGgpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgLy9qZSBzdG9jayBsZXMgbGlnbmVzIHZhbGlkZXNcbiAgICAgICAgICBuZXdsaW5lcy5wdXNoKGxpbmVzW2xdLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBuZXdsaW5lcztcbiAgICAgICAgLy9qZSBzYXV2ZWdhcmRlIGxlIGRlcm5pZXIgZWxlbWVudCBlbiB0YW50IHF1ZSB0aXRyZSBzYW5zIGwnYWpvdXRlciDDoCBsaW5lc1xuICAgICAgICBsZXQgdGl0cmUgPSBsaW5lcy5zcGxpY2UoLTEpWzBdO1xuXG4gICAgICAgIG5ld0FpLmRlc2MgPSBgPGg0PkludHJvZHVjdGlvbjwvaDQ+ICR7bGluZXMuam9pbihgPGJyPjxicj5gKX1gO1xuICAgICAgICBuZXdBaS5pZCA9IDA7XG4gICAgICAgIC8vU29pdCBvbiBwcmVuZCBsZSBjb250ZW51IGVudHJlIGxlcyBcIiBzb2l0IG9uIHByZW5kcyB0b3V0IHNhdWYgbGUgLlxuICAgICAgICBuZXdBaS5ub20gPSAodGl0cmUuaW5jbHVkZXMoJ1wiJykpPyB0aXRyZS5tYXRjaCgvXFxcIiguKilcIi8pWzFdIDogdGl0cmUuc3Vic3RyaW5nKDAsIHRpdHJlLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgIC8vT24gcsOpY3Vww6hyZSBsZSBkZWJ1dCBkZSBsJ2VsZW1lbnQgcGVydHVyYmF0ZXVyIHBvdXIgbGEgY291cnRlIGRlc2NyaXB0aW9uLlxuICAgICAgICBuZXdBaS5zaG9ydCA9IChsaW5lc1sxXS5sZW5ndGggPiA0MykgPyBsaW5lc1sxXS5zdWJzdHJpbmcoMCw0MikgKycuLi4nIDogbGluZXNbMV07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXdBaTtcblxuICAgIH0sXG4gICAgcmVzZXRBaVNjZW5hcmlvKCl7XG4gICAgICB0aGlzLmFpRXZlbnQgPSB7XG4gICAgICAgIGF1dGV1cjp7XG4gICAgICAgICAgaWQ6MSxcbiAgICAgICAgICBpZGVudGlmaWFudDpcIk9wZW5BSVwiLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjOlwiRW4gYXR0ZW50ZSBkZSBkb25uw6llcy4uLlwiLFxuICAgICAgICBpZDpmYWxzZSxcbiAgICAgICAgaW1nOlwiaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3poaWh1aS1zdS0yLmpwZ1wiLFxuICAgICAgICBub206XCI/XCIsXG4gICAgICAgIHNob3J0OlwiLi4uXCIsXG4gICAgICB9O1xuICAgIH0sXG4gICAgY2FsbE9wZW5BaTogYXN5bmMgZnVuY3Rpb24oKXtcbiAgICAgIHRoaXMucmVzZXRBaVNjZW5hcmlvKCk7XG4gICAgICB0aGlzLkJ0bkFpID0gZmFsc2U7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm5ld0FJU2NlbmFyaW8oKVxuICAgICAgLnRoZW4oKG5ld0FpKT0+e1xuICAgICAgICB0aGlzLmFpRXZlbnQgPSBuZXdBaTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIHJvdXRlSW5mb3MoKXtcbiAgICAgICAgICAvL1LDqWN1cMOpcmF0aW9uIGRlcyBwYXJhbcOodHJlcyBkdSBnZXRcbiAgICAgICAgICBsZXQgcm91dGUgPSB7fTtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnJlcGxhY2UoJz8nLCAnJykuc3BsaXQoJyYnKS5mb3JFYWNoKChlbCk9PiByb3V0ZVtlbC5zcGxpdCgnPScpWzBdXSA9IGVsLnNwbGl0KCc9JylbMV0pO1xuICAgICAgICAgIC8vYWZmZWN0YXRpb24gc2kgYmVzb2luXG4gICAgICAgICAgaWYocm91dGUuZXZlbnQpe1xuICAgICAgICAgICAgdGhpcy5nZW5lcmljRXZlbnQuZm9yRWFjaCgoZXZlbnQpPT4ge1xuICAgICAgICAgICAgICBpZihyb3V0ZS5ldmVudCA9PSBldmVudC5pZCkgdGhpcy5vcGVuRXZlbnQoZXZlbnQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICB9LFxuICB9LFxuXG4gIG1vdW50ZWQoKSB7dGhpcy5yb3V0ZUluZm9zKCk7fSxcbiAgd2F0Y2g6IHtcbiAgICBzZWxlY3RlZEhleDogYXN5bmMgZnVuY3Rpb24oKXtcbiAgICAgIHRoaXMucmVzZXRBaVNjZW5hcmlvKCk7XG5cbiAgICAgIC8vb24gYWZmaWNoZSBwYXMgcG91ciBsZSBtalxuICAgICAgaWYoIXRoaXMuZ21Nb2RlKSByZXR1cm4gbnVsbDtcblxuICAgICAgLy9Sw6ljdXDDqXJhdGlvbiBkZXMgcGFyYW3DqHRyZXMgZHUgZ2V0XG4gICAgICBsZXQgcm91dGUgPSB7fTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgnPycsICcnKS5zcGxpdCgnJicpLmZvckVhY2goKGVsKT0+IHJvdXRlW2VsLnNwbGl0KCc9JylbMF1dID0gZWwuc3BsaXQoJz0nKVsxXSk7XG4gICAgICAvL2FmZmVjdGF0aW9uIHNpIGJlc29pblxuICAgICAgaWYocm91dGUuZXZlbnQpe1xuICAgICAgICB0aGlzLmRpc3BsYXkubG9jYWwuZm9yRWFjaCgoZXZlbnQpPT4gY29uc29sZS5sb2coJ2lkTCcsZXZlbnQuaWQpKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLnNpZGUtYmFyLXNob3cge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7ICovXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjBzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdy15OmF1dG87XG4gICAgcGFkZGluZy10b3A6MjBweDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpKTtcbn1cblxuXG4uc2lkZS1iYXItc2hvdyBkaXYge1xuICAgIG1hcmdpbjogNi42cHggMjYuNnB4O1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgcGFkZGluZzogMiU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICNjZGJkOTE7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZGl2LmxvY2F0aW9uLWRlc2N7XG4gIHotaW5kZXg6IDM7XG4gIG92ZXJmbG93OiB1bnNldDtcbn1cbi5sb2NhdGlvbi1kZXNjID4gcDpmaXJzdC1vZi10eXBle1xuICBtYXJnaW4tdG9wOjE0MHB4O1xufVxuLmJhY2tncm91bmRIZXh7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBoZWlnaHQ6IDQwMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJodHRwczovL3d3dy52YWdhYm9uZHMtamRyLmZyL2Fzc2V0cy9pbWFnZXMvaWxsdXN0cmF0aW9uL2hleC9PY2VhbnMxLmpwZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5iYWNrZ3JvdW5kSGV4IHNwYW57XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbn1cblxuLmJhY2tncm91bmRIZXggc3BhbjpmaXJzdC1vZi10eXBlXG57XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxLDEwLDE5LDEpIDAlLCByZ2JhKDEsMTAsMTksMC4yNSkgMzAlLCByZ2JhKDEsMTAsMTksMC4yNSkgMTAwJSk7XG59XG5cbi5iYWNrZ3JvdW5kSGV4IHNwYW46bnRoLW9mLXR5cGUoMilcbntcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMSwxMCwxOSwxKSAwJSwgcmdiYSgxLDEwLDE5LC41KSA0MCUsIHJnYmEoMSwxMCwxOSwwLjI1KSA1MCUsIHJnYmEoMSwxMCwxOSwwLjI1KSAxMDAlKTtcbn1cbi5HTS1wYXJ0IGRpdiB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbmgze1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4udG9wVGl0bGV7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbn1cbi5zdWJUaXRsZXtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi10b3A6IC0wLjg1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbi5nbS1kZXNje1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZ20tZGVzYyA+Pj4gYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLnF1ZXN0IHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjMDEwYTEzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICBjb2xvcjogI2NkYmQ5MTtcbiAgICBwYWRkaW5nOiAwIDglIDAgMDtcbiAgICBtYXJnaW46IDA7XG4gICAgaGVpZ2h0OiAxMzBweDtcbn1cblxuLnF1ZXN0OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDFweCB3aGl0ZSBzb2xpZDtcbn1cblxuLnF1ZXN0IGgzIHtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIHBhZGRpbmc6IDglIDAgMCAwO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5xdWVzdDpob3ZlciB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYzNhNztcbn1cblxuaDR7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtZmFtaWx5OiAnU3BhcnRhbicsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6Ym9sZDtcbiAgICBtYXJnaW4tdG9wOjE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbToxNHB4O1xuICAgIGRpc3BsYXk6YmxvY2s7XG59XG5cbnNwYW4udG9nZ2xlQnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTZweDtcbiAgICB0b3A6IDMwcHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC41KSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgei1pbmRleDogMTA7XG59XG5cbnNwYW4udG9nZ2xlQnRuOmhvdmVyIHtcblx0dHJhbnNmb3JtOiByb3RhdGVaKDQwNWRlZykgIWltcG9ydGFudDtcbn1cblxuc3Bhbi50b2dnbGVCdG46aG92ZXIgYnV0dG9uIHtcblx0dHJhbnNmb3JtOiByb3RhdGVaKC00MDVkZWcpICFpbXBvcnRhbnQ7XG59XG5cbi50b2dnbGVCdG4gPiBidXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiByZWQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZyk7XG4gICAgYm9yZGVyOiAwcHggc29saWQ7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICBvdXRsaW5lOm5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4ub3Blbi1haSB7XG4gICAgbWFyZ2luOiAxM3B4IDEwcHggMTBweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsICM2MTM5MDgsICM5Nzc0MTMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZGJkOTE7XG4gICAgY29sb3I6ICNjZGJkOTE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICBwYWRkaW5nOiA4cHggM3B4O1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5nbS1kZXNjID4+PiAucmVtaW5kZXIgPiBzcGFuOmZpcnN0LW9mLXR5cGV7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5nbS1kZXNjID4+PiAucmVtaW5kZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpe1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNmM3NTdkO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5nbS1kZXNjID4+PiAucmVtaW5kZXI6aG92ZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpe1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5nbS1kZXNjID4+PiAucmVtaW5kZXI6aG92ZXIgc3BhbjpudGgtb2YtdHlwZSgyKS5jaGFyYWN0ZXIsXG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikubW9uc3RlcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KC0ycHggMHB4IDBweCAjMDAwKSBkcm9wLXNoYWRvdygycHggMHB4IDBweCAjMDAwKSBkcm9wLXNoYWRvdygwcHggLTJweCAwcHggIzAwMCkgZHJvcC1zaGFkb3coMHB4IDJweCAwcHggIzAwMCkgZHJvcC1zaGFkb3coMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjgpKTtcbn1cbi5nbS1kZXNjID4+PiAucmVtaW5kZXI6aG92ZXIgc3BhbjpudGgtb2YtdHlwZSgyKS5jaGFyYWN0ZXJ7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5nbS1kZXNjID4+PiAucmVtaW5kZXI6aG92ZXIgc3BhbjpudGgtb2YtdHlwZSgyKS5jaGFyYWN0ZXIgcCxcbi5nbS1kZXNjID4+PiAucmVtaW5kZXI6aG92ZXIgc3BhbjpudGgtb2YtdHlwZSgyKS5tb25zdGVyIHAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4uZ20tZGVzYyA+Pj4gLnJlbWluZGVyOmhvdmVyIHNwYW46bnRoLW9mLXR5cGUoMikuY2hhcmFjdGVyIHB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uZ20tZGVzYyA+Pj4gaHI6OmJlZm9yZSxcbi5nbS1kZXNjID4+PiBocjo6YWZ0ZXJ7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNnB4O1xufVxuLmdtLWRlc2MgPj4+IGhyOjpiZWZvcmV7XG4gICAgbGVmdDogLTE0cHg7XG59XG4uZ20tZGVzYyA+Pj4gaHI6OmFmdGVye1xuICAgIHJpZ2h0OiAtMTRweDtcbn1cbi5nbS1kZXNjID4+PiBocntcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGNhbGMoNzAlIC0gMjhweCk7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBvcGFjaXR5OiAuNjtcbn1cbi5nbS1kZXNjID4+PiBhIHtcbiAgICBjb2xvcjogIzA1OTVhOTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg1MHB4KXtcbiAgLnNpZGUtYmFyLXNob3cge1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG5cbiAgLm1hc3F1ZWUge1xuICAgIHJpZ2h0OiAtNDAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAuc2lkZS1iYXItc2hvdyB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDo3MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XG59XG5cbi5wbGF5ZXItbW9kZSAudG9wVGl0bGV7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLnBsYXllci1tb2Rle1xuICBwYWRkaW5nLXRvcDo1cHg7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cbi5tYXNxdWVlIHtcbiAgICBib3R0b206IC0xMDAlO1xuICB9XG5cbnNwYW4udG9nZ2xlQnRuIHtcbiAgICB0b3A6MjVweDtcbiAgICByaWdodDogMjZweDtcbiAgICBsZWZ0OiB1bnNldDtcbn1cbi5wbGF5ZXItbW9kZSBzcGFuLnRvZ2dsZUJ0biB7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIHdpZHRoOiAyNXB4O1xufVxuLnBsYXllci1tb2RlIC50b2dnbGVCdG4gPiBidXR0b24ge1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5wbGF5ZXItbW9kZSBzcGFuLnRvZ2dsZUJ0biB7XG4gICAgdG9wOjIwcHg7XG59XG4uYmFja2dyb3VuZEhleHtcbiAgbWFyZ2luLXRvcDogLTcwcHg7XG59XG5cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiBAY2xpY2s9XCJvcGVuID0gIW9wZW5cIj5cbiAgICAgICAgICAgIDxpbWcgOnNyYz1cInNlbGVjdGVkW2ltZ19hdHRyaWJ1dGVzXVwiIHdpZHRoPVwiNTBcIj4gPHNwYW4+e3sgc2VsZWN0ZWRbbGFiZWxfYXR0cmlidXRlc10gfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWwgOmNsYXNzPVwib3BlbiA/ICdvcGVuJzogJ2Nsb3NlZCdcIj5cbiAgICAgICAgICAgIDxsaSB2LWZvcj1cImxpbmUgaW4gc29ydGVkX2FycmF5XCIgQGNsaWNrPVwic2VsZWN0KGxpbmUpXCIgOmNsYXNzPVwibGluZS5pZCA9PSBzZWxlY3RlZC5pZCA/ICdzYW1lLWFzLXNlbGVjdGVkJzogJydcIj5cbiAgICAgICAgICAgICAgICA8aW1nIDpzcmM9XCJsaW5lW2ltZ19hdHRyaWJ1dGVzXVwiIHdpZHRoPVwiNTBcIj48c3Bhbj57eyBsaW5lW2xhYmVsX2F0dHJpYnV0ZXNdIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG4gICAgZXhwb3J0IGRlZmF1bHQge1xuICAgICAgICBuYW1lOiBcImN1c3RvbURyb3Bkb3duXCIsXG4gICAgICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWxlY3RlZDp7fSxcbiAgICAgICAgICAgIG9wZW46ZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBhcnJheTp7XG4gICAgICAgICAgICAgICAgVHlwZTpBcnJheSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OltdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFycmF5X3NlbGVjdGVkOicnLFxuICAgICAgICAgICAgbGFiZWxfYXR0cmlidXRlczp7XG4gICAgICAgICAgICAgICAgVHlwZTpTdHJpbmcsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDonbmFtZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW1nX2F0dHJpYnV0ZXM6e1xuICAgICAgICAgICAgICAgIFR5cGU6U3RyaW5nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6J2ltZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmlsdGVyOicnLFxuICAgICAgICB9LFxuICAgICAgICBtZXRob2RzOiB7XG4gICAgICAgICAgICBzZWxlY3QobGluZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IGxpbmU7IFxuICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ29uQ2hhbmdlJyxsaW5lW3RoaXMubGFiZWxfYXR0cmlidXRlc10pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgd2F0Y2g6e1xuICAgICAgICAgICAgYXJyYXlfc2VsZWN0ZWQoKXtcbiAgICAgICAgICAgICAgICB0aGlzLmFycmF5LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKGVsZW1lbnRbdGhpcy5sYWJlbF9hdHRyaWJ1dGVzXSA9PSB0aGlzLmFycmF5X3NlbGVjdGVkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmlsdGVyKCl7XG4gICAgICAgICAgICAgICAgdGhpcy4kZW1pdCgnb25DaGFuZ2UnLHRoaXMuc29ydGVkX2FycmF5WzBdW3RoaXMubGFiZWxfYXR0cmlidXRlc10pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcHV0ZWQ6e1xuICAgICAgICAgICAgc29ydGVkX2FycmF5KCl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJyYXkuZmlsdGVyKChhKSA9PiBhID8gYVt0aGlzLmxhYmVsX2F0dHJpYnV0ZXNdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSkgOiBhICkuc29ydCgoYSxiKSA9PiBhW3RoaXMubGFiZWxfYXR0cmlidXRlc10ubG9jYWxlQ29tcGFyZShiW3RoaXMubGFiZWxfYXR0cmlidXRlc10pKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW91bnRlZCgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLmFycmF5WzBdO1xuICAgICAgICB9LFxuICAgIH07XG48L3NjcmlwdD5cbjxzdHlsZSBzY29wZWQ+XG4uc2VsZWN0e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDI1MHB4O1xufVxuLnNlbGVjdGVke1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZGJkOTE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMywgMTIsIDIxLCAwLjkpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm9wZW57XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMywgMTIsIDIxLCAwLjkpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZGJkOTE7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgI2NkYmQ5MSAjY2RiZDkxICNjZGJkOTE7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogOTk7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6MDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLm9wZW4gbGksXG4uY2xvc2VkIGxpe1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgwLCAwLCAwLCAwLjEpIHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnNlbGVjdGVkIGltZyxcbmxpIGltZ3tcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5zYW1lLWFzLXNlbGVjdGVke1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7XG59XG4uY2xvc2Vke1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcblxuXG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1tZW51XCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJ0YWIxXCIgbmFtZT1cImN1cnJlbnRUYWJcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRhYjFcIj5QTko8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZpbHRyZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm5wY19maWx0ZXJcIj48YnI+XG4gICAgICAgICAgICAgICAgPGN1c3RvbURyb3Bkb3duIDphcnJheT1cIm5wY19pbmZvc1wiIDphcnJheV9zZWxlY3RlZD1cIm5wY19zZWxlY3RlZFwiIEBvbkNoYW5nZT1cIm5wY19zZWxlY3RlZCA9ICRldmVudFwiIDpmaWx0ZXI9XCJucGNfZmlsdGVyXCIvPlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwiaW5zZXJ0KG5wY19zZWxlY3RlZClcIj5JbnPDqXJlciBQTko8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwidGFiMlwiIG5hbWU9XCJjdXJyZW50VGFiXCIgdmFsdWU9XCIyXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGFiMlwiPk1vbnN0cmU8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZpbHRyZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm1vbnN0ZXJfZmlsdGVyXCI+PGJyPlxuICAgICAgICAgICAgICAgIDxjdXN0b21Ecm9wZG93biA6YXJyYXk9XCJtb25zdGVyX2luZm9zXCIgOmFycmF5X3NlbGVjdGVkPVwibW9uc3Rlcl9zZWxlY3RlZFwiIEBvbkNoYW5nZT1cIm1vbnN0ZXJfc2VsZWN0ZWQgPSAkZXZlbnRcIiA6ZmlsdGVyPVwibW9uc3Rlcl9maWx0ZXJcIi8+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJpbnNlcnQobW9uc3Rlcl9zZWxlY3RlZClcIj5JbnPDqXJlciBNb25zdHJlPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cInRhYjNcIiBuYW1lPVwiY3VycmVudFRhYlwiIHZhbHVlPVwiM1wiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRhYjNcIj5PYmpldHM8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZpbHRyZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW1zX2ZpbHRlclwiPjxicj5cbiAgICAgICAgICAgICAgICA8Y3VzdG9tRHJvcGRvd24gOmFycmF5PVwiaXRlbXNfaW5mb3NcIiA6YXJyYXlfc2VsZWN0ZWQ9XCJpdGVtc19zZWxlY3RlZFwiIEBvbkNoYW5nZT1cIml0ZW1zX3NlbGVjdGVkID0gJGV2ZW50XCIgOmZpbHRlcj1cIml0ZW1zX2ZpbHRlclwiLz5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cImluc2VydChpdGVtc19zZWxlY3RlZClcIj5JbnPDqXJlciBvYmpldDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJ0YWI0XCIgbmFtZT1cImN1cnJlbnRUYWJcIiB2YWx1ZT1cIjRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0YWI0XCI+TWVkaWFzPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwibGlua1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwiaW5zZXJ0WW91dHViZShsaW5rKVwiIDpkaXNhYmxlZD1cIiFsaW5rSXNWYWxpZFwiPkluc8OpcmVyIHlvdXR1YmU8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhIHYtbW9kZWw9XCJ0ZXh0XCIgQGNoYW5nZT1cInVwZGF0ZVRleHQoKVwiPjwvdGV4dGFyZWE+ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuXG5pbXBvcnQgY3VzdG9tRHJvcGRvd24gZnJvbSAnLi4vb3RoZXIvY3VzdG9tRHJvcGRvd24udnVlJztcbiAgICBleHBvcnQgZGVmYXVsdCB7XG4gICAgICAgIG5hbWU6IFwidGV4dEVkaXRvclwiLFxuICAgICAgICBpbmplY3Q6WydnZXROcGMnLCdnZXRJdGVtcycsJ2dldE1vbnN0ZXInLCdzZXRDb250ZW50J10sXG4gICAgICAgIGNvbXBvbmVudHM6e1xuICAgICAgICAgICAgY3VzdG9tRHJvcGRvd24sXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBucGNfZmlsdGVyOicnLFxuICAgICAgICAgICAgbnBjX3NlbGVjdGVkOm51bGwsXG4gICAgICAgICAgICBtb25zdGVyX2ZpbHRlcjonJyxcbiAgICAgICAgICAgIG1vbnN0ZXJfc2VsZWN0ZWQ6bnVsbCxcbiAgICAgICAgICAgIGl0ZW1zX2ZpbHRlcjonJyxcbiAgICAgICAgICAgIGl0ZW1zX3NlbGVjdGVkOm51bGwsXG4gICAgICAgICAgICBsaW5rOidsaWVuIHlvdXR1YmUnLFxuICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgdGV4dDp7fSxcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgaW5zZXJ0KGluc2VydCl7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0ICs9IGBcXG5bJHtpbnNlcnR9XWA7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5zZXJ0WW91dHViZShpbnNlcnQpe1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dCArPSBgXFxuW3l0Yj1cXFwiJHtpbnNlcnR9XFxcIiB3PTQwMCBoPTIyMF1gO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVRleHQoKXtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCd1cGRhdGUnLCB0aGlzLnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb3VudGVkKCkge1xuICAgICAgICAgICAgdGhpcy5ucGNfc2VsZWN0ZWQgPSB0aGlzLm5wY19pbmZvc1swXS5uYW1lO1xuICAgICAgICAgICAgdGhpcy5tb25zdGVyX3NlbGVjdGVkID0gdGhpcy5tb25zdGVyX2luZm9zWzBdLm5hbWU7XG4gICAgICAgICAgICB0aGlzLml0ZW1zX3NlbGVjdGVkID0gdGhpcy5pdGVtc19pbmZvc1swXS5uYW1lO1xuXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXB1dGVkOntcbiAgICAgICAgICAgIG5wY19pbmZvczogZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXROcGMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb25zdGVyX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1vbnN0ZXIoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpdGVtc19pbmZvczogZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpbmtJc1ZhbGlkKCl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGluay5tYXRjaCgvaHR0cHM6XFwvXFwvd3d3XFwueW91dHViZVxcUysvKSAhPT0gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbjwvc2NyaXB0PlxuPHN0eWxlIHNjb3BlZD5cbi5lZGl0LW1lbnV7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVse1xuICAgIHdpZHRoOiAyNSU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NkYmQ5MTtcbiAgICBwYWRkaW5nOiAycHggNXB4O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbHtcbiAgICBib3JkZXItY29sb3I6ICNjZGJkOTFjMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwOCwgMTI1LDAuNSk7XG4gICAgY29sb3I6IHJnYigyNDAsIDIzMCwgMjEwKTtcbn1cbi50YWJ7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXXtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCArIC50YWJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3JkZXI6IDQ7XG59XG50ZXh0YXJlYXtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuXG5cbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgaWQ9XCJNYXBFdmVudFwiIHJlZj1cIk1hcEV2ZW50XCIgPiBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtb2RhbCBmYWRlXCJcbiAgICAgICAgICAgIGlkPVwibW9kYWxNYXBFdmVudFwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibW9kYWxNYXBFdmVudExhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICByZWY9XCJtb2RhbE1hcEV2ZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nbW9kYWwtZGlhbG9nJyByb2xlPVwiZG9jdW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8aGVhZGVyIDpzdHlsZT1cIidiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJytldmVudC5pbWcrJyknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1pZj1cImVkaXRfbW9kZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImV2ZW50Lm5vbVwiIGNsYXNzPVwiZWRpdC1oMVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSB2LWVsc2U+e3tldmVudC5ub219fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1pZj1cImVkaXRfbW9kZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImV2ZW50LnNob3J0XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIHYtZWxzZT5QYXIgPGEgOmhyZWY9XCIoZXZlbnQuYXV0ZXVyLmlkICE9PSAwKT8nL3VzZXIvJytldmVudC5hdXRldXIuaWQ6J2h0dHBzOi8vcGxhdGZvcm0ub3BlbmFpLmNvbS8nXCI+e3tldmVudC5hdXRldXIuaWRlbnRpZmlhbnR9fTwvYT48L2gzPlxuICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIiB2LWlmPVwiZWRpdF9ydWxlcyAmJiAhZWRpdF9tb2RlXCIgdGl0bGU9XCJFZGl0ZXJcIiBAY2xpY2s9XCJlZGl0TW9kZSh0cnVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250LWF3ZXNvbWUtaWNvbiA6aWNvbj1cIlsnZmFzJywgJ3BlbiddXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgdi1odG1sPVwiVGV4dFJlcGxhY2VyLnJlcGxhY2VZb3V0dWJlKFRleHRSZXBsYWNlci5yZXBsYWNlTlBDKFRleHRSZXBsYWNlci5yZXBsYWNlTW9uc3RlcihUZXh0UmVwbGFjZXIucmVwbGFjZUtleVdvcmRzKFRleHRSZXBsYWNlci5yZXBsYWNlSXRlbShldmVudC5kZXNjKSkpKSlcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJlZGl0X21vZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dEVkaXRvciA6dGV4dD1cImV2ZW50LmRlc2NcIiBAdXBkYXRlPVwiZXZlbnQuZGVzYyA9ICRldmVudFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZVwiIHYtaWY9XCJlZGl0X3J1bGVzXCIgdGl0bGU9XCJBbm51bGVyXCIgQGNsaWNrPVwiZWRpdE1vZGUoZmFsc2UpXCI+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnYmFuJ11cIiAvPkFubnVsZXI8L2J1dHRvbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYXZlXCIgdi1pZj1cImVkaXRfcnVsZXNcIiB0aXRsZT1cIlNhdXZlZ2FyZGVyXCIgQGNsaWNrPVwic2F2ZSgpXCI+PGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnc2F2ZSddXCIgLz5TYXV2ZWdhcmRlcjwvYnV0dG9uPiAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IHsgbGlicmFyeSB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmVcIjtcbmltcG9ydCB7IGZhQmFuLCBmYVBlbiwgZmFTYXZlfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zXCI7XG5pbXBvcnQgYXBpTWFwRXZlbnQgZnJvbSAnLi4vLi4vYXBpL2FwaU1hcEV2ZW50JztcbmltcG9ydCB0ZXh0RWRpdG9yIGZyb20gXCIuL3RleHRFZGl0b3IudnVlXCI7XG5cbmxpYnJhcnkuYWRkKGZhUGVuLCBmYVNhdmUsIGZhQmFuKTtcbiAgICBleHBvcnQgZGVmYXVsdCB7XG4gICAgICAgIG5hbWU6IFwiTWFwRXZlbnRcIixcbiAgICAgICAgaW5qZWN0OlsndGV4dFJlcGxhY2VyJywnZ2V0VXNlckluZm9zJ10sXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgIHRleHRFZGl0b3JcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVkaXRfbW9kZTpmYWxzZSxcbiAgICAgICAgICAgIGV2ZW50QmFja3VwIDoge30sXG4gICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBldmVudDp7fSxcbiAgICAgICAgICAgIHZpc2libGU6e1xuICAgICAgICAgICAgICAgIFR5cGU6Qm9vbGVhbixcbiAgICAgICAgICAgICAgICBkZWZhdWx0OmZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgc2F2ZSgpe1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdF9tb2RlPWZhbHNlO1xuICAgICAgICAgICAgICAgIGFwaU1hcEV2ZW50LnVwZGF0ZU1hcEV2ZW50KHRoaXMuZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpPT4geyB0aGlzLnNldENvbnRlbnQocmVzdWx0LnJlc3VsdCk7fSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWRpdE1vZGUodmFsdWUpe1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdF9tb2RlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYoIXZhbHVlKSB0aGlzLmV2ZW50ID0gc3RydWN0dXJlZENsb25lKHRoaXMuZXZlbnRCYWNrdXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb21wdXRlZDp7XG4gICAgICAgICAgICBUZXh0UmVwbGFjZXIoKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0UmVwbGFjZXIoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1c2VyX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vYXV0b3Jpc2UgbCdlZGl0aW9uIHNpIGwndXNlciBlc3QgbCdhdXRldXIgb3UgcXUnaWwgZXN0IGFkbWluXG4gICAgICAgICAgICBlZGl0X3J1bGVzKCl7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMudXNlcl9pbmZvcykgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnVzZXJfaW5mb3MuaWQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnVzZXJfaW5mb3MuaWQgPT0gdGhpcy5ldmVudC5hdXRldXIuaWQpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnVzZXJfaW5mb3Mucm9sZXMpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyX2luZm9zLnJvbGVzLmluY2x1ZGVzKCdST0xFX0FETUlOJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdhdGNoOntcbiAgICAgICAgICAgIGV2ZW50KCl7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0X21vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50QmFja3VwID0gc3RydWN0dXJlZENsb25lKHRoaXMuZXZlbnQpO1xuICAgICAgICAgICAgICAgIGxldCBiYWNrZHJvcCA9ICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibW9kYWwtYmFja2Ryb3AgZmFkZSBzaG93XCIpO1xuICAgICAgICAgICAgICAgIGJhY2tkcm9wICYmIGJhY2tkcm9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCk9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdiYWNrZHJvcGNsaWNrJyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICB9O1xuPC9zY3JpcHQ+XG48c3R5bGUgc2NvcGVkPlxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMsIDEyLCAyMSwgMC44NSk7XG59XG4ubW9kYWwtZGlhbG9ne1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2RiZDkxO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMTMxLDEyOCwxNTAsMCksICNjZGJkOTEscmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRjaDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDAgMXB4O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIG1hcmdpbjogMTAlIDIwJTtcbiAgICBtYXgtd2lkdGg6MTAwJTtcbiAgICBjb2xvcjogI2NkYmQ5MWMyO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xufVxuIC5tb2RhbC1jb250ZW50e1xuICAgIGJhY2tncm91bmQtY29sb3I6dW5zZXQ7XG4gICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gICAgYm9yZGVyOnVuc2V0O1xuIH1cbmhlYWRlcntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2NkYmQ5MTtcbn1cblxuaGVhZGVyIGgzLFxuaGVhZGVyIGgxLFxuLmVkaXQtaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG59XG5cbmgxLFxuLmVkaXQtaDEge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcGFkZGluZy1sZWZ0OiA4NSU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuN3B4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuYXJ0aWNsZSA+Pj4gaDN7XG4gICAgZm9udC1zaXplOjEuMTdlbTtcbiAgICBmb250LXdlaWdodDpib2xkO1xufVxuYXJ0aWNsZSA+Pj4gaDMgYXtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmhlYWRlciBoMSxcbi5lZGl0LWgxIHtcbiAgICBwYWRkaW5nOiA4JSAxMCUgMCAxMCU7XG59XG5oZWFkZXIgaW5wdXR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAgICBcbiAgICB6LWluZGV4OiAxO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBjb2xvcjogI2NkYmQ5MTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIHdpZHRoOiA1MmVtO1xuICAgIG1heC13aWR0aDogODAlO1xuICAgIHBhZGRpbmc6IDIlIDAgNXB4IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyg4JSAtIDVweCk7XG59XG4uZWRpdC1oMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMC42N2VtO1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IDAuNjdlbTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwcHg7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDBweDtcbiAgICB1bmljb2RlLWJpZGk6IGlzb2xhdGU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDE1ZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5oZWFkZXIgaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogYnJvd24gIWltcG9ydGFudDtcbiAgICB9XG5oZWFkZXIgaDMge1xuICAgIHBhZGRpbmc6IDIlIDEwJSA4JSAxMCU7XG59XG5cbmFydGljbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMywgMTIsIDIxLCAwLjkpO1xuICAgIHBhZGRpbmctYm90dG9tOiA3ZW0gIWltcG9ydGFudDtcbn1cbi5lZGl0LFxuLnNhdmV7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNjZGJkOTFjMjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGVhdDtcbiAgICBib3JkZXItY29sb3I6ICNjZGJkOTE7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuLmJ0bi1iYXJ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmJ0bi1iYXIgPiBidXR0b257XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cbmFydGljbGUsXG5hcnRpY2xlID4+PiBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMWVtIDEwJTtcbn1cbmFydGljbGUgPj4+IHAge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbmFydGljbGUgPj4+IHRhYmxlIHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNmQyO1xuICAgIGNvbG9yOiAjMDEwYTEzO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDMwJTtcbn1cblxuYXJ0aWNsZSA+Pj4gdGFibGUgdGQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xufVxuYXJ0aWNsZSA+Pj4gLm5hcnJhdGF0aW9uIHtcbiAgYmFja2dyb3VuZDogcmdiKDE3LCAyNywgMzgpO1xuICBwYWRkaW5nOiAxMHB4IDEwcHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmFydGljbGUgPj4+IC5yZW1pbmRlciA+IHNwYW46Zmlyc3Qtb2YtdHlwZSxcbmRpdiA+Pj4gLnJlbWluZGVyID4gc3BhbjpmaXJzdC1vZi10eXBlLFxucCA+Pj4gLnJlbWluZGVyID4gc3BhbjpmaXJzdC1vZi10eXBle1xuICBmb250LXdlaWdodDogYm9sZGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGRhc2hlZDtcbiAgY29sb3I6ICNjZGJkOTE7XG59XG5hcnRpY2xlID4+PiAucmVtaW5kZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpLFxuZGl2ID4+PiAucmVtaW5kZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpLFxucCA+Pj4gLnJlbWluZGVyID4gc3BhbjpudGgtb2YtdHlwZSgyKXtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMTBweDtcbiAgbGVmdDogMTEwcHg7XG59XG5hcnRpY2xlID4+PiAucmVtaW5kZXI6aG92ZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpLFxuZGl2ID4+PiAucmVtaW5kZXI6aG92ZXIgPiBzcGFuOm50aC1vZi10eXBlKDIpLFxucCA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKSxcbnAgPj4+IC5yZW1pbmRlcjpob3ZlciA+IHNwYW46bnRoLW9mLXR5cGUoMil7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIsXG5hcnRpY2xlID4+PiAubW9uc3RlcixcbmFydGljbGUgPj4+IC5pdGVte1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzZjNzU3ZDMzO1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xufVxuYXJ0aWNsZSA+Pj4gZGl2OmZpcnN0LW9mLXR5cGUuY2hhcmFjdGVyLFxuYXJ0aWNsZSA+Pj4gZGl2OmZpcnN0LW9mLXR5cGUubW9uc3RlcixcbmFydGljbGUgPj4+IGRpdjpmaXJzdC1vZi10eXBlLml0ZW17XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgPiBwLFxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlciA+IGltZyxcbmFydGljbGUgPj4+IC5tb25zdGVyID4gcCxcbmFydGljbGUgPj4+IC5tb25zdGVyID4gaW1nLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gPiBwLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gPiBpbWdcbntcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgPiBpbWcsXG5hcnRpY2xlID4+PiAubW9uc3RlciA+IGltZ1xue1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5hcnRpY2xlID4+PiAuaXRlbSA+IGltZ1xue1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuYXJ0aWNsZSA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKSA+IGltZyxcbmRpdiA+Pj4gLnJlbWluZGVyOmhvdmVyID4gc3BhbjpudGgtb2YtdHlwZSgyKSA+IGltZyxcbnAgPj4+IC5yZW1pbmRlcjpob3ZlciA+IHNwYW46bnRoLW9mLXR5cGUoMikgPiBpbWd7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbmFydGljbGUgPj4+IC5yZW1pbmRlcjpob3ZlciBwLFxuZGl2ID4+PiAucmVtaW5kZXI6aG92ZXIgcCxcbnAgPj4+IC5yZW1pbmRlcjpob3ZlciBwe1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbmFydGljbGUgPj4+IC5pdGVtIHA6Zmlyc3QtbGV0dGVyLFxuZGl2ID4+PiAuaXRlbSBwOmZpcnN0LWxldHRlcixcbnAgPj4+IC5pdGVtIHA6Zmlyc3QtbGV0dGVyLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gZGl2OmZpcnN0LWxldHRlcixcbmRpdiA+Pj4gLml0ZW0gZGl2OmZpcnN0LWxldHRlcixcbnAgPj4+IC5pdGVtIGRpdjpmaXJzdC1sZXR0ZXJ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgcCxcbmFydGljbGUgPj4+IC5tb25zdGVyIHAsXG5hcnRpY2xlID4+PiAuaXRlbSBwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwcHggMjBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgc3Ryb25nLFxuYXJ0aWNsZSA+Pj4gLm1vbnN0ZXIgc3Ryb25nLFxuYXJ0aWNsZSA+Pj4gLml0ZW0gc3Ryb25nIHtcbiAgICBjb2xvcjogI2NkYmQ5MTtcbn1cbmFydGljbGUgPj4+IC5jaGFyYWN0ZXIgdGFibGUsXG5hcnRpY2xlID4+PiAubW9uc3RlciB0YWJsZSxcbmFydGljbGUgPj4+IC5pdGVtIHRhYmxlIHtcbiAgICBtYXJnaW46IDVweCAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuYXJ0aWNsZSA+Pj4gLmNoYXJhY3RlciA+IGRpdixcbmFydGljbGUgPj4+IC5tb25zdGVyID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHNlbGYtc3RhcnQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbmFydGljbGUgPj4+IC5pdGVtID4gZGl2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbmFydGljbGUgPj4+IGhyOjpiZWZvcmUsXG5hcnRpY2xlID4+PiBocjo6YWZ0ZXJ7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNnB4O1xufVxuYXJ0aWNsZSA+Pj4gaHI6OmJlZm9yZXtcbiAgICBsZWZ0OiAtMTRweDtcbn1cbmFydGljbGUgPj4+IGhyOjphZnRlcntcbiAgICByaWdodDogLTE0cHg7XG59XG5hcnRpY2xlID4+PiBocntcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzZjNzU3ZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGNhbGMoNzAlIC0gMjhweCk7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBvcGFjaXR5OiAuNjtcbn1cbmFydGljbGUgPj4+IGgxLFxuYXJ0aWNsZSA+Pj4gaDIsXG5hcnRpY2xlID4+PiBoMyxcbmFydGljbGUgPj4+IGg0LFxuYXJ0aWNsZSA+Pj4gaDV7XG4gICAgY29sb3I6ICNjZGJkOTE7XG59XG5hcnRpY2xlID4+PiAueW91dHViZXtcbiAgICBtYXJnaW46IDMwcHggYXV0bzsgXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiA5NCU7XG59XG5hcnRpY2xlID4+PiAueW91dHViZS1jYXB0aW9uc3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogLTMwcHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODUwcHgpe1xuICAgIC5tb2RhbC1kaWFsb2d7XG4gICAgICAgIG1hcmdpbjogMTBweCAyMHB4O1xuICAgIH1cblxuICAgIGFydGljbGUsXG4gICAgYXJ0aWNsZSA+Pj4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMWVtIDMlO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgLyptYXJnaW4tYm90dG9tOiAxMmVtOyovXG4gICAgICAgIG1hcmdpbi10b3A6IDIuNWVtO1xuICAgIH1cbiAgICAubW9kYWwuc2hvdyAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJlbTtcbiAgICB9XG5cbiAgICBhcnRpY2xlID4+PiAuY2hhcmFjdGVyLFxuICAgIGFydGljbGUgPj4+IC5tb25zdGVye1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBhcnRpY2xlID4+PiAuY2hhcmFjdGVyIHAsIFxuICAgIGFydGljbGUgPj4+IC5tb25zdGVyIHAge1xuICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWFwQ29udGFpbmVyXCIgaWQ9XCJ0aGVXb3JsZE1hcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndvcmxkTWFwXCI+XG4gICAgICAgIDxkaXYgdi1mb3I9XCJjIGluIDIyXCIgOmtleT1cImNcIiBjbGFzcz1cImhleC1jb2xcIj5cbiAgICAgICAgICA8ZGl2IHYtZm9yPVwibiBpbiAyM1wiIDprZXk9XCIoYysnLScrbilcIiA6Y2xhc3M9XCJjZWxsTmFtZShjLG4pICE9IHNlbGVjdGVkSGV4ID8gZ2V0RGVmYXVsdENsYXNzKGNlbGxOYW1lKGMsbikpOidoZXhhZ29uZSBoZXhhZ29uZS1zZWxlY3QnXCIgOmlkPVwiY2VsbE5hbWUoYyxuKVwiIEBtb3VzZXVwPVwic2VsZWN0SGV4KGNlbGxOYW1lKGMsbikpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpc3BsYXlPbkhvdmVyXCI+XG4gICAgICAgICAgICAgIHt7Y2VsbE5hbWUoYyxuKX19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiB2LWlmPVwiY2l0aWVzW2NlbGxOYW1lKGMsbildICYmIGdtTW9kZVwiIDpjbGFzcz1cIidjaXR5TmFtZScrY2l0aWVzW2NlbGxOYW1lKGMsbildLm5pdmVhdVwiPlxuICAgICAgICAgICAgICB7e2NpdGllc1tjZWxsTmFtZShjLG4pXS5ub219fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gdi1pZj1cInBsYXllclBvc2l0aW9uID09PSBjZWxsTmFtZShjLG4pXCIgY2xhc3M9XCJwbGF5ZXJcIj5cbiAgICAgICAgICAgICAgPGZvbnQtYXdlc29tZS1pY29uIDppY29uPVwiWydmYXMnLCAnY2hlc3MtcGF3biddXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8U2lkZUJhciA6c2VsZWN0ZWRIZXg9XCJzZWxlY3RlZEhleFwiIEB1bnNlbGVjdEhleD1cInNlbGVjdGVkSGV4ID0gZmFsc2VcIiBAb3BlbkV2ZW50PVwib3BlbkV2ZW50KCRldmVudClcIiA6Z21Nb2RlPVwiZ21Nb2RlXCIvPlxuICAgIDxNYXBFdmVudCA6ZXZlbnQ9XCJkaXNwbGF5XCIgOnZpc2libGU9XCJzaG93TWFwRXZlbnRcIi8+XG4gICAgPGRpdiA6Y2xhc3M9XCIoZ21Nb2RlKT8ndmlld01vZGVPbic6J3ZpZXdNb2RlT2ZmJ1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwiZ21Nb2RlXCIgbmFtZT1cImdtTW9kZVwiIHYtbW9kZWw9XCJnbU1vZGVcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJnbU1vZGVcIj48cD5HTTwvcD48L2xhYmVsPlxuICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJnbU1vZGVcIj48cD5Kb3VldXI8L3A+PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG5cbjwvdGVtcGxhdGU+XG48c2NyaXB0PlxuaW1wb3J0IFNpZGVCYXIgZnJvbSBcIi4uL21hcC9zaWRlQmFyLnZ1ZVwiO1xuaW1wb3J0IE1hcEV2ZW50IGZyb20gXCIuLi9tYXAvbWFwRXZlbnQudnVlXCI7XG5pbXBvcnQgeyBsaWJyYXJ5IH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZVwiO1xuaW1wb3J0IHtmYUNoZXNzUGF3bn0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuaW1wb3J0IGF1ZGlvRWZmZWN0cyBmcm9tIFwiLi4vLi4vb3V0aWxzL2F1ZGlvRWZmZWN0c1wiO1xuXG5saWJyYXJ5LmFkZChmYUNoZXNzUGF3bik7XG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcIndvcmxkbWFwXCIsXG4gIGluamVjdDpbJ2dldENpdGllcycsICdnZXRUZXJyaXRvcnknLCdnZXRSb3V0ZScsJ2dldE9yaWdpbiddLFxuICAvL29uIHByZWNpc2UgbGVzIHZ1ZXMgcXVpIHZvbnQgw6p0cmUgY29tbXVuaXF1w6llIMOgIGxhIHBhZ2VcbiAgY29tcG9uZW50czoge1xuICAgIFNpZGVCYXIsXG4gICAgTWFwRXZlbnQsXG4gIH0sXG4gIHByb3BzOiB7XG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0ZWRIZXg6IGZhbHNlLFxuICAgICAgZGlzcGxheTpmYWxzZSxcbiAgICAgIHBsYXllclBvc2l0aW9uOmZhbHNlLFxuICAgICAgZ21Nb2RlOmZhbHNlLFxuICAgICAgcm91dGU6e30sXG4gICAgICBzaG93TWFwRXZlbnQgOiBmYWxzZSxcbiAgICB9O1xuICB9LFxuICBwcm92aWRlKCkge1xuICAgIHJldHVybiB7fTtcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgY2VsbE5hbWUoY29sLG51bSl7XG4gICAgICBsZXQgY29sdW1uID0gY29sICsgMTAwO1xuICAgICAgbGV0IGxpbmUgPSBudW0gKyA4MztcbiAgICAgIHJldHVybiBjb2x1bW4udG9GaXhlZCgwKS5zbGljZSgtMikrJycrbGluZS50b0ZpeGVkKDApLnNsaWNlKC0yKTtcbiAgICB9LFxuICAgIGdldERlZmF1bHRDbGFzcyhjZWxsTmFtZSl7XG4gICAgICBsZXQgYmFzZSA9ICdoZXhhZ29uZSc7XG4gICAgICBpZighdGhpcy5nbU1vZGUpIHJldHVybiBiYXNlO1xuXG4gICAgICBsZXQgY29udGVudCA9IHRoaXMuZ2V0VGVycml0b3J5KCk7XG5cbiAgICAgIGlmKGNvbnRlbnRbJ3NoaW5yYWknXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXR1cm4gYmFzZSArICcgc2hpbnJhaSc7XG4gICAgICBpZihjb250ZW50WydzZW5pYXV4J10uaW5jbHVkZXMocGFyc2VJbnQoY2VsbE5hbWUpKSkgcmV0dXJuIGJhc2UgKyAnIHNlbmlhdXgnO1xuICAgICAgaWYoY29udGVudFsndmlkaWV1J10uaW5jbHVkZXMocGFyc2VJbnQoY2VsbE5hbWUpKSkgcmV0dXJuIGJhc2UgKyAnIHZpZGlldSc7XG4gICAgICBpZihjb250ZW50WydzZXJ2ZW5hdGlmJ10uaW5jbHVkZXMocGFyc2VJbnQoY2VsbE5hbWUpKSkgcmV0dXJuIGJhc2UgKyAnIHNlcnZlbmF0aWYnO1xuICAgICAgaWYoY29udGVudFsnbWVzYWl2ZXMnXS5pbmNsdWRlcyhwYXJzZUludChjZWxsTmFtZSkpKSByZXR1cm4gYmFzZSArICcgbWVzYWl2ZXMnO1xuICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfSxcbiAgICByb3V0ZUluZm9zKCl7XG4gICAgICAvL1LDqWN1cMOpcmF0aW9uIGRlcyBwYXJhbcOodHJlcyBkdSBnZXRcbiAgICAgIGxldCByb3V0ZSA9IHRoaXMuZ2V0Um91dGU7XG4gICAgICBjb25zb2xlLmxvZygnd20nLHJvdXRlKTtcblxuICAgICAgLy9jb25zdGl0dXRpb24gZGUgbGEgbGlzdGUgZGVzIG9uZ2xldHMgdmFsaWRlc1xuICAgICAgbGV0IGlkSGV4TGlzdCA9IFtdO1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImhleGFnb25lXCIpLmZvckVhY2goKGVsKT0+aWRIZXhMaXN0LnB1c2goZWwuaWQpKTtcblxuICAgICAgLy9hZmZlY3RhdGlvbiBzaSBiZXNvaW5cbiAgICAgIGlmKHJvdXRlLmhleCAmJiBpZEhleExpc3QuaW5jbHVkZXMocm91dGUuaGV4KSkgdGhpcy5zZWxlY3RlZEhleCA9IHJvdXRlLmhleDtcbiAgICAgIGlmKHJvdXRlLmdtICYmIFsndCcsJ2YnXS5pbmNsdWRlcyhyb3V0ZS5nbSkpIHRoaXMuZ21Nb2RlID0gKHJvdXRlLmdtID09PSAndCcpO1xuICAgICAgaWYocm91dGUuZXZlbnQpIHRoaXMuc2hvd01hcEV2ZW50ID0gdHJ1ZTtcblxuICAgIH0sXG4gICAgc2VsZWN0SGV4KG5ld1NlbGVjdGVkKXtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIZXggPSAobmV3U2VsZWN0ZWQgfHwgbmV3U2VsZWN0ZWQgPT09IGZhbHNlKSA/IG5ld1NlbGVjdGVkIDogdGhpcy5nZXRSb3V0ZSgpLmhleDtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLCAnJywgYCR7dGhpcy5nZXRPcmlnaW59Lz90YWI9d29ybGRtYXAmaGV4PSR7dGhpcy5zZWxlY3RlZEhleH1gKTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgYCR7dGhpcy5nZXRPcmlnaW59Lz90YWI9d29ybGRtYXAmaGV4PSR7dGhpcy5zZWxlY3RlZEhleH1gKTtcbiAgICAgIGF1ZGlvRWZmZWN0cy5wbGF5U0ZYKFwiL2Fzc2V0cy9zZngvb3BlbkhlYXZ5LndhdlwiLCAwLjMpO1xuICAgIH0sXG4gICAgb3BlbkV2ZW50KGV2ZW50KXtcbiAgICAgIHRoaXMuZGlzcGxheSA9IGV2ZW50O1xuICAgIH0sXG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgY2l0aWVzKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDaXRpZXMoKTtcbiAgICB9LFxuICB9LFxuXG4gIG1vdW50ZWQoKSB7XG4gICAgbGV0IG1hcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjdGhlV29ybGRNYXBcIik7XG4gICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKFwiKG1heC13aWR0aDogODUwcHgpXCIpLm1hdGNoZXMpIHtcbiAgICAgIG1hcC5zY3JvbGxUb3AgPSAxNDUwO1xuICAgICAgbWFwLnNjcm9sbExlZnQgPSAxMjAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXAuc2Nyb2xsVG9wID0gMTM1MDtcbiAgICAgIG1hcC5zY3JvbGxMZWZ0ID0gMzAwO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlSW5mb3MoKTtcblxuICB9LFxuICB3YXRjaDoge1xuICAgIHNob3dNYXBFdmVudDpmdW5jdGlvbigpe1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsTWFwRXZlbnQnKS5tb2RhbCh0aGlzLnNob3dNYXBFdmVudCA/ICdzaG93JzogJ2hpZGUnKTtcbiAgICB9LFxuICAgIGdtTW9kZTpmdW5jdGlvbigpe1xuICAgICAgYXVkaW9FZmZlY3RzLmNsaWNrU291bmRzKCk7XG4gICAgfSxcbiAgfSxcbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5tYXBDb250YWluZXIge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDMwcHgpO1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLndvcmxkTWFwXG57XG4gIHdpZHRoOiAyNDc3cHg7XG4gIGhlaWdodDogMjkyOXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vd3d3LnZhZ2Fib25kcy1qZHIuZnIvYXNzZXRzL2ltYWdlcy9pbGx1c3RyYXRpb24vbWFwL21hcDAzLnBuZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjb3ZlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbn1cbi52aWV3TW9kZU9uLFxuLnZpZXdNb2RlT2Zme1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcG9zaXRpb24gOmFic29sdXRlO1xuICB0b3A6NjBweDtcbiAgbGVmdDoyMHB4O1xuICB6LWluZGV4OjU7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDkwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJyb3duO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi52aWV3TW9kZU9mZiBkaXYsXG4udmlld01vZGVPbiBkaXZ7XG4gIHdpZHRoOiAxODBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZpZXdNb2RlT2ZmIHNwYW4sXG4udmlld01vZGVPbiBzcGFue1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB6LWluZGV4OiAzO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpKTtcbn1cblxuLnZpZXdNb2RlT2ZmIGRpdntcbiAgbWFyZ2luLWxlZnQ6IC02MHB4O1xufVxuXG4udmlld01vZGVPbiBsYWJlbCxcbi52aWV3TW9kZU9mZiBsYWJlbCB7XG5cdHdpZHRoOiA5MHB4O1xuXHRoZWlnaHQ6IDMycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiBicm93bjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxufVxuXG4udmlld01vZGVPbiBsYWJlbCBwLFxuLnZpZXdNb2RlT2ZmIGxhYmVsIHB7XG4gIG1hcmdpbjogN3B4IGF1dG87XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG5cbi52aWV3TW9kZU9uIGxhYmVsOmZpcnN0LW9mLXR5cGUsXG4udmlld01vZGVPZmYgbGFiZWw6Zmlyc3Qtb2YtdHlwZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG5cbi52aWV3TW9kZU9uIGxhYmVsOmZpcnN0LW9mLXR5cGUgcCxcbi52aWV3TW9kZU9mZiBsYWJlbDpmaXJzdC1vZi10eXBlIHB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLnZpZXdNb2RlT24gaW5wdXQsXG4udmlld01vZGVPZmYgaW5wdXQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuaW1ne1xuICB3aWR0aDogNTAwcHg7XG59XG4uaGV4LWNvbCB7XG4gICAgbWFyZ2luLXRvcDogMjIuNXB4O1xufVxuLmhleC1jb2w6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIHBhZGRpbmctdG9wOiA2MS43NXB4O1xufVxuLmhleGFnb25lIHtcbiAgICB3aWR0aDogNzFweDtcbiAgICBoZWlnaHQ6IDEyMy41cHg7XG4gICAgei1pbmRleDogMjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDAsMCwwKTtcbiAgICBib3JkZXI6MHB4IHNvbGlkIHJlZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxcHggMThweDtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xufVxuLnNoaW5yYWl7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMzgsIDAsIDAuMSk7XG59XG4uc2VuaWF1eHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDYsIDYsIDE0NSwgMC40KTtcbn1cbi52aWRpZXV7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxODcsIDAsIDAuMSk7XG59XG4uc2VydmVuYXRpZntcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA0LCAyNTUsIDAuMSk7XG59XG4ubWVzYWl2ZXN7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTYsIDE0NywgNTcsIDAuNCk7XG59XG5cbi5oZXhhZ29uZSA+IHNwYW57XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5oZXhhZ29uZSA+IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDcxcHg7XG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG4ucGxheWVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIGZvbnQtc2l6ZTogNWVtO1xuICAgIGNvbG9yOiBicm93bjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDZweDtcbn1cblxuLmNpdHlOYW1lMSxcbi5jaXR5TmFtZTIsXG4uY2l0eU5hbWUzXG4ge1xuXHR6LWluZGV4OiAzO1xuICBjb2xvcjp3aGl0ZTtcblx0Ym90dG9tOiA0NSU7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuOCkpO1xuICBsZXR0ZXItc3BhY2luZzogLTFweDtcblx0bGVmdDogLTExM3B4O1xuXG5cbn1cblxuLyouaGV4YWdvbmUtc2VsZWN0IC5jaXR5TmFtZTEsXG4uaGV4YWdvbmUtc2VsZWN0IC5jaXR5TmFtZTIsXG4uaGV4YWdvbmUtc2VsZWN0IC5jaXR5TmFtZTN7XG4gIGNvbG9yOndoaXRlO1xufSovXG4uY2l0eU5hbWUxIHtcblx0Zm9udC1zaXplOiAyZW07XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHdpZHRoOiAzMDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbn1cblxuLmNpdHlOYW1lMiB7XG5cdGZvbnQtc2l6ZTogMS44ZW07XG5cdHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXHR3aWR0aDogMzAwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG5cbn1cblxuLmNpdHlOYW1lMyB7XG5cdGZvbnQtc2l6ZTogMS40ZW07XG5cdHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXHR3aWR0aDogMzAwcHg7XG59XG5cbi5oZXhhZ29uZTpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLC4zKTtcbiAgLypjb2xvcjogYmxhY2s7Ki9cbn1cblxuLmhleGFnb25lOjpiZWZvcmUsXG4uaGV4YWdvbmU6OmFmdGVyIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEyMy41cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlcjogMzRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiA2MS43NXB4O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDYxLjc1cHg7XG4gICAgdG9wOjA7XG59XG4uc2hpbnJhaTo6YmVmb3Jle1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjM4LCAwLCAwLjEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zaGlucmFpOjphZnRlcntcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LCAyMzgsIDAsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2VuaWF1eDo6YmVmb3Jle1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDEwNiwgNiwgMTQ1LCAwLjQpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zZW5pYXV4OjphZnRlcntcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMTA2LCA2LCAxNDUsIDAuNCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udmlkaWV1OjpiZWZvcmV7XG4gIHJpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAxODcsIDAsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnZpZGlldTo6YWZ0ZXJ7XG4gIGxlZnQ6IDEwMCU7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDI1NSwgMTg3LCAwLCAwLjEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNlcnZlbmF0aWY6OmJlZm9yZXtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCA0LCAyNTUsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNlcnZlbmF0aWY6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCA0LCAyNTUsIDAuMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWVzYWl2ZXM6OmJlZm9yZXtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgxNiwgMTQ3LCA1NywgMC40KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ubWVzYWl2ZXM6OmFmdGVye1xuICBsZWZ0OiAxMDAlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxNiwgMTQ3LCA1NywgMC40KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5oZXhhZ29uZTpob3Zlcjo6YmVmb3Jle1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwwLDAsLjMpO1xufVxuLmhleGFnb25lOmhvdmVyOjphZnRlcntcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LDAsMCwuMyk7XG59XG5cbi5oZXhhZ29uZS1zZWxlY3QsXG4uaGV4YWdvbmUtc2VsZWN0OmhvdmVye1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwwLDAsLjczKTtcbiAgLypjb2xvcjogYmxhY2s7Ki9cbn1cblxuLmhleGFnb25lLXNlbGVjdDo6YmVmb3JlLFxuLmhleGFnb25lLXNlbGVjdDpob3Zlcjo6YmVmb3JlXG57XG4gIHJpZ2h0OiAxMDAlO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDAsMCwuNzMpO1xufVxuLmhleGFnb25lLXNlbGVjdDo6YWZ0ZXIsXG4uaGV4YWdvbmUtc2VsZWN0OmhvdmVyOjphZnRlcntcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LDAsMCwuNzMpO1xufVxuLmRpc3BsYXlPbkhvdmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmhleGFnb25lLXNlbGVjdCAuZGlzcGxheU9uSG92ZXIsXG4uaGV4YWdvbmU6aG92ZXIgLmRpc3BsYXlPbkhvdmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgLm1hcENvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuICAudmlld01vZGVPbixcbiAgLnZpZXdNb2RlT2Zme1xuICAgIGxlZnQ6dW5zZXQ7XG4gICAgdG9wOjI1cHg7XG4gICAgcmlnaHQ6Y2FsYyg1MCUgLSA0NXB4KTtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gIH1cbiAgLnZpZXdNb2RlT24gbGFiZWwgcCxcbiAgLnZpZXdNb2RlT2ZmIGxhYmVsIHB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cIm1haW5zY3JlZW5cIj5cbiAgICA8YXJ0aWNsZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoMT5SZWpvaW5kcmUgdW5lIHBhcnRpZTwvaDE+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiYWxsXCIgbmFtZT1cImZpbHRlclwiIHZhbHVlPVwiYWxsXCIgdi1tb2RlbD1cImRpc3BsYXllZEdhbWVzXCIgQGNoYW5nZT1cImRpc3BsYXllZEdhbWVzQ2hhbmdlKClcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYWxsXCI+UGFydGllcyBwdWJsaXF1ZXM8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cInNlbGZcIiBuYW1lPVwiZmlsdGVyXCIgdmFsdWU9XCJzZWxmXCIgdi1tb2RlbD1cImRpc3BsYXllZEdhbWVzXCIgQGNoYW5nZT1cImRpc3BsYXllZEdhbWVzQ2hhbmdlKClcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2VsZlwiPk1lcyBQYXJ0aWVzPC9sYWJlbD5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxzcGFuPlBhcnRpZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPk1hw650cmUgZHUgamV1PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+RGF0ZSBkZSBjcsOpYXRpb248L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5QbGFjZXM8L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSB2LWZvcj1cInBhcnRpZSBpbiBwYXJ0aWVzXCIgOmtleT1cInBhcnRpZS5pZFwiIEBjbGljaz1cInNlbGVjdGVkR2FtZSA9IHBhcnRpZVwiIDpjbGFzcz1cIihwYXJ0aWUuaWQgPT0gc2VsZWN0ZWRHYW1lLmlkKT8nc2VsZWN0ZWQnOicnXCI+XG4gICAgICAgICAgICA8c3Bhbj57e3BhcnRpZS5ub219fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7cGFydGllLm5vbVVzZXJHbX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3tkYXRlKHBhcnRpZS5jcmVhdGVEYXRlLnRpbWVzdGFtcCl9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7cGFydGllLnBsYXllcnMubGVuZ3RofX0ve3twYXJ0aWUucGxhY2VzfX08L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1nYW1lXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjTW9kYWxlTmV3R2FtZVwiID5Ob3V2ZWxsZSBQYXJ0aWU8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZEdhbWUubm9tXCIgY2xhc3M9XCJkZXRhaWxzXCIgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2Rpc3BsYXkuaW1nfSlgXCI+XG4gICAgICAgIDxoMyB2LWlmPVwic2VsZWN0ZWRHYW1lLmlkVXNlckdtID09IHVzZXJfaW5mb3MuaWRcIj5NYcOudHJlIGR1IGpldTwvaDM+XG4gICAgICAgIDxoMyB2LWVsc2U+Sm91ZXVyPC9oMz5cbiAgICAgICAgPHNwYW4+e3tzZWxlY3RlZEdhbWUubm9tIHx8ICctJ319PC9zcGFuPlxuICAgICAgICA8c3Bhbj57e3NlbGVjdGVkR2FtZS5ub21Vc2VyR20gfHwgJy0nfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7ZGF0ZShzZWxlY3RlZEdhbWUuY3JlYXRlRGF0ZS50aW1lc3RhbXAsIHRydWUpfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPkpvdWV1cnMgKHt7c2VsZWN0ZWRHYW1lLnBsYXllcnMubGVuZ3RofX0ve3tzZWxlY3RlZEdhbWUucGxhY2VzIHx8ICcwJ319KSA8L3NwYW4+XG4gICAgICAgIDxici8+XG4gICAgICAgIDxzcGFuIHYtZm9yPVwicGxheWVyIGluIHNlbGVjdGVkR2FtZS5wbGF5ZXJzXCIgOmtleT1cInBsYXllci5pZFVzZXJcIiBjbGFzcz1cInBsYXllci1saW5lXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJpbWctcGxheWVyXCIgOnRpdGxlPVwicGxheWVyLmlkZW50aWZpYW50XCIgOmhyZWY9XCJgL2luZGV4LnBocC91c2VyLyR7cGxheWVyLmlkfWBcIiA6c3R5bGU9XCJwbGF5ZXIuaW1nID8gYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke3BsYXllci5pbWd9KWAgOiBgYFwiPjwvYT5cbiAgICAgICAgICA8c3Bhbj57e3BsYXllci5wZXJzb25uYWdlcy5jaGFyYWN0ZXJzW3BsYXllci5wZXJzb25uYWdlcy5jaGFyYWN0ZXJzLmxlbmd0aC0xXS5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsYXllci1kZXRhaWxzXCIgOnN0eWxlPVwicGxheWVyLmltZyA/IGBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtwbGF5ZXIuaW1nfSlgIDogYGBcIj5cbiAgICAgICAgICAgIDxwPnt7cGxheWVyLmlkZW50aWZpYW50fX08L3A+XG4gICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIHYtZm9yPVwibiBpbiBzZWxlY3RlZEdhbWUucGxhY2VzIC0gc2VsZWN0ZWRHYW1lLnBsYXllcnMubGVuZ3RoXCIgY2xhc3M9XCJwbGF5ZXItbGluZVwiPjxhPjwvYT48c3Bhbj5FbXBsYWNlbWVudCBsaWJyZTwvc3Bhbj48L3NwYW4+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBzdHlsZT1cIm1hcmdpbi10b3A6IGF1dG87XCIgQGNsaWNrPVwic2VsZWN0R2FtZShKU09OLnN0cmluZ2lmeShzZWxlY3RlZEdhbWUpKVwiPlPDqWxlY3Rpb25uZXogY2V0dGUgcGFydGllPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZGV0YWlsc1wiPlxuICAgICAgICA8c3Bhbj5Tw6lsZWN0aW9ubmV6IHVuZSBwYXJ0aWU8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FydGljbGU+XG5cbjwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vTm9tIGRlIGxhIHZ1ZVxuICBuYW1lOiBcImdhbWVzTGlzdFwiLFxuICBpbmplY3Q6WydnZXRVc2VySW5mb3MnLCdnZXRDb250ZW50JywnZ2V0T3BlbkdhbWUnLCdyZWZyZXNoR2FtZXNCeVVzZXInXSxcbiAgcHJvcHM6IHtcbiAgICBwYXJ0aWVzOnt9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZEdhbWU6e30sXG4gICAgICBEZWZhdWx0OntcbiAgICAgICAgbm9tOidab25lIEluZXhwbG9yw6llJyxcbiAgICAgICAgZGVzY3JpcHRpb246J0NldHRlIHBhcnRpZSBkdSBtb25kZSBuXFwnZXN0IHBhcyBlbmNvcmUgZMOpY3JpdGUuIE5cXCdow6lzaXRleiBwYXMgw6AgcHJvcG9zZXIgZGVzIGNob3Nlcy4nLFxuICAgICAgICBkZXNjcmlwdGlvbkdNIDogJycsXG4gICAgICAgIGxvY2FsOltdLFxuICAgICAgICBpbWc6J2h0dHBzOi8vd3d3LnZhZ2Fib25kcy1qZHIuZnIvYXNzZXRzL2ltYWdlcy9pbGx1c3RyYXRpb24vaGV4L1BsYWluczEuanBnJ1xuICAgICAgfSxcbiAgICAgIGRpc3BsYXllZEdhbWVzOlwic2VsZlwiLFxuICAgIH07XG4gIH0sXG4gIGNvbXB1dGVkOntcbiAgICB1c2VyX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm9zKCk7XG4gICAgfSxcbiAgICBjb250ZW50KCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb250ZW50KCk7XG4gICAgfSxcbiAgICBkaXNwbGF5KCl7XG4gICAgICBsZXQgZGlzcGxheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5EZWZhdWx0KSk7XG5cbiAgICAgIGlmKCF0aGlzLnNlbGVjdGVkR2FtZS5wb3NpdGlvbkdyb3VwZSB8fCAhdGhpcy5jb250ZW50IHx8ICF0aGlzLmNvbnRlbnRbdGhpcy5zZWxlY3RlZEdhbWUucG9zaXRpb25Hcm91cGVdKSByZXR1cm4gZGlzcGxheTtcblxuICAgICAgbGV0IGNvbnRlbnRTY29wZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY29udGVudFt0aGlzLnNlbGVjdGVkR2FtZS5wb3NpdGlvbkdyb3VwZV0pKTtcbiAgICAgIGlmKGNvbnRlbnRTY29wZWQubm9tKSBkaXNwbGF5Lm5vbSA9IGNvbnRlbnRTY29wZWQubm9tO1xuICAgICAgaWYoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbikgZGlzcGxheS5kZXNjcmlwdGlvbiA9IGNvbnRlbnRTY29wZWQuZGVzY3JpcHRpb247XG4gICAgICBpZihjb250ZW50U2NvcGVkLmRlc2NyaXB0aW9uR00pIGRpc3BsYXkuZGVzY3JpcHRpb25HTSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udGVudFNjb3BlZC5kZXNjcmlwdGlvbkdNKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmxvY2FsKSBkaXNwbGF5LmxvY2FsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250ZW50U2NvcGVkLmxvY2FsKSk7XG4gICAgICBpZihjb250ZW50U2NvcGVkLmltZykgZGlzcGxheS5pbWcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRlbnRTY29wZWQuaW1nKSk7XG5cbiAgICAgIHJldHVybiBkaXNwbGF5O1xuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6e1xuICAgIGRhdGU6ZnVuY3Rpb24odGltZXN0YW1wLCBmdWxsID0gZmFsc2Upe1xuICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXAqMTAwMCk7XG4gICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgIGlmKGZ1bGwpIHJldHVybiBgJHtkYXRlLmdldERhdGUoKTwxMCA/ICcwJyA6ICcnfSR7ZGF0ZS5nZXREYXRlKCl9LyR7ZGF0ZS5nZXRNb250aCgpPDEwID8gJzAnIDogJyd9JHtkYXRlLmdldE1vbnRoKCkrMX0vJHtkYXRlLmdldEZ1bGxZZWFyKCl9ICR7ZGF0ZS5nZXRIb3VycygpfToke2RhdGUuZ2V0TWludXRlcygpPDEwID8gJzAnIDogJyd9JHtkYXRlLmdldE1pbnV0ZXMoKX1gO1xuICAgICAgLy9zaSArIGQndW4gYW5cbiAgICAgIGlmKGRhdGUuZ2V0RnVsbFllYXIoKSAhPT0gbm93LmdldEZ1bGxZZWFyKCkpIHJldHVybiBgJHtkYXRlLmdldE1vbnRoKCkrMTwxMCA/IDAgOiAnJ30ke2RhdGUuZ2V0TW9udGgoKSsxfS8ke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xuICAgICAgLy9zaSBwbHVzIGQndW5lIGpvdXJuw6llXG4gICAgICBpZihkYXRlLmdldE1vbnRoKCkgIT09IG5vdy5nZXRNb250aCgpIHx8IGRhdGUuZ2V0RGF0ZSgpICE9PSBub3cuZ2V0RGF0ZSgpICkgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpPDEwID8gJzAnIDogJyd9JHtkYXRlLmdldERhdGUoKX0vJHtkYXRlLmdldE1vbnRoKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0TW9udGgoKSsxfWA7XG4gICAgICAvL3Npbm9uXG4gICAgICByZXR1cm4gYCR7ZGF0ZS5nZXRIb3VycygpPDEwID8gJzAnIDogJyd9JHtkYXRlLmdldEhvdXJzKCl9OiR7ZGF0ZS5nZXRNaW51dGVzKCk8MTAgPyAnMCcgOiAnJ30ke2RhdGUuZ2V0TWludXRlcygpfWA7XG5cbiAgICB9LFxuICAgIHNlbGVjdEdhbWUoanNvblBhcnRpZSl7XG4gICAgICB0aGlzLmdldE9wZW5HYW1lKGpzb25QYXJ0aWUpXG4gICAgfSxcbiAgICBkaXNwbGF5ZWRHYW1lc0NoYW5nZSgpe1xuICAgICAgdGhpcy5yZWZyZXNoR2FtZXNCeVVzZXIodGhpcy5kaXNwbGF5ZWRHYW1lcyA9PT0gJ3NlbGYnID8gdGhpcy51c2VyX2luZm9zLmlkIDogbnVsbCk7XG4gICAgICB0aGlzLnNlbGVjdGVkR2FtZSA9IHt9O1xuICAgIH1cbiAgfSxcbiAgbW91bnRlZCgpXG4gIHtcbiAgfVxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuLm1haW5zY3JlZW4ge1xuICAgIG1hcmdpbjogMCA4JSAwIDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgcGFkZGluZzogMiUgMCAyJSAyJTtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzNhNztcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXJ0aWNsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDM4MHB4O1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG4uZGV0YWlsc3tcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjoxcHggYmxhY2sgc29saWQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgcGFkZGluZzogMTYwcHggNXB4IDMwcHg7XG59XG5oMXtcbiAgbWFyZ2luLXRvcDogNTBweDtcbn1cbmgze1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbn1cbnVse1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMCA7XG59XG51bDpub3QoOmZpcnN0LW9mLXR5cGUpe1xuICBib3JkZXI6MXB4IHdoaXRlIHNvbGlkO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbn1cbmxpe1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjUwcHggMTgwcHggNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAycHggN3B4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxudWw6bm90KDpmaXJzdC1vZi10eXBlKT5saXtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5saT5zcGFuOmZpcnN0LW9mLXR5cGV7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucGxheWVyLWxpbmV7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4MmRlZywgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuNzUpIDEwJSwgcmdiYSgwLDAsMCwuNzUpIDkwJSwgcmdiYSgwLDAsMCwwKSAxMDAlKTtcbiAgbWFyZ2luOiAxcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzZweCAxZnI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNDZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYnIrLnBsYXllci1saW5le1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnBsYXllci1saW5lID4gYXtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYigyNywgMjcsIDI3KSAwJSwgcmdiKDI3LCAyNywgMjcpIDUlLCByZ2IoMTAsIDEwLCAxMCkgMTAwJSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIGEuaW1nLXBsYXllcntcbiAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly92YWdhYm9uZHMtamRyLmdpdGh1Yi5pby9pbWFnZXMvZXZlbnRzL3BsYWNlaG9sZGVyLmpwZyk7XG59XG4ucGxheWVyLWxpbmUgPiBzcGFuOmZpcnN0LW9mLXR5cGV7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy10b3A6IC40ZW07XG59XG4ucGxheWVyLWRldGFpbHN7XG4gIHdpZHRoOiAxMzJweDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBsZWZ0OiAtMTQ3cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9wbGFjZWhvbGRlci5qcGcpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWUyODJkO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xufVxuLnBsYXllci1kZXRhaWxzOjphZnRlcntcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAxMi41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBibGFjaztcbiAgbGVmdDogMTMycHg7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDIyLjVweDtcbn1cbi5wbGF5ZXItZGV0YWlscz5kaXZ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC00NWRlZywgcmdiYSgwLDAsMCwxKSAxOSUsIHJnYmEoMCwwLDAsMC44KSA0MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gIHotaW5kZXg6IDA7XG4gIHRvcDogMDtcbn1cbi5wbGF5ZXItZGV0YWlscz5we1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLnBsYXllci1saW5lOmhvdmVyID4gLnBsYXllci1kZXRhaWxze1xuZGlzcGxheTogYmxvY2s7XG59XG4uc2VsZWN0ZWR7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtibHVlO1xufVxuLmJ0bi1nYW1le1xuICBwYWRkaW5nOiAxNXB4IDE1cHggMzBweDtcbn1cbi8qLmJ0bi1nYW1lIGJ1dHRvbntcbiAgYm9yZGVyOnNvbGlkIDFweCAjZjBlNmQyO1xuICBjb2xvcjogI2YwZTZkMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG59Ki9cblxuXG4uYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAyMCUsIHJnYmEoMCwwLDAsLjc1KSA4MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gICAgYm9yZGVyLWNvbG9yOiBicm93bjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNhNTFmMWYsICNhNTFmMWYsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICNmZjBmMGY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIG91dGxpbmU6bm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn1cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgICAubWFpbnNjcmVlbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgcmlnaHQ6IDAlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbn1cbjwvc3R5bGU+XG4iLCI8dGVtcGxhdGU+XG48ZGl2IGNsYXNzPVwibWFpbnNjcmVlblwiPlxuICAgIDxhcnRpY2xlPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJnZXRPcGVuR2FtZShudWxsKVwiPiA8IExpc3RlIGRlcyBwYXJ0aWVzPC9idXR0b24+XG4gICAgICA8aDE+e3sgZ2FtZV9kYXRhcy5ub20gfX08L2gxPlxuICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWxcIj5cbiAgICAgIDxidXR0b24gdi1pZj1cInVzZXJfaXNfZ21cIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjY29uZmlybU1vZGFsXCIgQGNsaWNrPVwiaW52aXRlUGxheWVyKClcIj5JbnZpdGVyIHVuIGpvdWV1cjwvYnV0dG9uPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpIDpjbGFzcz1cImBwbGF5ZXItbGluZSAke2dhbWVfZGF0YXMuaWRVc2VyR20gPT0gdXNlcl9pbmZvcy5pZCA/ICdtZSc6Jyd9YFwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJpbWctcGxheWVyXCIgOmhyZWY9XCJgL2luZGV4LnBocC91c2VyLyR7Z2FtZV9kYXRhcy5pZFVzZXJHbX1gXCIgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2dhbWVfZGF0YXMuaW1nVXNlckdtIHx8ICdodHRwczovL3ZhZ2Fib25kcy1qZHIuZ2l0aHViLmlvL2ltYWdlcy9ldmVudHMvcGxhY2Vob2xkZXIuanBnJ30pYFwiPjwvYT5cbiAgICAgICAgICAgIDxzcGFuPk1hw650cmUgZGUgamV1IDoge3sgZ2FtZV9kYXRhcy5ub21Vc2VyR219fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGF5ZXItZGV0YWlsc1wiIDpzdHlsZT1cImdhbWVfZGF0YXMuaW1nVXNlckdtID8gYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke2dhbWVfZGF0YXMuaW1nVXNlckdtfSlgIDogYGBcIj5cbiAgICAgICAgICAgICAgPHA+e3tnYW1lX2RhdGFzLm5vbVVzZXJHbX19PC9wPlxuICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgdi1mb3I9XCIocGxheWVyLCBpbmRleCkgaW4gZ2FtZV9kYXRhcy5wbGF5ZXJzXCIgOmtleT1cImluZGV4XCIgOmNsYXNzPVwiYHBsYXllci1saW5lICR7cGxheWVyLmlkID09IHVzZXJfaW5mb3MuaWQgPyAnbWUnOicnfWBcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiaW1nLXBsYXllclwiIDpocmVmPVwiYC9pbmRleC5waHAvdXNlci8ke3BsYXllci5pZH1gXCIgOnN0eWxlPVwiYGJhY2tncm91bmQtaW1hZ2U6IHVybCgke3BsYXllci5pbWcgfHwgJ2h0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9wbGFjZWhvbGRlci5qcGcnfSlgXCI+PC9hPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGxheWVyLmlkZW50aWZpYW50IH19IC0ge3sgcGxheWVyLnBlcnNvbm5hZ2VzLmNoYXJhY3RlcnNbMF0ubmFtZSB8fCAncGFzIGRlIHBlcnNvbm5hZ2UnfX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIHYtaWY9XCJ1c2VyX2lzX2dtXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJleGNsdXJlIGxlIGpvdWV1clwiXG4gICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNjb25maXJtTW9kYWxcIiBAY2xpY2s9XCJiYW4ocGxheWVyKVwiXG4gICAgICAgICAgICA+WDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYXllci1kZXRhaWxzXCIgOnN0eWxlPVwicGxheWVyLmltZyA/IGBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtwbGF5ZXIuaW1nfSlgIDogYGBcIj5cbiAgICAgICAgICAgICAgPHA+e3twbGF5ZXIuaWRlbnRpZmlhbnR9fTwvcD5cbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgdi1mb3I9XCJuIGluIGdhbWVfZGF0YXMucGxhY2VzIC0gZ2FtZV9kYXRhcy5wbGF5ZXJzLmxlbmd0aFwiIDprZXk9XCJuXCIgY2xhc3M9XCJwbGF5ZXItbGluZVwiPlxuICAgICAgICAgICAgPGE+PC9hPjxzcGFuPkVtcGxhY2VtZW50IGxpYnJlPC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1wYW5lbFwiPlxuICAgICAgICA8aDM+UsOpZ2xhZ2VzIGRlIGxhIHBhcnRpZTwvaDM+XG4gICAgICAgIDxidXR0b24gdi1pZj1cInVzZXJfaXNfZ21cIj5Nb2RpZmllciBsZXMgUsOpZ2xhZ2VzPC9idXR0b24+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+PHNwYW4+VmlzaWJpbGl0w6kgOjwvc3Bhbj4ge3sgZ2FtZV9kYXRhcy5wdWJsaWMgPyAncHVibGlxdWUnIDogJ3ByaXbDqWUnIH19PC9saT5cbiAgICAgICAgICA8bGk+PHNwYW4+Tm9tYnJlIGRlIGpvdWV1cnMgbWF4aW11bTo8L3NwYW4+IHt7IGdhbWVfZGF0YXMucGxhY2VzIH19PC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgPGJ1dHRvbiB2LWlmPVwidXNlcl9pc19nbVwiPkJvdXRvbiBkdSBNSjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHYtZWxzZS1pZj1cInVzZXJfaXNfcGxheWVyID49IDBcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBkYXRhLXRhcmdldD1cIiNjb25maXJtTW9kYWxcIiBAY2xpY2s9XCJsZWF2ZUdhbWUoKVwiPlF1aXR0ZXIgbGEgcGFydGllPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdi1lbHNlIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI2NvbmZpcm1Nb2RhbFwiIEBjbGljaz1cImpvaW5HYW1lKClcIj5EZXZlbmlyIGpvdWV1cjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuPC9kaXY+XG48L3RlbXBsYXRlPlxuPHNjcmlwdD5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJnYW1lRGFzaGJvYXJkXCIsXG4gIGluamVjdDpbXG4gICdnZXRVc2VySW5mb3MnLFxuICAnZ2V0Q29udGVudCcsXG4gICdnZXRHYW1lRGF0YXMnLFxuICAnc2V0Q29uZmlybU1vZGFsRGF0YXMnLFxuICAnZ2V0T3BlbkdhbWUnXG4gIF0sXG4gIHByb3BzOiB7XG4gICAgcGFydGllczp7fSxcbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0ZWRHYW1lOnt9LFxuICAgIH07XG4gIH0sXG4gIGNvbXB1dGVkOntcbiAgICB1c2VyX2luZm9zOiBmdW5jdGlvbigpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm9zKCk7XG4gICAgfSxcbiAgICBjb250ZW50KCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb250ZW50KCk7XG4gICAgfSxcbiAgICBnYW1lX2RhdGFzKCl7XG4gICAgICByZXR1cm4gdGhpcy5nZXRHYW1lRGF0YXMoKTtcbiAgICB9LFxuICAgIHVzZXJfaXNfZ20oKXtcbiAgICAgIHJldHVybiB0aGlzLmdhbWVfZGF0YXMuaWRVc2VyR20gPT0gdGhpcy51c2VyX2luZm9zLmlkO1xuICAgIH0sXG4gICAgdXNlcl9pc19wbGF5ZXIoKXtcbiAgICAgIC8vaWYgcGxheWVyIHJldHVybiBpbmRleCBvZiBwbGF5ZXIsIG90aGVyd2lzZSByZXR1cm4gLTFcbiAgICAgIHJldHVybiB0aGlzLmdhbWVfZGF0YXMucGxheWVycy5maW5kSW5kZXgocGxheWVyID0+IHBsYXllci5pZCA9PSB0aGlzLnVzZXJfaW5mb3MuaWQpO1xuICAgIH0sXG4gICAgY29uZmlybU1vZGFsRGF0YXMoKXtcbiAgICAgIHJldHVybiB0aGlzLnNldENvbmZpcm1Nb2RhbERhdGFzKCk7XG4gICAgfVxuICB9LFxuICBtZXRob2RzOntcbiAgICBiYW4ocGxheWVyKXtcbiAgICAgIGlmKCF0aGlzLnVzZXJfaXNfZ20pIHJldHVybjtcbiAgICAgIC8vcmVtb3ZlIHBsYXllciBmcm9tIGdhbWVcbiAgICAgIHRoaXMuY29uZmlybU1vZGFsRGF0YXMoXG4gICAgICAgICdjb25maXJtTW9kYWwnLFxuICAgICAgICAnQmFubmlyIHVuIGpvdWV1cicsXG4gICAgICAgIGDDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBiYW5uaXIgJHtwbGF5ZXIuaWRlbnRpZmlhbnR9ID8gU2EgcHJvZ3Jlc3Npb24gc2VyYSBwZXJkdWUuYCxcbiAgICAgICAgKHBsYXllcklkKSA9PiBjb25zb2xlLmxvZyhgQmFubmluZyBwbGF5ZXIgd2l0aCBpZDogJHtwbGF5ZXIuaWR9YClcbiAgICAgICk7XG4gICAgfSxcbiAgICBpbnZpdGVQbGF5ZXIoKXtcbiAgICAgIGlmKCF0aGlzLnVzZXJfaXNfZ20pIHJldHVybjtcbiAgICAgIC8vb3BlbiBtb2RhbCB0byBpbnZpdGUgcGxheWVyXG4gICAgICB0aGlzLmNvbmZpcm1Nb2RhbERhdGFzKFxuICAgICAgICAnY29uZmlybU1vZGFsJyxcbiAgICAgICAgJ0ludml0ZXIgdW4gam91ZXVyJyxcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIGludml0ZXIgY2Ugam91ZXVyID8nLFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZygnT3BlbmluZyBtb2RhbCB0byBpbnZpdGUgcGxheWVyJylcbiAgICAgICk7XG4gICAgfSxcbiAgICBsZWF2ZUdhbWUoKXtcbiAgICAgIC8vcmVtb3ZlIHBsYXllciBmcm9tIGdhbWVcbiAgICAgIHRoaXMuY29uZmlybU1vZGFsRGF0YXMoXG4gICAgICAgICdjb25maXJtTW9kYWwnLFxuICAgICAgICAnUXVpdHRlciBsYSBwYXJ0aWUnLFxuICAgICAgICAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgcXVpdHRlciBjZXR0ZSBwYXJ0aWUgPyBWb3RyZSBwcm9ncmVzc2lvbiBzZXJhIHBlcmR1ZS4nLFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZyhgTGVhdmluZyBnYW1lIGFzIHBsYXllciB3aXRoIGlkYClcbiAgICAgICk7XG4gICAgfSxcbiAgICBqb2luR2FtZSgpe1xuICAgICAgLy9hZGQgcGxheWVyIHRvIGdhbWVcbiAgICAgIHRoaXMuY29uZmlybU1vZGFsRGF0YXMoXG4gICAgICAgICdjb25maXJtTW9kYWwnLFxuICAgICAgICAnUmVqb2luZHJlIGxhIHBhcnRpZScsXG4gICAgICAgICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciByZWpvaW5kcmUgY2V0dGUgcGFydGllID8nLFxuICAgICAgICAoKSA9PiBjb25zb2xlLmxvZyhgSm9pbmluZyBnYW1lIGFzIHBsYXllciB3aXRoIGlkYClcbiAgICAgICk7XG4gICAgfVxuICB9LFxuICBtb3VudGVkKClcbiAge31cbn07XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5tZSBzcGFue1xuICAgIGNvbG9yOiB5ZWxsb3cgIWltcG9ydGFudDtcbn1cbi5tYWluc2NyZWVuIHtcbiAgICBtYXJnaW46IDAgOCUgMCAxNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxMGExMztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB6LWluZGV4OiAwO1xuICAgIHBhZGRpbmc6IDIlIDAgMiUgMiU7XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmFydGljbGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIHBhZGRpbmc6IDE1cHggMTAlO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMmVtIDZlbSAxZnIgNTBweDtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzMHB4KTtcbn1cbi5kZXRhaWxze1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOjFweCBibGFjayBzb2xpZDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBwYWRkaW5nOiAxNjBweCA1cHggMzBweDtcbn1cbmgxIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuICAgIGdyaWQtY29sdW1uLWVuZDogMztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbmgze1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbn1cbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogMDtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAgO1xufVxuLmxlZnQtcGFuZWwsIC5yaWdodC1wYW5lbCB7XG4gIHBhZGRpbmc6IDE3cHggNXB4O1xufVxuLmxlZnQtcGFuZWwge1xuICBncmlkLXJvdy1zdGFydDogMztcbn1cbi5yaWdodC1wYW5lbHtcbiAgZ3JpZC1yb3ctc3RhcnQ6IDM7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbnVsOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7XG4gIGJvcmRlcjoxcHggd2hpdGUgc29saWQ7XG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xufVxubGl7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyNTBweCAxODBweCA0MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDJweCA3cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ucmlnaHQtcGFuZWwgbGl7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDUwcHg7XG59XG51bDpub3QoOmZpcnN0LW9mLXR5cGUpPmxpe1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxpPnNwYW46Zmlyc3Qtb2YtdHlwZXtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5wbGF5ZXItbGluZXtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDgyZGVnLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDAsMCwwLC43NSkgMTAlLCByZ2JhKDAsMCwwLC43NSkgOTAlLCByZ2JhKDAsMCwwLDApIDEwMCUpO1xuICBtYXJnaW46IDFweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDVweDtcbiAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNnB4IDFmciAzMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmJyKy5wbGF5ZXItbGluZXtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5wbGF5ZXItbGluZSA+IGF7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2IoMjcsIDI3LCAyNykgMCUsIHJnYigyNywgMjcsIDI3KSA1JSwgcmdiKDEwLCAxMCwgMTApIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiBhLmltZy1wbGF5ZXJ7XG4gIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vdmFnYWJvbmRzLWpkci5naXRodWIuaW8vaW1hZ2VzL2V2ZW50cy9wbGFjZWhvbGRlci5qcGcpO1xufVxuLnBsYXllci1saW5lID4gc3BhbjpmaXJzdC1vZi10eXBle1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAuNGVtO1xufVxuLnBsYXllci1kZXRhaWxze1xuICB3aWR0aDogMTMycHg7XG4gIGhlaWdodDogNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgbGVmdDogLTE0N3B4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3ZhZ2Fib25kcy1qZHIuZ2l0aHViLmlvL2ltYWdlcy9ldmVudHMvcGxhY2Vob2xkZXIuanBnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzFlMjgyZDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbn1cbi5wbGF5ZXItZGV0YWlsczo6YWZ0ZXJ7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogMTIuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogYmxhY2s7XG4gIGxlZnQ6IDEzMnB4O1xuICBjb250ZW50OiAnJztcbiAgei1pbmRleDogMjtcbiAgdG9wOiAyMi41cHg7XG59XG4ucGxheWVyLWRldGFpbHM+ZGl2e1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHJnYmEoMCwwLDAsMSkgMTklLCByZ2JhKDAsMCwwLDAuOCkgNDAlLCByZ2JhKDAsMCwwLDApIDEwMCUpO1xuICB6LWluZGV4OiAwO1xuICB0b3A6IDA7XG59XG4ucGxheWVyLWRldGFpbHM+cHtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgZm9udC1zaXplOiAxLjFlbTtcbn1cbi5wbGF5ZXItbGluZTpob3ZlciA+IC5wbGF5ZXItZGV0YWlsc3tcbmRpc3BsYXk6IGJsb2NrO1xufVxuLnNlbGVjdGVke1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrYmx1ZTtcbn1cbi5idG4tZ2FtZXtcbiAgcGFkZGluZzogMTVweCAxNXB4IDMwcHg7XG59XG4vKi5idG4tZ2FtZSBidXR0b257XG4gIGJvcmRlcjpzb2xpZCAxcHggI2YwZTZkMjtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgcGFkZGluZzogNHB4IDE1cHggNHB4O1xufSovXG5cblxuLmJ0bi5idG4tc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDgyZGVnLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDAsMCwwLC43NSkgMjAlLCByZ2JhKDAsMCwwLC43NSkgODAlLCByZ2JhKDAsMCwwLDApIDEwMCUpO1xuICAgIGJvcmRlci1jb2xvcjogYnJvd247XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjYTUxZjFmLCAjYTUxZjFmLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICAgIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDA7XG4gICAgcGFkZGluZzogNHB4IDE1cHggNHB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiAjZmYwZjBmO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICBvdXRsaW5lOm5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmhvdmVyLFxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmZvY3VzLFxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmZvY3VzLXZpc2libGV7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAycHggd2hpdGUsIDAgMCAyNXB4ICNmMGU2ZDI7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCBicm93biwgYnJvd24sIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuXG59XG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6YWN0aXZlLFxuLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjZjBlNmQyLCAjZjBlNmQyLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDAlLCByZ2JhKDEzMSwxMjgsMTUwLDAuMDIpIDEwMCUpO1xuXG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gICAgLm1haW5zY3JlZW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGVmdDogMCU7XG4gICAgICAgIHJpZ2h0OiAwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgaWQ9XCJDaG9vc2VBcmNoZXR5cGVcIj5cbiAgICA8IS0tIE1vZGFsIGluZm9ybWF0aW9ucyBBQ0MgLS0+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm1vZGFsIGZhZGVcIlxuICAgICAgICBpZD1cIm1vZGFsQ2hvb3NlQXJjaGV0eXBlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJtb2RhbENob29zZUFyY2hldHlwZUxhYmVsXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9J21vZGFsLWRpYWxvZyBjaG9zZS1vcHRpb24nIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8QXJjaGV0eXBlQ2FyZCA6YXJjaGV0eXBlPVwiY2hhcmFjdGVyLmFyY2hldHlwZVwiIDpnZW5yZT1cImNoYXJhY3Rlci5nZW5yZVwiIDpkZXRhaWxlZD1cInRydWVcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gdi1pZj1cIiFsb2NrZWRDaGFyYWN0ZXJcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiICBAY2xpY2s9XCJsb2NrQ2hhcmFjdGVyKClcIiA+XG4gICAgICAgICAgICAgICAgQ2hvaXNpciBjZSBwZXJzb25uYWdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBGaW4gZGUgbW9kYWxlIC0tPlxuICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cbmltcG9ydCBBcmNoZXR5cGVDYXJkIGZyb20gJy4vY2hhcmFjdGVyQ3JlYXRvci9BcmNoZXR5cGVDYXJkLnZ1ZSc7XG5cbiAgICBleHBvcnQgZGVmYXVsdCB7XG4gICAgICAgIG5hbWU6IFwiRGV0YWlsc0NhcmRcIixcbiAgICAgICAgaW5qZWN0OiBbJ2dldENoYXJhY3RlcicsJ2dldENoYXJhY3RlckxvY2tlZCcsJ3NldExvY2tlZENoYXJhY3RlcicsJ3Jlc2V0SGlzdG9yeSddLFxuICAgICAgICBjb21wb25lbnRzOntBcmNoZXR5cGVDYXJkfSxcbiAgICAgICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9LFxuXG4gICAgICAgIG1ldGhvZHM6IHtcbiAgICAgICAgICAgIGxvY2tDaGFyYWN0ZXIoKXtcbiAgICAgICAgICAgICAgICBjb25zdCBteVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9ja2VkQ2hhcmFjdGVyKHRydWUpOyBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldEhpc3RvcnkoKVxuICAgICAgICAgICAgICAgIH0sIDI1MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXB1dGVkOntcbiAgICAgICAgICAgIGNoYXJhY3RlcjpmdW5jdGlvbigpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hhcmFjdGVyKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9ja2VkQ2hhcmFjdGVyKCl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hhcmFjdGVyTG9ja2VkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vdW50ZWQoKSB7fSxcbiAgICB9O1xuPC9zY3JpcHQ+XG48c3R5bGUgc2NvcGVkPlxuLm1vZGFsLWNvbnRlbnQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG4ubW9kYWwtZm9vdGVyIHtcblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmJ0bi5idG4tc3VjY2VzcyB7XG4gICAgbWFyZ2luOiBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAyMCUsIHJnYmEoMCwwLDAsLjc1KSA4MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gIGJvcmRlci1jb2xvcjogYnJvd247XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNhNTFmMWYsICNhNTFmMWYsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDFweCAwO1xuICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogI2ZmMGYwZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgb3V0bGluZTpub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn0gXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6YWN0aXZlLCBcbi5zaG93Pi5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1jb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMzEsMTI4LDE1MCwwKSwgI2YwZTZkMiwgI2YwZTZkMiwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAwJSwgcmdiYSgxMzEsMTI4LDE1MCwwLjAyKSAxMDAlKTtcblxufVxuXG4uY2hvc2Utb3B0aW9ue1xuICAgIGhlaWdodDogOTAlO1xufVxuLmNob3NlLW9wdGlvbiAubW9kYWwtY29udGVudFxue1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmNob3NlLW9wdGlvbiAubW9kYWwtYm9keVxue1xuICAgIGZsZXg6IHVuc2V0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCl7XG4gICAgLmNob3NlLW9wdGlvbntcbiAgICBoZWlnaHQ6IDYwJTtcbiAgICBtYXJnaW4tdG9wOiAxOCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTglO1xuICAgIH1cbiAgICAuY2hvc2Utb3B0aW9uIC5tb2RhbC1jb250ZW50XG4gICAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkgYW5kIChtYXgtaGVpZ2h0OiA3MDBweCl7XG4gICAgLmNob3NlLW9wdGlvbntcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICB9XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGlkPVwibmV3R2FtZVwiPlxuICAgICAgICA8IS0tTW9kYWwgZGUgc2F1dmVnYXJkZSBkJ3VuIG5vdXZlYXUgcHJvamV0IGRhbnMgbGUgcGFyY291cnMgQUNDLCBwZXJtZXQgZGUgc2VsZWN0aW9ubmVyIGwnb3JnYW5pc2F0aW9uIGNob2lzaWUgZXQgZGUgcmFwcGVsZXIgbCd1dGlsaXNhdGlvbiBvdSBub24gZCd1biBjcmVkaXQtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBpZD1cIk1vZGFsZU5ld0dhbWVcIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cIm5ld0dhbWVMYWJlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJuZXdHYW1lTGFiZWxcIj5DcsOpZXIgdW5lIG5vdXZlbGxlIHBhcnRpZTwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIk5hbWVcIj5Ob20gZGUgbGEgUGFydGllPC9sYWJlbD48YnIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIk5hbWVcIiB2LW1vZGVsPVwibmFtZVwiIHNpemU9XCIyN1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJQbGFjZXNcIj5Ob21icmUgZGUgam91ZXVycyBtYXhpbXVtPC9sYWJlbD48YnIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBuYW1lPVwiUGxhY2VzXCIgdi1tb2RlbD1cInBsYWNlc1wiIG1pbj1cIjFcIiBtYXg9XCI2XCIgc2l6ZT1cIjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVibGljU2VsZWN0XCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiUHVibGljXCIgdmFsdWU9XCJ0cnVlXCIgaWQ9XCJUXCIgdi1tb2RlbD1cInB1YmxpcXVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlRcIj48c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdleWUnXVwiIC8+PC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJQdWJsaWNcIiB2YWx1ZT1cImZhbHNlXCIgaWQ9XCJGXCIgdi1tb2RlbD1cInB1YmxpcXVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkZcIj48c3Bhbj48Zm9udC1hd2Vzb21lLWljb24gOmljb249XCJbJ2ZhcycsICdleWUtc2xhc2gnXVwiIC8+PC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHYtaWY9XCJwdWJsaXF1ZSA9PSAndHJ1ZSdcIj5QYXJ0aWUgcHVibGlxdWU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCB2LWVsc2U+UGFydGllIHByaXbDqWU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQW5udWxlclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJjcmVhdGVHYW1lKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ3LDqWVyIGxhIHBhcnRpZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tRmluIG1vZGFsIC0tPlxuICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tIFwiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlXCI7XG5pbXBvcnQgeyBmYUV5ZSwgZmFFeWVTbGFzaH0gZnJvbSBcIkBmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29uc1wiO1xuXG5saWJyYXJ5LmFkZCggZmFFeWUsIGZhRXllU2xhc2gpO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJOZXdHYW1lXCIsXG4gICAgaW5qZWN0OltcImdldE5ld0dhbWVcIl0sXG4gICAgY29tcG9uZW50czoge30sXG5cbiAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6J05vdXZlbGxlIFBhcnRpZScsXG4gICAgICAgICAgcHVibGlxdWU6IGZhbHNlLFxuICAgICAgICAgIHBsYWNlczo0LFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY29tcHV0ZWQ6e30sXG4gICAgbWV0aG9kczp7XG4gICAgICAgIGNyZWF0ZUdhbWUoKXtcbiAgICAgICAgICAgdGhpcy5nZXROZXdHYW1lKHRoaXMubmFtZSx0aGlzLnBsYWNlcyx0aGlzLnB1YmxpcXVlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbW91bnRlZCgpe31cbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuZm9ybXtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5pbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIHdpZHRoOiAxMHZ3O1xuICAgICAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xMGVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDE1NSAxNTMgMTUzIC8gMjAlKSAwJSwgcmdiYSgxMSwyMCwyNywwKSAxMDAlKVxufVxuXG4ubW9kYWwtY29udGVudHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDEwYTEzO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjM2E3O1xufVxuLmJ0bi5idG4tc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYnJvd247XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDgyZGVnLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDAsMCwwLC43NSkgMjAlLCByZ2JhKDAsMCwwLC43NSkgODAlLCByZ2JhKDAsMCwwLDApIDEwMCUpO1xuICAgIGJvcmRlci1jb2xvcjogYnJvd247XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjYTUxZjFmLCAjYTUxZjFmLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBib3JkZXItaW1hZ2UtcmVwZWF0OiBzdHJldGNoO1xuICAgIGJvcmRlci1pbWFnZS13aWR0aDogMXB4IDA7XG4gICAgcGFkZGluZzogNHB4IDE1cHggNHB4O1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiAjZmYwZjBmO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgZm9udC1mYW1pbHk6ICdNZWRpZXZhbFNoYXJwJywgY3Vyc2l2ZTtcbiAgICBvdXRsaW5lOm5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmhvdmVyLFxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmZvY3VzLFxuLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOmZvY3VzLXZpc2libGV7XG4gIGNvbG9yOiAjZjBlNmQyO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAycHggd2hpdGUsIDAgMCAyNXB4ICNmMGU2ZDI7XG4gIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCBicm93biwgYnJvd24sIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuXG59XG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6YWN0aXZlLFxuLnNob3c+LmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBlNmQyO1xuICAgIGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDEzMSwxMjgsMTUwLDApLCAjZjBlNmQyLCAjZjBlNmQyLCByZ2JhKDEzMSwxMjgsMTUwLDApKSAyNztcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDAlLCByZ2JhKDEzMSwxMjgsMTUwLDAuMDIpIDEwMCUpO1xuXG59XG5cbi5wdWJsaWNTZWxlY3R7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLDFmcik7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xufVxuXG4ucHVibGljU2VsZWN0IGlucHV0e1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucHVibGljU2VsZWN0IGxhYmVse1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnB1YmxpY1NlbGVjdCBsYWJlbDpmaXJzdC1vZi10eXBle1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAwIDAgNTAlO1xufVxubGFiZWwgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IDFweDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXI6IDBweCBzb2xpZCBicm93bjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQrbGFiZWwgc3BhbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbn1cbi5wdWJsaWNTZWxlY3QgbGFiZWw6bGFzdC1vZi10eXBle1xuICAgIGJvcmRlci1yYWRpdXM6IDAgNTAlIDUwJSAwO1xufVxuPC9zdHlsZT4iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBpZD1cIm5ld0dhbWVcIj5cbiAgICAgICAgPCEtLU1vZGFsIGRlIHNhdXZlZ2FyZGUgZCd1biBub3V2ZWF1IHByb2pldCBkYW5zIGxlIHBhcmNvdXJzIEFDQywgcGVybWV0IGRlIHNlbGVjdGlvbm5lciBsJ29yZ2FuaXNhdGlvbiBjaG9pc2llIGV0IGRlIHJhcHBlbGVyIGwndXRpbGlzYXRpb24gb3Ugbm9uIGQndW4gY3JlZGl0LS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlXCIgOmlkPVwiY29uZmlybU1vZGFsRGF0YXMuaWRcIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIDphcmlhLWxhYmVsbGVkYnk9XCJgJHtjb25maXJtTW9kYWxEYXRhcy5pZH1MYWJlbGBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwibmV3R2FtZUxhYmVsXCI+e3sgY29uZmlybU1vZGFsRGF0YXMudGl0bGUgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbmZpcm1Nb2RhbERhdGFzLnF1ZXN0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBBbm51bGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz1cImNhbGxiYWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlybWVyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS1GaW4gbW9kYWwgLS0+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJDb25maXJtTW9kYWxcIixcbiAgICBpbmplY3Q6IFtcImdldENvbmZpcm1Nb2RhbERhdGFzXCJdLFxuICAgIGNvbXBvbmVudHM6IHt9LFxuXG4gICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH0sXG4gICAgY29tcHV0ZWQ6IHtcbiAgICAgICAgY29uZmlybU1vZGFsRGF0YXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25maXJtTW9kYWxEYXRhcygpO1xuICAgICAgICB9LFxuICAgICAgICBjYWxsYmFjaygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpcm1Nb2RhbERhdGFzLmNhbGxiYWNrIHx8ICgoKSA9PiB7fSk7XG4gICAgICAgIH1cbiAgICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5mb3Jte1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgd2lkdGg6IDEwdnc7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnTWVkaWV2YWxTaGFycCcsIGN1cnNpdmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjEwZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTU1IDE1MyAxNTMgLyAyMCUpIDAlLCByZ2JhKDExLDIwLDI3LDApIDEwMCUpXG59XG5cbi5tb2RhbC1jb250ZW50e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMTBhMTM7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDBweDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBib3JkZXItY29sb3I6ICNjY2MzYTc7XG59XG4uYnRuLmJ0bi1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBicm93bjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODJkZWcsIHJnYmEoMCwwLDAsMCkgMCUsIHJnYmEoMCwwLDAsLjc1KSAyMCUsIHJnYmEoMCwwLDAsLjc1KSA4MCUsIHJnYmEoMCwwLDAsMCkgMTAwJSk7XG4gICAgYm9yZGVyLWNvbG9yOiBicm93bjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNhNTFmMWYsICNhNTFmMWYsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJvcmRlci1pbWFnZS1yZXBlYXQ6IHN0cmV0Y2g7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiA0cHggMTVweCA0cHg7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICNmZjBmMGY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICBmb250LWZhbWlseTogJ01lZGlldmFsU2hhcnAnLCBjdXJzaXZlO1xuICAgIG91dGxpbmU6bm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtcbiAgY29sb3I6ICNmMGU2ZDI7XG4gIHRleHQtc2hhZG93OiAwcHggMHB4IDJweCB3aGl0ZSwgMCAwIDI1cHggI2YwZTZkMjtcbiAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksIGJyb3duLCBicm93biwgcmdiYSgxMzEsMTI4LDE1MCwwKSkgMjc7XG5cbn1cbi5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTphY3RpdmUsXG4uc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2YwZTZkMjtcbiAgICBib3JkZXItY29sb3I6ICNmMGU2ZDI7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTMxLDEyOCwxNTAsMCksICNmMGU2ZDIsICNmMGU2ZDIsIHJnYmEoMTMxLDEyOCwxNTAsMCkpIDI3O1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgMCUsIHJnYmEoMTMxLDEyOCwxNTAsMC4wMikgMTAwJSk7XG5cbn1cblxuLnB1YmxpY1NlbGVjdHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsMWZyKTtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG59XG5cbi5wdWJsaWNTZWxlY3QgaW5wdXR7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wdWJsaWNTZWxlY3QgbGFiZWx7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ucHVibGljU2VsZWN0IGxhYmVsOmZpcnN0LW9mLXR5cGV7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCA1MCU7XG59XG5sYWJlbCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbjogMXB4O1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIGJyb3duO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCtsYWJlbCBzcGFue1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJyb3duO1xufVxuLnB1YmxpY1NlbGVjdCBsYWJlbDpsYXN0LW9mLXR5cGV7XG4gICAgYm9yZGVyLXJhZGl1czogMCA1MCUgNTAlIDA7XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBpZD1cImFwcFwiPlxuICAgIDxtb2RhbEhhbmRsZXIvPlxuICAgIDxUaGVUYWJzIDp0YWJzPVwidGFic1wiLz5cbiAgICA8a2VlcC1hbGl2ZT5cbiAgICAgIDxjb21wb25lbnQgdi1iaW5kOmlzPVwiYWN0aXZlVGFiXCIgOmFydGljbGVzPVwiYXJ0aWNsZXNcIiA6bm9tcz1cIm5vbXNcIiA6ZmFjdGlvbnM9XCJmYWN0aW9uc1wiIDpza2lsbHM9XCJza2lsbHNcIiA6cm9sZXM9XCJyb2xlc1wiIDphcmNoZXR5cGU9XCJhcmNoZXR5cGVcIiA6cGFydGllcz1cInBhcnRpZXNcIi8+XG4gICAgPC9rZWVwLWFsaXZlPlxuICAgIDxEZXRhaWxzQ2FyZCBAbG9ja0NoYXJhY3Rlcj1cImNoYXJhY3RlckxvY2tlZCA9ICRldmVudFwiIDphcmNoZXR5cGU9XCJhcmNoZXR5cGVcIi8+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cbmltcG9ydCBUaGVUYWJzIGZyb20gJy4vY29tcG9uZW50cy9UaGVUYWJzJztcbmltcG9ydCBkb2N1bWVudCBmcm9tIFwiLi9jb21wb25lbnRzL3BhZ2VzL2RvY3VtZW50XCI7XG5pbXBvcnQgZHJpdmUgZnJvbSBcIi4vY29tcG9uZW50cy9wYWdlcy9kcml2ZVwiO1xuaW1wb3J0IGdyb3VwIGZyb20gXCIuL2NvbXBvbmVudHMvcGFnZXMvZ3JvdXBcIjtcbmltcG9ydCBob21lIGZyb20gXCIuL2NvbXBvbmVudHMvcGFnZXMvaG9tZVwiO1xuaW1wb3J0IG5hbWVzIGZyb20gXCIuL2NvbXBvbmVudHMvcGFnZXMvbmFtZXNcIjtcbmltcG9ydCB3b3JsZG1hcCBmcm9tIFwiLi9jb21wb25lbnRzL3BhZ2VzL3dvcmxkbWFwXCI7XG5pbXBvcnQgZ2FtZXNsaXN0IGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9nYW1lc2xpc3QudnVlJztcbmltcG9ydCBnYW1lRGFzaGJvYXJkIGZyb20gJy4vY29tcG9uZW50cy9wYWdlcy9nYW1lRGFzaGJvYXJkLnZ1ZSc7XG5pbXBvcnQgR3JvdXBCeUlkIGZyb20gXCIuL291dGlscy9ncm91cEJ5SURcIjtcbmltcG9ydCBEZXRhaWxzQ2FyZCBmcm9tICcuL2NvbXBvbmVudHMvRGV0YWlsc0NhcmQudnVlJztcbmltcG9ydCB0ZXh0UmVwbGFjZXIgZnJvbSAnLi9vdXRpbHMvdGV4dFJlcGxhY2VyJztcbmltcG9ydCBtb2RhbEhhbmRsZXIgZnJvbSAnLi9jb21wb25lbnRzL290aGVyL21vZGFsSGFuZGxlci52dWUnO1xuaW1wb3J0IGFwaUdhbWUgZnJvbSAnLi9hcGkvYXBpR2FtZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvL05vbSBkZSBsYSB2dWVcbiAgbmFtZTogXCJBcHBcIixcbiAgLy9vbiBwcmVjaXNlIGxlcyB2dWVzIHF1aSB2b250IMOqdHJlIGNvbW11bmlxdcOpZSDDoCBsYSBwYWdlXG4gIGNvbXBvbmVudHM6IHtcbiAgICBUaGVUYWJzLFxuICAgIGRvY3VtZW50LFxuICAgIGRyaXZlLFxuICAgIGdyb3VwLFxuICAgIGhvbWUsXG4gICAgbmFtZXMsXG4gICAgd29ybGRtYXAsXG4gICAgZ2FtZXNsaXN0LFxuICAgIGdhbWVEYXNoYm9hcmQsXG4gICAgRGV0YWlsc0NhcmQsXG4gICAgbW9kYWxIYW5kbGVyLFxuICB9LFxuICBwcm9wczoge1xuICAgIG9uZ2xldHM6e30sXG4gICAganNvbl9hcnRpY2xlczp7fSxcbiAgICBqc29uX25vbXM6e30sXG4gICAganNvbl9rZXl3b3Jkczoge30sXG4gICAganNvbl9pdGVtczoge30sXG4gICAganNvbl9ucGM6IHt9LFxuICAgIGpzb25fbW9uc3Rlcjp7fSxcbiAgICBqc29uX2ZhY3Rpb25zOnt9LFxuICAgIGpzb25fc2tpbGxzOnt9LFxuICAgIGpzb25fcm9sZXM6e30sXG4gICAganNvbl9hcmNoZXR5cGU6e30sXG4gICAganNvbl9nZW5lcmljX2V2ZW50Ont9LFxuICAgIGpzb25fY29udGVudDp7fSxcbiAgICBqc29uX2NpdGllczp7fSxcbiAgICBqc29uX3VzZXJzOnt9LFxuICAgIGpzb25fdXNlcl9pbmZvczp7fSxcbiAgICBqc29uX3BhcnRpZXM6e30sXG4gIH0sXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICB0YWJzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgbGV0IHRhYnMgPSBKU09OLnBhcnNlKHRoaXMub25nbGV0cyk7XG4gICAgICBsZXQgZ2FtZURhc2hib2FyZFRhYiA9IHtcbiAgICAgICAgbGliOidQYXJ0aWUnLFxuICAgICAgICBjb21wb25lbnQ6J2dhbWVEYXNoYm9hcmQnLFxuICAgICAgICB1cmw6JycsXG4gICAgICB9XG4gICAgICB0YWJzLmZvckVhY2goKGVsZW1lbnQsaW5kZXgpID0+IHsgdGFic1tpbmRleF0gPSAodGhpcy5nYW1lRGF0YXMgJiYgaW5kZXggPT0gdGFicy5sZW5ndGgtMikgPyBnYW1lRGFzaGJvYXJkVGFiIDogZWxlbWVudH0pO1xuICAgICAgcmV0dXJuIHRhYnM7XG4gICAgfSxcbiAgICBhcnRpY2xlczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl9hcnRpY2xlcyk7XG4gICAgfSxcbiAgICBub21zOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX25vbXMpO1xuICAgIH0sXG4gICAga2V5d29yZHM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fa2V5d29yZHMpO1xuICAgIH0sXG4gICAgaXRlbXM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25faXRlbXMpO1xuICAgIH0sXG4gICAgbnBjOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX25wYyk7XG4gICAgfSxcbiAgICBtb25zdGVyOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX21vbnN0ZXIpO1xuICAgIH0sXG4gICAgcGFydGllczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcnRpZXNSZWZyZXNoZWQgPyB0aGlzLnBhcnRpZXNSZWZyZXNoZWQgOiBKU09OLnBhcnNlKHRoaXMuanNvbl9wYXJ0aWVzKTtcbiAgICB9LFxuICAgIGZhY3Rpb25zOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX2ZhY3Rpb25zKTtcbiAgICB9LFxuICAgIHNraWxsczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBHcm91cEJ5SWQuZ3JvdXBCeUlkKEpTT04ucGFyc2UodGhpcy5qc29uX3NraWxscykpO1xuICAgIH0sXG4gICAgcm9sZXM6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fcm9sZXMpO1xuICAgIH0sXG4gICAgYXJjaGV0eXBlOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX2FyY2hldHlwZSk7XG4gICAgfSxcbiAgICBnZW5lcmljRXZlbnQ6IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmpzb25fZ2VuZXJpY19ldmVudCk7XG4gICAgfSxcbiAgICBjb250ZW50OiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoIHRoaXMuYXBpX2NvbnRlbnQgPyB0aGlzLmFwaV9jb250ZW50IDogdGhpcy5qc29uX2NvbnRlbnQpO1xuICAgIH0sXG4gICAgY2l0aWVzOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX2NpdGllcyk7XG4gICAgfSxcbiAgICB1c2VyczogZnVuY3Rpb24oKVxuICAgIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuanNvbl91c2Vycyk7XG4gICAgfSxcbiAgICB1c2VyX2luZm9zOiBmdW5jdGlvbigpXG4gICAge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5qc29uX3VzZXJfaW5mb3MpO1xuICAgIH0sXG4gIH0sXG5cbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlVGFiOmZhbHNlLFxuICAgICAgVGV4dFJlcGxhY2VyIDogbnVsbCxcbiAgICAgIGNoYXJhY3RlcjpcbiAgICAgIHtcbiAgICAgICAgbmFtZTpcIkFybWFuZCwgTGUgc29sZGF0XCIsXG4gICAgICAgIGdlbnJlOlwiaG9tbWVcIixcbiAgICAgICAgYXJjaGV0eXBlOntcImlkXCI6MzEsXCJub21cIjpcIkxlIHNvbGRhdFwiLFwiU3BlY2lhbGl0ZVwiOlwiRGlzY2lwbGluZVwiLFwiY29ycHNcIjoyLFwiaW50ZWxsaWdlbmNlXCI6MixcInNvY2lhbFwiOjEsXCJza2lsbDFcIjoxNixcInNraWxsMlwiOjI0LFwiaW1nXCI6XCJcIn1cbiAgICAgIH0sXG4gICAgICBwcm9ncmVzczp7XG4gICAgICAgIHN0YXRlczpbXG4gICAgICAgIHtcbiAgICAgICAgICBsaWJlbDonU29ubsOpJyxcbiAgICAgICAgICBzdGF0dXNDb2xvcjonYmxhbmMnLFxuICAgICAgICAgIGNvbWJhdDp0cnVlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOidMZSBwZXJzb25uYWdlIGEgcHJpcyB1biB2aW9sZW50IGNvdXAgc3VyIGxhIHTDqnRlLiBJbCBlc3QgZGltaW51w6kgcGVuZGFudCB1bmUgam91cm7DqWUuJyxcbiAgICAgICAgICB0aW1lTGltaXQ6MSxcbiAgICAgICAgICBkZWF0aDpmYWxzZSxcbiAgICAgICAgICBjdXJyZW50VGltZTowLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGliZWw6J0JsZXNzdXJlIEzDqWfDqHJlJyxcbiAgICAgICAgICBzdGF0dXNDb2xvcjonYmxhbmMnLFxuICAgICAgICAgIGNvbWJhdDp0cnVlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOidMZSBwZXJzb25uYWdlIGEgc3ViaXQgZGVzIGJsZXNzdXJlcyBxdWkgbmUgbWV0dGVudCBwYXMgZW4gZGFuZ2VyIHNhIHZpZS4gSWwgZXN0IGNlcGVuZGFudCBmcmFnaWxlIGV0IGRldnJhIHJlY2V2b2lyIGRlcyBzb2lucy4nLFxuICAgICAgICAgIHRpbWVMaW1pdDo0LFxuICAgICAgICAgIGRlYXRoOmZhbHNlLFxuICAgICAgICAgIGN1cnJlbnRUaW1lOjAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaWJlbDonQmxlc3N1cmUgR3JhdmUnLFxuICAgICAgICAgIHN0YXR1c0NvbG9yOidncmlzJyxcbiAgICAgICAgICBjb21iYXQ6dHJ1ZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjonTGUgcGVyc29ubmFnZSBlc3QgZW4gZGFuZ2VyLiBJbCBkb2l0IMOqdHJlIHJhcGlkZW1lbnQgcHJpcyBlbiBjaGFyZ2UgYXUgcmlzcXVlIGRlIHBlcmRyZSBsYSB2aWUuJyxcbiAgICAgICAgICB0aW1lTGltaXQ6NSxcbiAgICAgICAgICBkZWF0aDp0cnVlLFxuICAgICAgICAgIGN1cnJlbnRUaW1lOjAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaWJlbDonQWZmYW3DqScsXG4gICAgICAgICAgc3RhdHVzQ29sb3I6J2JsYW5jJyxcbiAgICAgICAgICBjb21iYXQ6ZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246J0xlIHBlcnNvbm5hZ2UgZXN0IHNvdXMtYWxpbWVudMOpLiBJbCBuZSByZXRyb3V2ZXJhIHBhcyB1biDDqXRhdCBjb252ZW5hYmxlIHNcXCdldHJlIG5vdXJyaXQgY29ycmVjdGVtZW50IHBlbmRhbnQgYXUgbW9pbnMgMiBqb3VycyBjb25zw6ljdXRpZnMuJyxcbiAgICAgICAgICB0aW1lTGltaXQ6NixcbiAgICAgICAgICBkZWF0aDp0cnVlLFxuICAgICAgICAgIGN1cnJlbnRUaW1lOjAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsaWJlbDonTWFsYWRlJyxcbiAgICAgICAgICBzdGF0dXNDb2xvcjonZ3JpcycsXG4gICAgICAgICAgY29tYmF0OmZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOidMZSBwZXJzb25uYWdlIGEgY29udHJhY3TDqSB1bmUgbWFsYWRpZS4gSWwgbmUgcGV1eCDDqnRyZSBzb2lnbsOpIHF1XFwnZW4gcGFzc2FudCB1biBzw6lqb3VyIGRhbnMgdW4gw6l0YWJsaXNzZW1lbnQgYXZlYyBkZXMgbcOpZGVjaW5zIGV0IGRlcyBtZWRpY2FtZW50cy4nLFxuICAgICAgICAgIHRpbWVMaW1pdDo0LFxuICAgICAgICAgIGRlYXRoOnRydWUsXG4gICAgICAgICAgY3VycmVudFRpbWU6MCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpYmVsOidNYXVkaXQnLFxuICAgICAgICAgIHN0YXR1c0NvbG9yOidub2lyJyxcbiAgICAgICAgICBjb21iYXQ6ZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246J0xlIHBlcnNvbm5hZ2UgZXN0IGZyYXBww6kgcGFyIGxhIGNvcnJ1cHRpb24uIFNhdWYgZXhjZXB0aW9uLCBpbCBwZXJkcyBsYSByYWlzb24gZXQgbmUgcmV2aWVuZHJhcyBqYW1haXMgw6Agc2EgdmllIGh1bWFpbmUuJyxcbiAgICAgICAgICB0aW1lTGltaXQ6MCxcbiAgICAgICAgICBkZWF0aDp0cnVlLFxuICAgICAgICAgIGN1cnJlbnRUaW1lOjEsXG4gICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRpY2VzOjMsXG4gICAgICAgIGRpY2VMb2NrZWQ6MCxcbiAgICAgICAgaGlzdG9yeTpbXSxcbiAgICAgICAgc3R1ZmY6e1xuICAgICAgICAgIGFybW9yOjMsXG4gICAgICAgICAgd2VhcG9uOjMsXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjaGFyYWN0ZXJMb2NrZWQ6ZmFsc2UsXG4gICAgICBoaXN0b3J5TWF4TGVuZ3RoOjksXG4gICAgICB0ZXJyaXRvcnk6IHtcbiAgICAgICAgc2hpbnJhaTpbODkxLDg5Miw4OTMsODk0LDk5MSw5OTIsMTA5Miw3OTEsNzkyLDc5Myw3OTQsNjkyLDY5Myw2OTQsNTkyLDU5Myw2OTFdLFxuICAgICAgICBzZW5pYXV4Ols0MDJdLFxuICAgICAgICB2aWRpZXU6WzEwMDJdLFxuICAgICAgICBzZXJ2ZW5hdGlmOltdLFxuICAgICAgICBtZXNhaXZlczpbOTAyLDEwMDMsMTEwMiwxMTAxXSxcbiAgICAgICAgcm95YWw6WzEwMDIsMTI5OSwxMjAwLDEzOTldLFxuICAgICAgfSxcbiAgICAgIHBhcnRpZXNSZWZyZXNoZWQ6ZmFsc2UsXG4gICAgICBhcGlfY29udGVudDpudWxsLFxuICAgICAgZ2FtZURhdGFzOm51bGwsXG4gICAgICBjb25maXJtTW9kYWxEYXRhczoge1xuICAgICAgICBpZDogJ2NvbmZpcm1Nb2RhbCcsXG4gICAgICAgIHRpdGxlOiAnQ29uZmlybWF0aW9uJyxcbiAgICAgICAgcXVlc3Rpb246ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBjb250aW51ZXIgPycsXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbiAgcHJvdmlkZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0QWN0aXZlVGFiOiAoKSA9PiB0aGlzLmFjdGl2ZVRhYixcbiAgICAgIHNldEFjdGl2ZVRhYjogdGhpcy5zZXRBY3RpdmVUYWIsXG4gICAgICBnZXRDaGFyYWN0ZXI6ICgpID0+IHRoaXMuY2hhcmFjdGVyLFxuICAgICAgc2V0Q2hhcmFjdGVyOiB0aGlzLnNldENoYXJhY3RlcixcbiAgICAgIGdldFNraWxsczogKCkgPT4gdGhpcy5za2lsbHMsXG4gICAgICBnZXRDaGFyYWN0ZXJMb2NrZWQ6ICgpID0+IHRoaXMuY2hhcmFjdGVyTG9ja2VkLFxuICAgICAgc2V0TG9ja2VkQ2hhcmFjdGVyOiAodmFsdWUpID0+IHt0aGlzLmNoYXJhY3RlckxvY2tlZCA9IHZhbHVlO30sXG4gICAgICBnZXRQcm9ncmVzczogKCkgPT4gdGhpcy5wcm9ncmVzcyxcbiAgICAgIGluc2VydFJvbGw6IHRoaXMuaW5zZXJ0Um9sbCxcbiAgICAgIHJlc2V0SGlzdG9yeTogdGhpcy5yZXNldEhpc3RvcnksXG4gICAgICB0b2dnbGVTdGF0ZTogdGhpcy50b2dnbGVTdGF0ZSxcbiAgICAgIGdldENvbnRlbnQ6ICgpID0+IHRoaXMuY29udGVudCxcbiAgICAgIHNldENvbnRlbnQ6ICh2YWx1ZSkgPT4ge3RoaXMuYXBpX2NvbnRlbnQgPSB2YWx1ZTt9LFxuICAgICAgZ2V0R2VuZXJpY0V2ZW50OiAoKSA9PiB0aGlzLmdlbmVyaWNFdmVudCxcbiAgICAgIGdldENpdGllczogKCkgPT4gdGhpcy5jaXRpZXMsXG4gICAgICBnZXRUZXJyaXRvcnk6KCkgPT4gdGhpcy50ZXJyaXRvcnksXG4gICAgICBnZXRSb3V0ZTogdGhpcy5nZXRSb3V0ZSgpLFxuICAgICAgZ2V0T3JpZ2luOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxuICAgICAgZ2V0VXNlckluZm9zOiAoKSA9PiB0aGlzLnVzZXJfaW5mb3MsXG4gICAgICB0ZXh0UmVwbGFjZXI6ICgpID0+IHRoaXMuVGV4dFJlcGxhY2VyLFxuICAgICAgZ2V0TmV3R2FtZTogdGhpcy5uZXdHYW1lLFxuICAgICAgZ2V0T3BlbkdhbWU6IHRoaXMub3BlbkdhbWUsXG4gICAgICBnZXROcGM6ICgpID0+IHRoaXMubnBjLFxuICAgICAgZ2V0TW9uc3RlcjogKCkgPT4gdGhpcy5tb25zdGVyLFxuICAgICAgZ2V0SXRlbXM6ICgpID0+IHRoaXMuaXRlbXMsXG4gICAgICBnZXRHYW1lRGF0YXM6ICgpID0+IHRoaXMuZ2FtZURhdGFzLFxuICAgICAgcmVmcmVzaEdhbWVzQnlVc2VyOiAodmFsdWUpID0+IHRoaXMucmVmcmVzaEdhbWVzQnlVc2VyKHZhbHVlKSxcbiAgICAgIGdldENvbmZpcm1Nb2RhbERhdGFzOiAoKSA9PiB0aGlzLmNvbmZpcm1Nb2RhbERhdGFzLFxuICAgICAgc2V0Q29uZmlybU1vZGFsRGF0YXM6ICgpID0+IHRoaXMuc2V0dGVyQ29uZmlybU1vZGFsRGF0YXMsXG4gICAgfTtcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgc2V0QWN0aXZlVGFiOiBmdW5jdGlvbihuZXdWYWwpIHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gbmV3VmFsO1xuICAgICAgfSxcbiAgICBzZXRDaGFyYWN0ZXI6IGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuICAgICAgdGhpcy5jaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7XG4gICAgICB9LFxuICAgIGluc2VydFJvbGw6IGZ1bmN0aW9uKHJvbGwsZGlmZixzdGF0KVxuICAgIHtcbiAgICAgIGxldCBuZXdQcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9ncmVzcykpO1xuICAgICAgbGV0IHN0YXROYW1lID0gJyc7XG4gICAgICBzd2l0Y2goc3RhdCl7XG4gICAgICAgIGNhc2UnY29ycHMnOlxuICAgICAgICAgIHN0YXROYW1lID0gXCJDb3Jwc1wiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlJ2ludGVsbGlnZW5jZSc6XG4gICAgICAgICAgc3RhdE5hbWUgPSBcIkVzcHJpdFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlJ3NvY2lhbCc6XG4gICAgICAgICAgc3RhdE5hbWUgPSBcIlNvY2lhbFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHN0YXROYW1lID0gc3RhdDtcbiAgICAgIH1cbiAgICAgIG5ld1Byb2dyZXNzLmhpc3RvcnkucHVzaCh7XG4gICAgICAgIHJvbGw6cm9sbCxcbiAgICAgICAgdGltZTpEYXRlLm5vdygpLFxuICAgICAgICBkaWZmaWN1bHR5OmRpZmYsXG4gICAgICAgIHN0YXQ6c3RhdE5hbWUsXG4gICAgICB9KTtcbiAgICAgIG5ld1Byb2dyZXNzLmhpc3RvcnkgPSBuZXdQcm9ncmVzcy5oaXN0b3J5LnNsaWNlKC0xKnRoaXMuaGlzdG9yeU1heExlbmd0aCk7XG4gICAgICB0aGlzLnByb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdQcm9ncmVzcykpO1xuICAgIH0sXG4gICAgcmVzZXRIaXN0b3J5KClcbiAgICB7XG4gICAgICBsZXQgbmV3UHJvZ3Jlc3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvZ3Jlc3MpKTtcbiAgICAgIG5ld1Byb2dyZXNzLmhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1Byb2dyZXNzKSk7XG4gICAgfSxcbiAgICB0b2dnbGVTdGF0ZShuYW1lKXtcbiAgICAgIGxldCBuZXdQcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9ncmVzcykpO1xuICAgICAgbmV3UHJvZ3Jlc3MuZGljZUxvY2tlZCA9IDA7XG4gICAgICBmb3IobGV0IHM9MDsgcyA8IG5ld1Byb2dyZXNzLnN0YXRlcy5sZW5ndGg7IHMrKylcbiAgICAgIHtcbiAgICAgICAgaWYobmV3UHJvZ3Jlc3Muc3RhdGVzW3NdLmxpYmVsID09IG5hbWUpIG5ld1Byb2dyZXNzLnN0YXRlc1tzXS5jdXJyZW50VGltZSA9IChuZXdQcm9ncmVzcy5zdGF0ZXNbc10uY3VycmVudFRpbWUpID8gMCA6IDE7XG4gICAgICAgIGlmKG5ld1Byb2dyZXNzLnN0YXRlc1tzXS5jdXJyZW50VGltZSkgbmV3UHJvZ3Jlc3MuZGljZUxvY2tlZCsrO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3UHJvZ3Jlc3MpKTtcbiAgICB9LFxuICAgIGdldFJvdXRlKCl7XG4gICAgICBsZXQgcm91dGUgPSB7fTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgnPycsICcnKS5zcGxpdCgnJicpLmZvckVhY2goKGVsKT0+IHJvdXRlW2VsLnNwbGl0KCc9JylbMF1dID0gZWwuc3BsaXQoJz0nKVsxXSk7XG5cbiAgICAgIHJldHVybiByb3V0ZTtcbiAgICB9LFxuICAgIHJvdXRlSW5mb3MoKXtcbiAgICAgIC8vUsOpY3Vww6lyYXRpb24gZGVzIHBhcmFtw6h0cmVzIGR1IGdldFxuICAgICAgbGV0IHJvdXRlID0gdGhpcy5nZXRSb3V0ZSgpO1xuICAgICAgLy9jb25zdGl0dXRpb24gZGUgbGEgbGlzdGUgZGVzIG9uZ2xldHMgdmFsaWRlc1xuICAgICAgbGV0IHRhYmxpc3QgPSBbXTtcbiAgICAgIHRoaXMudGFicy5mb3JFYWNoKChlbCk9PnRhYmxpc3QucHVzaChlbC5jb21wb25lbnQpKTtcbiAgICAgIC8vYWZmZWN0YXRpb24gc2kgYmVzb2luXG4gICAgICBpZihyb3V0ZS50YWIgJiYgdGFibGlzdC5pbmNsdWRlcyhyb3V0ZS50YWIpKSB0aGlzLmFjdGl2ZVRhYiA9IHJvdXRlLnRhYjtcbiAgICB9LFxuICAgIG5ld0dhbWUobm9tLHBsYWNlcyxwdWJsaXF1ZSl7XG4gICAgICBhcGlHYW1lLmNyZWF0ZUdhbWUocGxhY2VzLHB1YmxpcXVlLCBub20pXG4gICAgICAudGhlbigocmVzdWx0KT0+XG4gICAgICB7IGNvbnNvbGUubG9nKHJlc3VsdC5yZXN1bHQpO1xuICAgICAgICBpZihyZXN1bHQucmVzdWx0ID09PSBmYWxzZSkgdGhpcy53cm9uZ1Rva2VuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wYXJ0aWVzUmVmcmVzaGVkID0gSlNPTi5wYXJzZShyZXN1bHQucmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgb3BlbkdhbWUoanNvbkdhbWVEYXRhcyl7XG4gICAgICB3aW5kb3cuYWxlcnQoJ0ZvbmN0aW9ubmFsaXTDqSBlbiBjb3VycyBkZSBkZXZlbG9wcGVtZW50Jyk7XG4gICAgICBsZXQgZ2FtZURhdGFzID0gSlNPTi5wYXJzZShqc29uR2FtZURhdGFzKTtcbiAgICAgIHRoaXMuZ2FtZURhdGFzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShnYW1lRGF0YXMpKTtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGhpcy50YWJzW3RoaXMudGFicy5sZW5ndGgtMl0uY29tcG9uZW50O1xuICAgIH0sXG4gICAgYXN5bmMgcmVmcmVzaEdhbWVzQnlVc2VyKGlkVXNlcikge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpR2FtZS5nZXRBbGxHYW1lcyhpZFVzZXIpO1xuICAgICAgdGhpcy5wYXJ0aWVzUmVmcmVzaGVkID0gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0dGVyQ29uZmlybU1vZGFsRGF0YXMoaWQsIHRpdGxlLCBxdWVzdGlvbiwgY2FsbGJhY2spIHtcbiAgICAgIGNvbnNvbGUubG9nKGBTZXR0aW5nIGNvbmZpcm0gbW9kYWwgd2l0aCBpZDogJHtpZH0sIHRpdGxlOiAke3RpdGxlfSwgcXVlc3Rpb246ICR7cXVlc3Rpb259YCk7XG4gICAgICAvLyBTZXQgdGhlIGNvbmZpcm0gbW9kYWwgZGF0YVxuICAgICAgdGhpcy5jb25maXJtTW9kYWxEYXRhcyA9IHtpZDogaWQsXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgcXVlc3Rpb246IHF1ZXN0aW9uLFxuICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sgfHwgKCgpID0+IHt9KVxuICAgICAgfTtcbiAgICB9LFxuICB9LFxuXG5cbiAgbW91bnRlZCgpIHtcbiAgICB0aGlzLlRleHRSZXBsYWNlciA9IG5ldyB0ZXh0UmVwbGFjZXIodGhpcy5rZXl3b3Jkcyx0aGlzLml0ZW1zLHRoaXMubnBjLHRoaXMubW9uc3Rlcix0aGlzLnNraWxscylcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHRoaXMudGFic1swXS5jb21wb25lbnQ7XG4gICAgaWYod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibXlDaGFyYWN0ZXJcIikpIHRoaXMuY2hhcmFjdGVyID0gSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJteUNoYXJhY3RlclwiKSk7XG4gICAgaWYod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2hhcmFjdGVyTG9ja2VkXCIpKSB0aGlzLmNoYXJhY3RlckxvY2tlZCA9ICh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjaGFyYWN0ZXJMb2NrZWRcIikgPT09ICdmYWxzZScpPyBmYWxzZSA6IHRydWU7XG4gICAgaWYod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicHJvZ3Jlc3NcIikpIHRoaXMucHJvZ3Jlc3MgPSBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInByb2dyZXNzXCIpKTtcblxuICAgIHRoaXMucm91dGVJbmZvcygpO1xuXG4gICAgY29uc29sZS5sb2codGhpcy5jaGFyYWN0ZXIpO1xuICB9LFxuICB3YXRjaDoge1xuICAgIGNoYXJhY3Rlcigpe1xuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCdteUNoYXJhY3RlcicsIEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcmFjdGVyKSk7XG5cbiAgICAgIGxldCBuZXdQcm9ncmVzcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9ncmVzcykpO1xuICAgICAgbmV3UHJvZ3Jlc3MuZGljZXMgPSAodGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlLnNraWxsMSA9PSAyNiB8fCB0aGlzLmNoYXJhY3Rlci5hcmNoZXR5cGUuc2tpbGwyID09IDI2KT80OjM7XG4gICAgICAvL25ld1Byb2dyZXNzLmhpc3RvcnkgPSBbXTtcbiAgICAgIG5ld1Byb2dyZXNzLnN0dWZmLmFybW9yID0gdGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlLmNvcnBzO1xuICAgICAgbmV3UHJvZ3Jlc3Muc3R1ZmYud2VhcG9uID0gdGhpcy5jaGFyYWN0ZXIuYXJjaGV0eXBlLmNvcnBzO1xuXG4gICAgICB0aGlzLnByb2dyZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdQcm9ncmVzcykpO1xuICAgIH0sXG4gICAgY2hhcmFjdGVyTG9ja2VkKCl7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NoYXJhY3RlckxvY2tlZCcsIHRoaXMuY2hhcmFjdGVyTG9ja2VkKTtcbiAgICB9LFxuICAgIHByb2dyZXNzKCl7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Byb2dyZXNzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9ncmVzcykpO1xuICAgIH0sXG4gICAgYWN0aXZlVGFiKCl7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2FjdGl2ZVRhYicsIHRoaXMuYWN0aXZlVGFiKTtcbiAgICB9XG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4jYXBwe1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KXtcbiAgI2FwcHtcbiAgICBtaW4taGVpZ2h0OmNhbGMoMTAwdmggLSA1ZW0pO1xuICB9XG59XG48L3N0eWxlPlxuXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/