/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Iqbal Wahyudi Pratama - iqbalwahyudip.com
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* variable
----------------------------------------------------------------------------------------------*/
body {
  color: #111111;
  font-size: 12px;
  font-family: "Lato";
  position: relative;
  overflow-x: hidden;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
}

.italic {
  font-style: italic;
}

.bold {
  font-weight: bold;
}

.regular {
  font-weight: lighter;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

.clear {
  clear: both;
}

p {
  margin: 1px 0 15px;
  line-height: 20px;
}

input, textarea, select {
  font-size: 12px;
  border: none;
  border: 1px solid #D8D8D8;
  padding: 10px;
  margin: 0;
  color: #666;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

input[type=checkbox], input[type=radio] {
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
}

h1 {
  font-size: 55px;
  font-family: "Trirong";
}

h2 {
  font-size: 42px;
  font-family: "Trirong";
}

h3 {
  font-size: 36px;
  font-family: "Trirong";
}

h4 {
  font-size: 20px;
  font-family: "Trirong";
}

h5 {
  font-size: 16px;
  font-family: "Trirong";
}

h6 {
  font-size: 14px;
  font-family: "Trirong";
}

/* structure 
----------------------------------------------------------------------------------------------*/
section {
  position: relative;
}

.wrapper {
  width: 1170px;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.after_clear:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

.before_clear:before {
  clear: both;
  display: block;
  content: " ";
}

.a-left {
  text-align: left;
}

.a-right {
  text-align: right;
}

.a-center {
  text-align: center;
}

.fullfloat {
  width: 100%;
  float: left;
}

.fullinline {
  width: 100%;
  display: inline-block;
}

.clr-pink {
  color: #f28e98;
}

.subtitle {
  font-size: 30px;
  line-height: 48px;
  font-weight: 400;
}

.lineh {
  width: 140px;
  height: 2px;
  background: #f28e98;
  display: inline-block;
  margin: 15px 0;
}

.tdate {
  position: relative;
}

.tdate input[type="text"] {
  padding-right: 60px;
}

.tdate .ic-cus {
  position: absolute;
  top: 10px;
  right: 10px;
}

/* global
----------------------------------------------------------------------------------------------*/
.btn-oval {
  border: 1px solid #f0001f;
  background: #f0001f;
  height: 50px;
  padding: 0 55px;
  line-height: 50px;
  color: #fff;
  font-family: "Trirong";
  font-weight: 700;
  cursor: pointer;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 50px;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.btn-oval:hover {
  border-color: #f0001f;
  background: #fff;
  color: #f0001f;
}

.btn-oval.btn-loadmore {
  border-color: #eb4e5e;
  background: #eb4e5e;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  padding: 0 43px;
}

.btn-oval.btn-loadmore:hover {
  border-color: #eb4e5e;
  background: #fff;
  color: #eb4e5e;
}

.btn-oval.btn-pink {
  font-size: 18px;
  color: #fff;
  background: #f28e98;
  border-color: #f28e98;
}

.btn-oval.btn-pink:hover {
  border-color: #f28e98;
  background: #fff;
  color: #f28e98;
}

.btn-oval.btn-pink2 {
  font-size: 18px;
  color: #fff;
  background: #eb4e5e;
  border-color: #eb4e5e;
}

.btn-oval.btn-pink2:hover {
  border-color: #eb4e5e;
  background: #fff;
  color: #eb4e5e;
}

.btn-oval.btn-grclasy {
  font-size: 18px;
  color: #fff;
  background: #5a6d5a;
  padding-left: 12px;
  padding-right: 12px;
  border-color: #5a6d5a;
}

.btn-oval.btn-grclasy:hover {
  border-color: #5a6d5a;
  background: #fff;
  color: #5a6d5a;
}

.btn-oval.btn-inqury:hover .ic-inquiry {
  background-position: bottom center;
}

.link-line {
  font-size: 14px;
  color: #f28e98;
  position: relative;
  padding-left: 28px;
  font-family: "Trirong";
  font-weight: 700;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.link-line:before {
  content: "";
  position: absolute;
  top: 12px;
  left: 0;
  width: 18px;
  height: 2px;
  background: #f28e98;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.link-line:hover:before {
  width: 25px;
}

/* icons icwp 
-----------------------------------------*/
.icwp {
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-position: top center;
  display: inline-block;
  position: relative;
  /*&:hover{background-position: bottom center;}*/
}

.icwp.ic-fb, .icwp.ic-ig, .icwp.ic-tw, .icwp.ic-yt, .icwp.ic-gplus {
  width: 28px;
  height: 22px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.icwp.ic-fb:hover, .icwp.ic-ig:hover, .icwp.ic-tw:hover, .icwp.ic-yt:hover, .icwp.ic-gplus:hover {
  background-position: bottom center;
}

.icwp.ic-fb {
  background-image: url("../images/material/ic-fb.png");
}

.icwp.ic-ig {
  background-image: url("../images/material/ic-ig.png");
}

.icwp.ic-tw {
  background-image: url("../images/material/ic-tw.png");
}

.icwp.ic-yt {
  background-image: url("../images/material/ic-yt.png");
}

.icwp.ic-gplus {
  background-image: url("../images/material/ic-gplus.png");
}

.icwp.ic-fb-float, .icwp.ic-ig-float, .icwp.ic-tw-float, .icwp.ic-gplus-float {
  width: 28px;
  height: 22px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.icwp.ic-fb-float:hover, .icwp.ic-ig-float:hover, .icwp.ic-tw-float:hover, .icwp.ic-gplus-float:hover {
  background-position: bottom center;
}

.icwp.ic-fb-float {
  background-image: url("../images/material/ic-fb-float.png");
}

.icwp.ic-ig-float {
  background-image: url("../images/material/ic-ig-float.png");
}

.icwp.ic-tw-float {
  background-image: url("../images/material/ic-tw-float.png");
}

.icwp.ic-gplus-float {
  background-image: url("../images/material/ic-gplus-float.png");
}

.icwp.ic-fb-lg, .icwp.ic-ig-lg, .icwp.ic-tw-lg, .icwp.ic-gplus-lg {
  width: 47px;
  height: 35px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.icwp.ic-fb-lg:hover, .icwp.ic-ig-lg:hover, .icwp.ic-tw-lg:hover, .icwp.ic-gplus-lg:hover {
  background-position: bottom center;
}

.icwp.ic-fb-lg {
  background-image: url("../images/material/ic-fb-lg.png");
}

.icwp.ic-ig-lg {
  background-image: url("../images/material/ic-ig-lg.png");
}

.icwp.ic-tw-lg {
  background-image: url("../images/material/ic-tw-lg.png");
}

.icwp.ic-gplus-lg {
  background-image: url("../images/material/ic-gplus-lg.png");
}

.icwp.ic-mouse {
  background-image: url("../images/material/ic-mouse.png");
  width: 20px;
  height: 30px;
}

.icwp.ic-quotes {
  background-image: url("../images/material/ic-quotes.png");
  width: 39px;
  height: 34px;
}

.icwp.ic-video {
  background-image: url("../images/material/ic-video.png");
  width: 23px;
  height: 14px;
}

.icwp.ic-close {
  background-image: url("../images/material/ic-close.png");
  width: 16px;
  height: 13px;
}

.icwp.ic-date {
  background-image: url("../images/material/ic-date.png");
  width: 34px;
  height: 34px;
}

.icwp.ic-inquiry {
  background-image: url("../images/material/ic-inquiry.png");
  width: 30px;
  height: 30px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.icwp.ic-phone, .icwp.ic-print, .icwp.ic-mark {
  width: 19px;
  height: 18px;
  position: relative;
  top: 3px;
  margin-right: 8px;
}

.icwp.ic-phone {
  background-image: url("../images/material/ic-phone.png");
}

.icwp.ic-print {
  background-image: url("../images/material/ic-print.png");
}

.icwp.ic-mark {
  background-image: url("../images/material/ic-mark.png");
}

.icwp.ic-wa {
  background-image: url("../images/material/ic-wa.png");
  width: 30px;
  height: 30px;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

/* end icons icwp 
-----------------------------------------*/
/* header
----------------------------------------------------------------------------------------------*/
header {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0 50px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  transition: 0.3s background;
  -webkit-transition: 0.3s background;
  -moz-transition: 0.3s background;
  -ms-transition: 0.3s background;
  -o-transition: 0.3s background;
}

header .logo, header .logo-float {
  float: left;
  padding-top: 10px;
}

header .logo-float {
  display: none;
}

header .btn-burg-menu {
  display: none;
}

header .nav_right {
  float: right;
}

header .nav_right a {
  color: #fff;
  font-weight: 700;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
  position: relative;
  overflow: hidden;
  display: inline-block;
  font-size: 15px;
  /*&:before{content: ""; width: 100%; height: 2px; background: $pink; position: absolute; left: 0; top: 50%; margin-top: -2px; @include transform(translate3d(-100%,0,0)); @include transition(0.3s all);}*/
}

header .nav_right a:hover, header .nav_right a.active {
  color: #f28e98;
  /*&:before{@include transform(translate3d(100%,0,0));}*/
}

header .nav_right .nav_header, header .nav_right .nav_lang, header .nav_right .nav_sosmed, header .nav_right .nav_sosmed_float {
  float: left;
  position: relative;
}

header .nav_right .nav_header li {
  float: left;
  height: 70px;
  line-height: 70px;
  padding: 0 21px;
}

header .nav_right .nav_lang {
  line-height: 78px;
  padding: 0 30px 0 20px;
  height: 70px;
  position: relative;
}

header .nav_right .nav_lang:before, header .nav_right .nav_lang:after {
  content: "";
  position: absolute;
  top: 20px;
  width: 1px;
  height: 30px;
  background: #fff;
}

header .nav_right .nav_lang:before {
  left: 0;
}

header .nav_right .nav_lang:after {
  right: 0;
}

header .nav_right .nav_lang > a {
  position: static;
}

header .nav_right .nav_lang .arrow-bottom {
  position: absolute;
  top: 50%;
  right: 11px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  width: 10px;
  height: 5px;
  background: url("../images/material/arrow-bottom.png") no-repeat left center;
  background-size: 200% 100%;
}

header .nav_right .nav_lang .drop_lang {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  line-height: 0;
  text-align: center;
  background: rgba(255, 255, 255, 0.6);
  display: none;
}

header .nav_right .nav_lang .drop_lang a {
  padding: 3px 0;
}

header .nav_right .nav_lang .drop_lang li:first-child a {
  padding-top: 5px;
}

header .nav_right .nav_lang .drop_lang li:last-child a {
  padding-bottom: 5px;
}

header .nav_right .nav_sosmed, header .nav_right .nav_sosmed_float {
  padding-top: 23px;
  padding-left: 5px;
}

header .nav_right .nav_sosmed a, header .nav_right .nav_sosmed_float a {
  float: left;
  padding-left: 10px;
  height: 22px;
  overflow: hidden;
}

header .nav_right .nav_sosmed a img, header .nav_right .nav_sosmed_float a img {
  position: relative;
  top: 0;
  transition: 0.2s top;
  -webkit-transition: 0.2s top;
  -moz-transition: 0.2s top;
  -ms-transition: 0.2s top;
  -o-transition: 0.2s top;
  max-width: 100%;
}

header .nav_right .nav_sosmed a:hover img, header .nav_right .nav_sosmed_float a:hover img {
  top: -100%;
}

header .nav_right .nav_sosmed_float {
  display: none;
}

header.float {
  border-bottom: 1px solid #eaeaea;
  background: #fff;
}

header.float .logo {
  display: none;
}

header.float .logo-float {
  display: block;
}

header.float a {
  color: #333333;
}

header.float a:hover, header.float a.active {
  color: #f0001f;
}

header.float .nav_lang:before, header.float .nav_lang:after {
  background: #e5e5e5;
}

header.float .nav_lang .arrow-bottom {
  background-position: right center;
}

header.float .nav_sosmed {
  display: none;
}

header.float .nav_sosmed_float {
  display: block;
}

.homepage .shadow_top_header {
  display: none;
}

.shadow_top, .slidehome .list-slide .bg-shadow-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 417px;
  z-index: 999;
  background: transparent;
  background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0.5)), color-stop(100%, transparent));
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  background: -o-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#ffffff', GradientType=0 );
  /*background: rgba(0,0,0,1);
    background: -moz-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(255,255,255,1) 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(0,0,0,1)), color-stop(100%, rgba(255,255,255,1)));
    background: -webkit-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(255,255,255,1) 100%);
    background: -o-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(255,255,255,1) 100%);
    background: -ms-linear-gradient(top, rgba(0,0,0,1) 0%, rgba(255,255,255,1) 100%);
    background: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(255,255,255,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#ffffff', GradientType=0 );*/
}

/* middle
----------------------------------------------------------------------------------------------*/
.all-content {
  width: 100%;
  float: left;
}

.border-white {
  position: absolute;
  top: 70px;
  left: 50px;
  right: 50px;
  bottom: 0;
  border: 6px solid rgba(255, 255, 255, 0.5);
  z-index: 1000;
}

.slidehome {
  position: relative;
  opacity: 0;
}

.slidehome .sliderhome .slick-prev, .slidehome .sliderhome .slick-next {
  width: 40px;
  height: 77px;
  background-image: url("../images/material/arrow-slide-lg.png");
  background-repeat: no-repeat;
  z-index: 1001;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.slidehome .sliderhome .slick-prev:before, .slidehome .sliderhome .slick-next:before {
  display: none;
}

.slidehome .sliderhome .slick-next {
  right: 105px;
  background-position: right center;
}

.slidehome .sliderhome .slick-next:hover {
  right: 95px;
}

.slidehome .sliderhome .slick-prev {
  left: 105px;
  background-position: left center;
}

.slidehome .sliderhome .slick-prev:hover {
  left: 95px;
}

.slidehome .list-slide {
  height: 100vh;
}

.slidehome .list-slide figure {
  height: 100%;
}

.slidehome .list-slide figure img {
  min-height: 100%;
  min-width: 100%;
  max-width: none;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  position: relative;
  left: 50%;
}

.slidehome .list-slide .desc {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  margin: auto;
  font-size: 42px;
  line-height: 48px;
  color: #ffffff;
  font-family: "Trirong";
  font-weight: 300;
  z-index: 1002;
  text-align: center;
  width: 820px;
  max-width: 100%;
}

.slidehome .list-slide .desc span {
  font-weight: 500;
}

.slidehome .list-slide .desc .logo-lg {
  margin-bottom: 30px;
  text-align: center;
}

.slidehome .list-slide .desc .logo-lg img {
  display: inline-block;
}

.slidehome .list-slide .bg-shadow {
  background: url("../images/material/bg-shadow-middle.png") no-repeat center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-position-y: 0;
}

.slidehome .bg-shbottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: url("../images/material/bg-shadow-bottom.png") no-repeat bottom center;
  height: 220px;
}

.slidehome .sc-bottom {
  position: absolute;
  bottom: 33px;
  left: 0;
  right: 0;
  margin: auto;
  width: 82px;
  font-size: 12px;
  color: #f28e98;
  text-align: center;
  z-index: 1001;
  cursor: pointer;
}

.slidehome .sc-bottom span {
  display: block;
  margin-top: 7px;
}

.flwdev {
  position: absolute;
}

.sec-content {
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  min-height: 100vh;
  overflow: hidden;
}

.sec-content * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sec-content .desc-sechome {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  max-width: 100%;
  z-index: 1;
  padding-left: 35px;
}

.sec-content .desc-sechome h2 {
  font-weight: 400;
  margin-bottom: 55px;
  position: relative;
  line-height: 44px;
}

.sec-content .desc-sechome h2 span {
  font-weight: 500;
}

.sec-content .desc-sechome h2 .line-v {
  width: 6px;
  background: #f28e98;
  position: absolute;
  left: -35px;
  top: 3px;
  bottom: 0;
}

.sec-content .desc-sechome .quotes {
  font-style: italic;
  color: #4a4343;
  font-size: 24px;
  line-height: 30px;
  font-weight: 300;
  margin-bottom: 80px;
}

.sec-aboutus {
  position: relative;
}

.sec-aboutus .trigger-about {
  position: absolute;
  top: 50%;
}

.sec-aboutus .trigger-about2 {
  position: absolute;
  top: 50%;
}

.sec-aboutus .desc-sechome {
  left: 45.57%;
  width: 670px;
}

.sec-aboutus .flwdev.flw-01 {
  top: 5%;
  right: 0;
  margin-top: 200px;
}

.sec-aboutus .rings {
  position: absolute;
  top: 0;
  right: 19.19%;
  margin-top: 30%;
}

.sec-maps .mapshome {
  width: 100%;
  height: 520px;
}

.sec-contact {
  position: relative;
}

.sec-contact .trigger-contact {
  position: absolute;
  top: 50%;
}

.sec-contact .desc-sechome {
  width: 600px;
  left: 19.53%;
}

.sec-contact figure {
  float: right;
}

.sec-contact .flwdev.flw-02 {
  top: 0;
  left: 0;
  margin-top: 18.05%;
}

.sec-wedding-service {
  position: relative;
  min-height: 100vh;
  padding-top: 220px;
  padding-bottom: 342px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow: hidden;
}

.sec-wedding-service .bg-weddingservice {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("../images/material/bg-home-01.jpg") no-repeat center;
  background-size: cover;
  z-index: -10;
}

.sec-wedding-service .bg-shadow-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 365px;
  background: url("../images/material/bg-shadow-top-white.png") no-repeat center;
  z-index: -9;
}

.sec-wedding-service .border-white {
  position: absolute;
  top: 306px;
  left: 50px;
  right: 50px;
  bottom: 258px;
  border: 6px solid rgba(255, 255, 255, 0.5);
  z-index: -8;
}

.sec-wedding-service .trigger-service {
  position: absolute;
  top: 30%;
}

.sec-wedding-service .flwdev {
  z-index: -1;
}

.sec-wedding-service .flwdev.flw-03 {
  top: 0;
  right: 0;
  margin-top: 0;
}

.sec-wedding-service .flwdev.flw-04 {
  top: 0;
  left: 0;
  margin-top: 50%;
}

.sec-wedding-service .content-wedding {
  z-index: 1;
}

.sec-wedding-service .content-wedding .title-content {
  font-family: "Trirong";
}

.sec-wedding-service .content-wedding .box-weddingservice {
  margin-top: 62px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sec-wedding-service .content-wedding .box-weddingservice * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding {
  margin: 0 2.98%;
  width: 47.01%;
  float: left;
  background: #fff;
  padding: 30px 76px 57px;
  font-size: 14px;
  line-height: 24px;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding:nth-child(2n) {
  margin-right: 0;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding:nth-child(2n + 1) {
  margin-left: 0;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding .title-thumb-wedding {
  position: relative;
  padding-left: 57px;
  margin: 30px 0;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding .title-thumb-wedding h2 {
  font-size: 38px;
  line-height: 40px;
  height: 80px;
  overflow: hidden;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding .title-thumb-wedding .line-v {
  position: absolute;
  bottom: 0;
  left: 29px;
  width: 6px;
  height: 140px;
  background: #f28e98;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding p {
  margin-bottom: 45px;
  font-size: 14px;
  line-height: 24px;
}

.sec-wedding-service .content-wedding .box-weddingservice .list-wedding p span {
  font-weight: 700;
}

.sec-wedding-service .content-wedding .box-weddingserviceone {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: #fff;
  width: 100%;
  display: inline-block;
  padding: 65px 70px;
}

.sec-wedding-service .content-wedding .box-weddingserviceone * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.sec-wedding-service .content-wedding .box-weddingserviceone .title-thumb-wedding {
  position: relative;
  margin: 15px 0 25px;
}

.sec-wedding-service .content-wedding .box-weddingserviceone .title-thumb-wedding h2 {
  font-size: 38px;
  line-height: 40px;
  height: 80px;
  overflow: hidden;
}

.sec-wedding-service .content-wedding .box-weddingserviceone .title-thumb-wedding .line-v {
  position: absolute;
  bottom: 0;
  left: -30px;
  width: 6px;
  height: 140px;
  background: #f28e98;
}

.sec-wedding-service .content-wedding .box-weddingserviceone .left {
  float: left;
  width: 55%;
}

.sec-wedding-service .content-wedding .box-weddingserviceone .right {
  right: right;
  width: 43%;
  padding-top: 115px;
  padding-left: 40px;
}

.sec-ourvenue {
  background: #fafafa;
  position: relative;
  padding: 125px 0 120px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow: hidden;
}

.sec-ourvenue .trigger-ourvenue {
  position: absolute;
  top: 50%;
}

.sec-ourvenue .wrapper {
  width: 1600px;
}

.sec-ourvenue .inner-ourvenue {
  position: relative;
}

.sec-ourvenue .inner-ourvenue .slide-venue {
  width: 1185px;
  max-width: 100%;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots {
  width: auto;
  bottom: -35px;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots li {
  width: 80px;
  height: 10px;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots li button {
  width: 100%;
  padding: 0;
  height: 4px;
  background: #cccccc;
  position: relative;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background: #f28e98;
  content: "";
  padding: 0;
  width: 0;
  height: auto;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots li.slick-active button {
  background: #f28e98;
}

.sec-ourvenue .inner-ourvenue .slide-venue .slidervenue .slick-dots li:hover button:before {
  width: 100%;
}

.sec-ourvenue .inner-ourvenue .desc-venue {
  position: absolute;
  top: 60px;
  right: 0;
  width: 615px;
  max-width: 100%;
  background: #ffffff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 82px 77px 52px;
  font-size: 16px;
}

.sec-ourvenue .inner-ourvenue .desc-venue h2 {
  margin-bottom: 30px;
  position: relative;
  font-family: "Trirong";
}

.sec-ourvenue .inner-ourvenue .desc-venue h2 .line-v {
  position: absolute;
  bottom: 0;
  left: -28px;
  height: 160px;
  width: 6px;
  background: #f28e98;
}

.sec-ourvenue .inner-ourvenue .desc-venue p {
  line-height: 24px;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner {
  margin-top: 40px;
  width: 100%;
  float: left;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner h5 {
  font-family: "Trirong";
  margin-bottom: 10px;
  font-weight: 500;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .venue-top {
  margin-bottom: 38px;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .box-vendor {
  width: 100%;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .box-vendor .list-vendor {
  width: 30%;
  margin: 0 5% 10px;
  float: left;
  text-align: center;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .box-vendor .list-vendor:nth-child(3n + 1) {
  margin-left: 0;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .box-vendor .list-vendor:nth-child(3n + 2) {
  margin-left: 0;
  margin-right: 0;
}

.sec-ourvenue .inner-ourvenue .desc-venue .vendor-partner .box-vendor .list-vendor:nth-child(3n) {
  margin-right: 0;
}

.our-address {
  position: relative;
}

.our-address .trigger-ouraddress {
  position: absolute;
  top: 30%;
}

.our-address .box-ouraddress {
  width: 1600px;
  margin: auto;
  background: #fff;
  position: relative;
  top: -106px;
}

.our-address .box-ouraddress .inner-ouraddress {
  padding-top: 54px;
}

.our-address .box-ouraddress .inner-ouraddress .left {
  width: 370px;
  max-width: 100%;
  padding-left: 21px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  color: #4a4343;
  font-size: 16px;
  line-height: 20px;
}

.our-address .box-ouraddress .inner-ouraddress .left h1 {
  position: relative;
  margin-bottom: 20px;
  line-height: 60px;
}

.our-address .box-ouraddress .inner-ouraddress .left h1 .line-v {
  position: absolute;
  bottom: 0;
  left: -27px;
  width: 6px;
  height: 160px;
  background: #f28e98;
}

.our-address .box-ouraddress .inner-ouraddress .left h4 {
  color: #333;
  line-height: 24px;
  margin-bottom: 15px;
}

.our-address .box-ouraddress .inner-ouraddress .right {
  float: right;
  width: 670px;
}

.our-address .box-ouraddress .inner-ouraddress .right .career-icon {
  width: 128px;
  float: left;
  max-width: 100%;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome {
  width: 500px;
  float: right;
  max-width: 100%;
  font-size: 16px;
  line-height: 22px;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome h3 {
  margin-bottom: 15px;
  line-height: 40px;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome a {
  color: #f28e98;
  text-decoration: underline;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome a:hover {
  color: #333;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome .box-sosmed-lg {
  margin-top: 30px;
}

.our-address .box-ouraddress .inner-ouraddress .right .content-careerhome .box-sosmed-lg a {
  color: #4a4343;
  text-decoration: none;
}

.box-call {
  margin-top: 20px;
  color: #f28e98;
  font-size: 16px;
  line-height: 26px;
}

.box-call a {
  display: block;
  color: #f28e98;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.box-call a .icwp {
  position: relative;
  left: 0;
  transition: 0.1s all;
  -webkit-transition: 0.1s all;
  -moz-transition: 0.1s all;
  -ms-transition: 0.1s all;
  -o-transition: 0.1s all;
}

.box-call a:hover {
  color: #333;
}

.box-call a:hover .icwp {
  left: 2px;
}

.box-sosmed-lg a {
  float: left;
  text-align: center;
  font-size: 14px;
  color: #4a4343;
  text-decoration: none;
  width: 25%;
}

.box-sosmed-lg a figure {
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  border: 3px solid #999999;
  width: 69px;
  height: 69px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  margin-bottom: 10px;
  display: inline-block;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.box-sosmed-lg a figure i.icwp {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
}

.box-sosmed-lg a figure:hover {
  border-color: #f28e98;
}

.box-sosmed-lg a span {
  display: block;
  text-align: center;
}

.banner {
  position: relative;
}

.banner figure {
  overflow: hidden;
}

.aboutbox {
  position: relative;
  text-align: center;
  padding-top: 90px;
  padding-bottom: 90px;
}

.aboutbox .rings {
  position: absolute;
  top: 0;
  left: 2%;
  margin-top: 330px;
}

.aboutbox .btn-inqury {
  position: absolute;
  top: 132px;
  right: 20px;
}

.aboutbox h1 {
  margin-bottom: 105px;
}

.aboutbox .innerabout {
  width: 770px;
  margin: 0 auto;
  max-width: 100%;
}

.aboutbox .subtitle {
  margin-bottom: 75px;
}

.aboutbox .lineh {
  width: 140px;
  height: 2px;
  background: #f28e98;
  display: inline-block;
  margin: 15px 0 60px;
}

.aboutbox .flw-left-service {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 400px;
}

.aboutbox .flw-right-service {
  position: absolute;
  top: 0;
  right: 0;
  margin-top: 45%;
}

.aboutbox .flw-left-gallery {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 40%;
}

.aboutbox .flw-right-gallery {
  position: absolute;
  top: 0;
  right: 0;
  margin-top: 290px;
}

.aboutbox .desc {
  font-size: 14px;
  color: #4a4343;
  line-height: 24px;
}

.aboutbox .desc p {
  line-height: 24px;
}

.aboutbox .box-three-ikk {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin: 90px auto 0;
  width: 1070px;
  max-width: 100%;
}

.aboutbox .box-three-ikk .list {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 25.23%;
  float: left;
  position: relative;
  height: 75px;
  font-family: "Trirong";
  margin-right: 12.14%;
}

.aboutbox .box-three-ikk .list:first-child .f-right {
  padding-left: 70px;
}

.aboutbox .box-three-ikk .list:last-child {
  margin-right: 0;
}

.aboutbox .box-three-ikk .list .f-lg {
  font-weight: 800;
  font-size: 80px;
  color: #e1cba6;
  position: absolute;
  top: 0;
  left: 0;
}

.aboutbox .box-three-ikk .list .f-right {
  color: #111;
  font-size: 28px;
  font-weight: 800;
  text-align: left;
  padding-left: 100px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.aboutbox .box-three-ikk .list .f-right span {
  font-size: 18px;
  font-style: italic;
  font-weight: 400;
}

.aboutbox .about-quotes {
  margin-top: 132px;
}

.about-quotes {
  width: 100%;
  float: left;
}

.about-quotes .text-quotes {
  font-family: "Trirong";
  font-style: italic;
  font-size: 30px;
  color: #111;
  font-weight: 300;
  line-height: 48px;
  margin-top: 56px;
}

.about-quotes .auth-text {
  font-size: 14px;
  font-weight: 700;
  color: #e1cba6;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-top: 60px;
  display: block;
}

.title-content {
  margin-bottom: 50px;
}

.title-content h1 {
  margin-bottom: 20px;
}

.title-content h4 {
  font-size: 30px;
  color: #111;
  font-weight: 500;
  margin-bottom: 20px;
  line-height: 48px;
}

.title-content h4.caps-detail {
  margin-top: 115px;
  margin-bottom: 50px;
}

.title-content h1.tmd {
  font-weight: 500;
}

.title-content i {
  font-style: normal;
}

.title-content span {
  font-size: 14px;
  color: #e1cba6;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
  letter-spacing: 3px;
}

.about-story {
  text-align: center;
  padding-bottom: 100px;
  overflow: hidden;
}

.about-story .flw-right {
  position: absolute;
  top: -196px;
  right: 0;
  margin-top: 170px;
}

.about-story .box-slide-story {
  float: left;
  position: relative;
  width: 445px;
  max-height: 600px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.about-story .box-slide-story .line-v {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 370px;
  width: 1px;
  background: #999;
}

.about-story .box-slide-story .navsliderstory {
  height: 100%;
}

.about-story .box-slide-story .navsliderstory .slick-list {
  max-height: 500px !important;
}

.about-story .box-slide-story .navsliderstory .slick-prev, .about-story .box-slide-story .navsliderstory .slick-next {
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.about-story .box-slide-story .navsliderstory .slick-prev:before, .about-story .box-slide-story .navsliderstory .slick-next:before {
  display: none;
}

.about-story .box-slide-story .navsliderstory .slick-prev {
  position: absolute;
  top: -20px;
  left: 363px;
  background: url("../images/material/arrow-slide-vertical.png") no-repeat left center;
  width: 15px;
  height: 30px;
}

.about-story .box-slide-story .navsliderstory .slick-prev:hover {
  background-position: top left;
}

.about-story .box-slide-story .navsliderstory .slick-next {
  position: absolute;
  top: auto;
  bottom: -50px;
  left: 363px;
  background: url("../images/material/arrow-slide-vertical.png") no-repeat right center;
  width: 15px;
  height: 30px;
}

.about-story .box-slide-story .navsliderstory .slick-next:hover {
  background-position: bottom right;
}

.about-story .box-slide-story .navsliderstory .list-story {
  padding-right: 75px;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list {
  position: relative;
  text-align: right;
  font-size: 16px;
  font-weight: 800;
  font-family: "Trirong";
  color: #999;
  line-height: 24px;
  padding-bottom: 50px;
  display: block;
  padding-right: 71px;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list:before {
  content: "";
  position: absolute;
  top: 25%;
  right: -4px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  width: 7px;
  height: 7px;
  background: #999;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list h5 {
  font-weight: 800;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list .a-active {
  display: none;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list .a-active h1 {
  color: #f9c7cb;
  font-weight: 800;
  line-height: 60px;
}

.about-story .box-slide-story .navsliderstory .list-story .a-list .a-active h3 {
  color: #e1cba6;
  font-weight: 400;
  line-height: 36px;
}

.about-story .box-slide-story .navsliderstory .list-story.slick-current .a-list:before {
  width: 90px;
  background: #f9c7cb;
  right: -62px;
}

.about-story .box-slide-story .navsliderstory .list-story.slick-current .a-list h5 {
  display: none;
}

.about-story .box-slide-story .navsliderstory .list-story.slick-current .a-list .a-active {
  display: block;
}

.about-story .box-slide-story .navsliderstory .list-story.slick-current .desc {
  display: block;
}

.about-story .box-slide-story .navsliderstory .list-story.slick-current:hover .a-list:before {
  width: 90px;
}

.about-story .box-slide-story .navsliderstory .list-story:hover .a-list:before {
  width: 30px;
}

.about-story .box-slider-story-desc {
  float: right;
  width: 700px;
}

.about-story .box-slider-story-desc .navstoryres {
  display: none;
}

.about-story .box-slider-story-desc .desc {
  text-align: left;
  padding: 90px 0 10px;
  font-size: 20px;
  font-family: "Trirong";
  line-height: 34px;
}

.about-story .box-slider-story-desc .desc p {
  line-height: 34px;
  margin-bottom: 40px;
}

.about-story .box-slider-story-desc .desc .title-story {
  display: none;
}

.about-story .box-slider-story-desc .desc .title-story h3 {
  color: #e1cba6;
  font-weight: 400;
  line-height: 36px;
}

.about-story .box-slider-story-desc .desc .title-story h1 {
  color: #f9c7cb;
  font-weight: 800;
  line-height: 60px;
}

.about-story .box-story {
  position: relative;
  padding: 38px 0;
}

.about-story .box-story .line-v {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 370px;
  width: 1px;
  background: #999;
}

.about-story .box-story .prev-story {
  position: absolute;
  top: -20px;
  left: 363px;
  background: url("../images/material/arrow-slide-vertical.png") no-repeat left center;
  width: 15px;
  height: 8px;
}

.about-story .box-story .next-story {
  position: absolute;
  bottom: -20px;
  left: 363px;
  background: url("../images/material/arrow-slide-vertical.png") no-repeat right center;
  width: 15px;
  height: 8px;
}

.about-story .box-story .list-story {
  width: 370px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.about-story .box-story .list-story * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.about-story .box-story .list-story .a-list {
  position: relative;
  text-align: right;
  font-size: 16px;
  font-weight: 800;
  font-family: "Trirong";
  color: #999;
  line-height: 24px;
  margin-bottom: 50px;
  display: block;
  padding-right: 71px;
}

.about-story .box-story .list-story .a-list:before {
  content: "";
  position: absolute;
  top: 50%;
  right: -4px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  width: 7px;
  height: 7px;
  background: #999;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.about-story .box-story .list-story .a-list h5 {
  font-weight: 800;
}

.about-story .box-story .list-story .a-list .a-active {
  display: none;
}

.about-story .box-story .list-story .a-list .a-active h1 {
  color: #f9c7cb;
  font-weight: 800;
  line-height: 60px;
}

.about-story .box-story .list-story .a-list .a-active h3 {
  color: #e1cba6;
  font-weight: 400;
  line-height: 36px;
}

.about-story .box-story .list-story .desc {
  position: absolute;
  right: 0;
  width: 700px;
  top: 0;
  text-align: left;
  padding: 90px 0;
  font-size: 20px;
  font-family: "Trirong";
  line-height: 34px;
  display: none;
}

.about-story .box-story .list-story .desc p {
  line-height: 34px;
  margin-bottom: 40px;
}

.about-story .box-story .list-story.active .a-list:before {
  width: 90px;
  background: #f9c7cb;
  right: -62px;
}

.about-story .box-story .list-story.active .a-list h5 {
  display: none;
}

.about-story .box-story .list-story.active .a-list .a-active {
  display: block;
}

.about-story .box-story .list-story.active .desc {
  display: block;
}

.philosophy {
  text-align: center;
  padding-bottom: 200px;
}

.philosophy .quotes-philosophy h1 {
  font-weight: 800;
  letter-spacing: 15px;
  font-size: 50px;
  margin-bottom: 30px;
}

.philosophy .quotes-philosophy span {
  font-size: 16px;
  color: #4a4343;
  font-style: italic;
  display: block;
  margin-bottom: 35px;
}

.philosophy .quotes-philosophy h2 {
  font-size: 35px;
  color: #f28e98;
  font-style: italic;
  font-weight: 500;
}

.philosophy .box-two.visi {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin-top: 110px;
  text-align: left;
  padding: 0 70px;
}

.philosophy .box-two.visi * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.philosophy .box-two.visi .list {
  width: 430px;
  float: left;
}

.philosophy .box-two.visi .list.fr {
  float: right;
}

.philosophy .box-two.visi .list h5 {
  font-family: "Lato";
  font-weight: 700;
  letter-spacing: 2px;
  margin-bottom: 60px;
  color: #000;
  text-align: center;
}

.philosophy .box-two.visi .list ul li {
  position: relative;
  padding-left: 25px;
  color: #4a4343;
  font-size: 14px;
  line-height: 24px;
  margin-bottom: 20px;
}

.philosophy .box-two.visi .list ul li:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 7px;
  height: 7px;
  background: #000;
}

.philosophy .box-two.visi .list .mphilosophy {
  text-align: center;
  font-size: 14px;
  line-height: 24px;
}

.philosophy .box-two.visi .list .mphilosophy h5 {
  font-size: 18px;
  font-weight: 300;
  font-family: "Lato";
  margin-bottom: 15px;
  letter-spacing: 0;
}

.philosophy .box-two.visi .list .mphilosophy h4 {
  font-size: 23px;
  font-weight: 400;
  font-family: "Lato";
  margin-bottom: 40px;
}

.philosophy .box-two.visi .list.misi {
  font-size: 14px;
  line-height: 24px;
}

.philosophy .box-two.visi .list.misi p {
  line-height: 24px;
}

.our-team {
  text-align: center;
  position: relative;
  padding-bottom: 152px;
}

.our-team .flw-left {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 30px;
}

.our-team .fig-team {
  margin-bottom: 70px;
}

.our-team .title-content {
  line-height: 48px;
  font-size: 30px;
}

.our-team .title-content h4 {
  width: 740px;
  max-width: 100%;
  margin: 0 auto 30px;
}

.our-team p.filsof {
  width: 570px;
  margin: auto;
  font-size: 14px;
  line-height: 24px;
  color: #4a4343;
  margin-bottom: 140px;
  max-width: 100%;
}

.our-team .about-quotes .text-quotes {
  width: 680px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.box-service {
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
}

.box-service * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-service .line-v {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 6px;
  background: #f28e98;
  left: 50%;
  margin-left: -3px;
}

.box-service .list-service {
  position: relative;
  margin-bottom: 60px;
  width: 100%;
  float: left;
}

.box-service .list-service .service-desc {
  text-align: right;
  font-size: 14px;
  line-height: 24px;
  color: #4a4343;
  width: 50%;
  padding-right: 73px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.box-service .list-service .service-desc h1 {
  font-size: 80px;
  color: #e1cba6;
  font-weight: 800;
  margin-bottom: 20px;
  line-height: 80px;
}

.box-service .list-service .service-desc h3 {
  font-size: 38px;
  font-weight: 300;
  color: #111111;
  margin-bottom: 30px;
  line-height: 38px;
}

.box-service .list-service .service-img {
  width: 50%;
  float: right;
  padding-left: 73px;
}

.box-service .list-service .service-img figure {
  float: left;
}

.box-service .list-service:nth-child(odd) .service-desc {
  left: auto;
  right: 0;
  padding-left: 73px;
  padding-right: 0;
  text-align: left;
}

.box-service .list-service:nth-child(odd) .service-img {
  float: left;
  padding-left: 0;
  padding-right: 73px;
}

.box-service .list-service:nth-child(odd) .service-img figure {
  float: right;
}

.explore-venue {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  padding-bottom: 180px;
  position: relative;
}

.explore-venue .flw-left-venue {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 0;
}

.explore-venue .title-content {
  text-align: center;
}

.box-exvenue {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
  text-align: center;
}

.box-exvenue * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-exvenue .list-venue {
  margin-right: 1.8%;
  width: 31.96%;
  float: none;
  position: relative;
  overflow: hidden;
  margin-bottom: 30px;
  display: inline-block;
  text-align: left;
}

.box-exvenue .list-venue:nth-child(3n) {
  margin-right: 0;
}

.box-exvenue .list-venue .box-desc {
  position: absolute;
  top: 38px;
  left: 38px;
  right: 38px;
  bottom: 38px;
  background: #fff;
  padding: 45px 28px;
  overflow: hidden;
  transform: scale(1.2);
  -webkit-transform: scale(1.2);
  -moz-transform: scale(1.2);
  -ms-transform: scale(1.2);
  -o-transform: scale(1.2);
  opacity: 0;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
  visibility: hidden;
}

.box-exvenue .list-venue .box-desc .desc {
  overflow: hidden;
  max-height: 100%;
}

.box-exvenue .list-venue .box-desc .desc h4 {
  font-size: 24px;
  line-height: 30px;
  color: #000;
  font-weight: 400;
}

.box-exvenue .list-venue .box-desc .link-exvenue {
  position: absolute;
  bottom: 35px;
  right: 25px;
}

.box-exvenue .list-venue .box-desc .link-line:before {
  top: 8px;
}

.box-exvenue .list-venue:hover .box-desc {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
}

.coming-soon {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  height: 100vh;
  min-height: 850px;
}

.coming-soon * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.coming-soon .left {
  width: 40.36%;
  position: absolute;
  top: 0;
  bottom: 0;
  padding: 38px 72px;
  background: #ffffff;
}

.coming-soon .left .content-cs {
  text-align: center;
  position: absolute;
  z-index: 10;
  width: auto;
  max-width: 100%;
  top: 44%;
  left: 72px;
  right: 72px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.coming-soon .left .content-cs h1 {
  margin-bottom: 60px;
}

.coming-soon .left .content-cs h5 {
  font-size: 20px;
  line-height: 40px;
  color: #000;
  margin-bottom: 80px;
}

.coming-soon .left .content-cs .flw-right-cs {
  position: absolute;
  top: 82%;
  left: -72px;
}

.coming-soon .right {
  width: 59.63%;
  float: right;
}

.coming-soon .right .slidercs .list-slide {
  height: 100vh;
  min-height: 850px;
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.coming-soon .right .slidercs .list-slide figure {
  height: 100%;
  background-size: cover;
  background-position: center;
}

.coming-soon .right .slidercs .list-slide .desc {
  position: absolute;
  bottom: 0;
  left: 95px;
  right: 95px;
  background: #ffffff;
  padding: 30px 85px;
  font-size: 16px;
  line-height: 24px;
  color: #666666;
}

.coming-soon .right .slidercs .list-slide .desc h1 {
  font-size: 45px;
  position: relative;
  line-height: 45px;
  margin-bottom: 30px;
  color: #000;
}

.coming-soon .right .slidercs .list-slide .desc h1 .line-v {
  position: absolute;
  bottom: 0;
  left: -24px;
  width: 6px;
  height: 97px;
  background: #f28e98;
}

.coming-soon .right .slidercs .list-slide .desc p {
  line-height: 24px;
}

.coming-soon .box-partner-cs {
  position: absolute;
  bottom: 30px;
  left: 50px;
  width: 36.5%;
}

.coming-soon .box-partner-cs .list-partner {
  width: 20%;
  padding: 0 10px;
  float: left;
  margin-bottom: 10px;
  text-align: center;
}

.box-gallery {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin-bottom: 30px;
  width: 100%;
  float: left;
  text-align: center;
}

.box-gallery * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-gallery .list-gallery {
  margin-right: 1.8%;
  width: 31.96%;
  margin-bottom: 30px;
  position: relative;
  display: inline-block;
  text-align: left;
}

.box-gallery .list-gallery:nth-child(3n) {
  margin-right: 0;
}

.box-gallery .list-gallery img {
  width: 100%;
}

.box-gallery .list-gallery .thumb-vids {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  background: #eb4e5e;
  text-align: center;
  padding-top: 17px;
}

.box-loadmore {
  width: 100%;
  float: left;
}

.detailsection {
  position: relative;
  text-align: center;
  padding-top: 90px;
  padding-bottom: 105px;
}

.detailsection .btn-inqury {
  position: absolute;
  top: 132px;
  right: 20px;
}

.detailsection .flw-love-detail {
  position: absolute;
  margin-top: 28%;
  left: 0;
  top: 0;
}

.detailsection .flw-right-gallery {
  position: absolute;
  margin-top: 76%;
  right: 0;
  top: 0;
}

.detailsection .wrapper {
  width: 770px;
  max-width: 100%;
}

.desc-detvenue {
  font-size: 16px;
  line-height: 24px;
  font-family: "Lato";
  font-weight: 400;
  color: #000000;
}

.box-detail-venue {
  width: 100%;
  float: left;
  margin-top: 70px;
  margin-bottom: 100px;
}

.box-detail-venue .left {
  float: left;
  width: 64.93%;
  max-width: 100%;
}

.box-detail-venue .left figure {
  max-width: 100%;
}

.box-detail-venue .right {
  float: right;
  max-width: 100%;
  width: 29.87%;
  text-align: left;
  padding-top: 20px;
}

.box-detail-venue .right h4 {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1.6px;
  margin-bottom: 15px;
}

.box-detail-venue .right span {
  font-size: 16px;
  line-height: 20px;
  color: #333333;
  display: block;
  margin-bottom: 20px;
}

.box-partner {
  width: 100%;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-partner * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-partner .list-partner {
  width: 20%;
  padding: 0 10px;
  float: left;
  margin-bottom: 10px;
}

.box-gallery-detail {
  position: relative;
  text-align: center;
}

.box-gallery-detail hr {
  width: 100%;
  float: left;
  background: #e7e7e7;
  height: 2px;
  border: none;
}

.box-gallery-detail .box-slide-gallery {
  margin-bottom: 75px;
}

.box-gallery-detail .box-slide-gallery .slick-prev, .box-gallery-detail .box-slide-gallery .slick-next {
  width: 17px;
  height: 27px;
  background-image: url("../images/material/arrow-slide-gallery-detail.png");
  background-repeat: no-repeat;
}

.box-gallery-detail .box-slide-gallery .slick-prev:before, .box-gallery-detail .box-slide-gallery .slick-next:before {
  display: none;
}

.box-gallery-detail .box-slide-gallery .slick-prev {
  background-position: left center;
  left: -54px;
}

.box-gallery-detail .box-slide-gallery .slick-next {
  background-position: right center;
  right: -54px;
}

.box-gallery-detail .box-slide-gallery .slick-dots {
  text-align: left;
}

.box-gallery-detail .box-slide-gallery .slick-dots li {
  width: auto;
  height: auto;
  margin-right: 5px;
  margin-left: 0;
}

.box-gallery-detail .box-slide-gallery .slick-dots li button {
  width: 45px;
  height: 4px;
  background: #cccccc;
  padding: 0;
}

.box-gallery-detail .box-slide-gallery .slick-dots li button:before {
  display: none;
}

.box-gallery-detail .box-slide-gallery .slick-dots li.slick-active button, .box-gallery-detail .box-slide-gallery .slick-dots li:hover button {
  background: #f28e98;
}

.box-gallery-detail .other-venue {
  width: 100%;
  float: left;
}

.venue-location {
  text-align: left;
  position: relative;
  width: 100%;
  float: left;
  margin-bottom: 130px;
  margin-top: 110px;
}

.venue-location .ven-left {
  width: 870px;
  max-width: 100%;
  float: left;
}

.venue-location .ven-left .mapscontact {
  width: 100%;
  height: 536px;
}

.venue-location .ven-right {
  position: absolute;
  top: 98px;
  background: #ffffff;
  width: 470px;
  right: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 65px 70px 42px;
  font-size: 16px;
  line-height: 20px;
  color: #4a4343;
}

.venue-location .ven-right h2 {
  position: relative;
  margin-bottom: 35px;
  color: #000;
  line-height: 45px;
}

.venue-location .ven-right h2 .line-v {
  width: 6px;
  height: 160px;
  position: absolute;
  bottom: 0;
  left: -30px;
  background: #f28e98;
}

.venue-location .ven-right h4 {
  font-size: 24px;
  line-height: 30px;
  color: #333333;
  font-weight: 400;
  margin-bottom: 10px;
}

.venue-location .ven-right p {
  line-height: 20px;
  margin-bottom: 35px;
}

.venue-location .ven-right .link-derection {
  font-style: 16px;
  color: #f28e98;
  font-weight: 700;
}

.other-venue-section {
  position: relative;
  text-align: center;
  padding-bottom: 140px;
}

.other-venue-section .flw-left-other {
  position: absolute;
  top: -130px;
  left: 0;
}

.box-contact-right {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  min-height: 100%;
  background: rgba(0, 0, 0, 0.2);
  z-index: 10000;
  overflow-y: auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: none;
}

.box-contact-right * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-contact-right .inner {
  position: absolute;
  top: 0;
  right: 0;
  min-height: 100%;
  background: #fff;
  width: 775px;
  max-width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 80px 56px 33px;
}

.box-contact-right .inner h3 {
  font-size: 35px;
  color: #111;
  padding-left: 42px;
  margin-bottom: 48px;
}

.box-contact-right .inner p {
  font-size: 16px;
  line-height: 24px;
  color: #000000;
  margin-bottom: 30px;
}

.box-contact-right .inner .line-v {
  width: 6px;
  height: 112px;
  background: #f28e98;
  top: 0;
  left: 60px;
  position: absolute;
}

.box-contact-right .inner .btn-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  background: #f28e98;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.box-contact-right .inner .btn-close:hover {
  background: #f0001f;
}

.ui-datepicker table {
  font-size: 14px;
}

.ui-widget {
  font-size: 16px;
}

.box-inquiry {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 9000;
}

.box-inquiry .btn-oval {
  padding: 0 30px 0 30px;
}

.box-inquiry .ic-inquiry {
  vertical-align: middle;
  position: relative;
  top: -3px;
  margin-right: 8px;
}

.box-form {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  float: left;
}

.box-form * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.box-form input[type="text"], .box-form input[type="email"], .box-form textarea {
  border: none;
  border-bottom: 1px solid #c9b596;
  color: #eb4e5e;
  font-size: 24px;
  font-family: "Trirong";
  width: 100%;
  padding-left: 5px;
  padding-right: 5px;
  width: 100%;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
  background: transparent;
}

.box-form input[type="text"]:focus, .box-form input[type="text"]:active, .box-form input[type="email"]:focus, .box-form input[type="email"]:active, .box-form textarea:focus, .box-form textarea:active {
  border-color: #eb4e5e;
}

.box-form ::-webkit-input-placeholder {
  color: #cccccc;
}

.box-form :-moz-placeholder {
  color: #cccccc;
}

.box-form ::-moz-placeholder {
  color: #cccccc;
}

.box-form :-ms-input-placeholder {
  color: #cccccc;
}

.box-form textarea {
  resize: none;
  font-size: 18px;
  height: 90px;
  line-height: 24px;
}

.box-form .row {
  margin-bottom: 20px;
  width: 100%;
  float: left;
}

.box-form .row label {
  font-size: 16px;
  line-height: 24px;
  color: #111;
  display: block;
}

.box-form .tdate input[type="text"] {
  padding-right: 60px;
}

.box-form .captcha {
  float: left;
  margin-bottom: 10px;
}

.box-form .lfaq {
  font-size: 16px;
  line-height: 24px;
  color: #999999;
}

.box-form .lfaq a {
  color: #f28e98;
}

.box-filter {
  width: 100%;
  float: left;
  border: 1px solid #cccccc;
  margin-bottom: 100px;
}

.box-filter select {
  float: left;
  border: none;
  font-size: 18px;
  color: #000000;
  font-family: "Trirong";
  height: 98px;
  padding: 0 47px;
  background: url("../images/material/bg-combobox.png") no-repeat right center;
  width: 100%;
}

.box-filter .list-filter-gallery {
  float: left;
  border-right: 1px solid #e5e1de;
}

.box-filter .list-filter-gallery:last-child {
  border-right: none;
}

.box-filter .list-filter-gallery.search-filter {
  text-align: center;
  padding: 25px 0 0;
  width: 280px;
}

.box-filter .list-filter-gallery.svpartner {
  width: 240px;
}

.box-filter .list-filter-gallery.svenue {
  width: 164px;
}

.box-filter .list-filter-gallery.swtheme {
  width: 249px;
}

.box-filter .list-filter-gallery.sphoto {
  width: 232px;
}

.faq-content {
  position: relative;
  text-align: center;
  padding-top: 90px;
  padding-bottom: 105px;
}

.faq-content .flw-left-faq {
  position: absolute;
  margin-top: 40%;
  left: 0;
  top: 0;
}

.faq-content .btn-inqury {
  position: absolute;
  top: 132px;
  right: 20px;
}

.faq-content .wrapper {
  width: 770px;
  max-width: 100%;
}

.box-faq {
  text-align: left;
  color: #000000;
  font-size: 16px;
  line-height: 24px;
  margin-top: 110px;
  width: 100%;
  float: left;
}

.box-faq .list-faq {
  width: 100%;
  float: left;
  padding: 24px 0;
  position: relative;
}

.box-faq .list-faq:before, .box-faq .list-faq:after {
  content: "";
  width: 100%;
  height: 1px;
  background: #ccc;
  position: absolute;
  bottom: 0;
}

.box-faq .list-faq:before {
  background: #ccc;
  width: 100%;
  left: 0;
}

.box-faq .list-faq:after {
  background: #eb4e5e;
  width: 0;
  transition: 0.3s all ease-out;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  left: 50%;
}

.box-faq .list-faq .qst {
  font-size: 18px;
  line-height: 28px;
  font-weight: 600;
  font-family: "Trirong";
  color: #111;
  cursor: pointer;
  transition: 0.3s all;
  -webkit-transition: 0.3s all;
  -moz-transition: 0.3s all;
  -ms-transition: 0.3s all;
  -o-transition: 0.3s all;
}

.box-faq .list-faq .answr {
  padding-top: 20px;
  display: none;
}

.box-faq .list-faq.active .qst, .box-faq .list-faq:hover .qst {
  color: #eb4e5e;
}

.box-faq .list-faq.active:after, .box-faq .list-faq:hover:after {
  width: 100%;
  left: 0;
}

.box-faq .list-faq.active .answr {
  display: block;
}

.contact-content {
  position: relative;
  text-align: center;
}

.contact-content .flw-contact-right {
  position: absolute;
  right: 0;
  margin-top: 10%;
  top: 0;
}

.contact-content .flw-contact-left {
  position: absolute;
  left: 0;
  margin-top: 70%;
  top: 0;
}

.contact-content .wrapper {
  width: 770px;
}

.box-contact {
  text-align: left;
}

.box-follow-contact {
  margin-top: 130px;
  width: 100%;
  float: left;
  position: relative;
}

.box-follow-contact .box-sosmed-lg {
  text-align: center;
}

.box-follow-contact .box-sosmed-lg a {
  width: 140px;
  float: none;
  display: inline-block;
}

.banner-thankyou {
  position: relative;
  width: 100%;
  float: left;
  min-height: 90vh;
}

.banner-thankyou .desc {
  position: absolute;
  top: 75%;
  left: 0;
  right: 0;
  width: 570px;
  margin: 0 auto;
  text-align: center;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  max-width: 100%;
}

.banner-thankyou .desc h1 {
  font-size: 90px;
  color: #596c59;
  font-family: "Lato";
  font-weight: 100;
  margin-bottom: 35px;
}

.banner-thankyou .desc h5 {
  font-size: 20px;
  line-height: 31px;
  font-family: "Lato";
  font-weight: 400;
  color: #8f836d;
  margin-bottom: 30px;
}

.popup-gallery {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  background: #fff;
  opacity: 0;
  visibility: hidden;
}

.popup-gallery .close-pop-gallery {
  position: absolute;
  top: 21px;
  right: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  height: 50px;
  line-height: 50px;
  color: #fff;
  font-size: 16px;
  font-family: "Trirong";
  font-weight: 500;
  background: #f08e98;
  z-index: 1;
  padding: 0 28px;
  cursor: pointer;
}

.popup-gallery .close-pop-gallery:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  background: #f0001f;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
  z-index: -1;
}

.popup-gallery .close-pop-gallery .ic-close {
  margin-left: 20px;
}

.popup-gallery .close-pop-gallery:hover:before {
  width: 100%;
}

.popup-gallery .img-large .list-slide {
  /*min-height: 100vh;*/
  height: 100vh;
}

.popup-gallery .img-large .list-slide iframe {
  height: 100vh;
  width: 100%;
}

.popup-gallery .img-large .list-slide figure img {
  height: 100%;
  min-width: 100%;
  max-width: none;
}

.popup-gallery .img-large .list-slide .caps-large {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: center;
  width: 1075px;
  background: rgba(255, 255, 255, 0.4) url(../images/material/bg_top.png) repeat-x top center;
  max-width: 100%;
  padding: 30px 20px 150px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 20px;
  line-height: 18px;
  font-style: italic;
  font-weight: 600;
  color: #000;
}

.popup-gallery .img-large .list-slide .caps-large:after {
  content: "";
  height: 2px;
  width: 100px;
  background: #f08e98;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  bottom: 132px;
}

.popup-gallery .box-thumb-slider {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 1075px;
  margin: 0 auto;
  padding: 30px 0;
  background: rgba(255, 255, 255, 0.1);
}

.popup-gallery .box-thumb-slider .wrapper {
  width: 900px;
}

.popup-gallery .box-thumb-slider .caption-slide {
  text-align: center;
  font-size: 20px;
  line-height: 25px;
  font-style: italic;
  font-weight: 600;
  color: #333;
  margin-bottom: 55px;
}

.popup-gallery .box-thumb-slider .slick-prev, .popup-gallery .box-thumb-slider .slick-next {
  width: 18px;
  height: 27px;
  background-image: url("../images/material/arrow-slide-gallery-detail.png");
  background-repeat: no-repeat;
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.popup-gallery .box-thumb-slider .slick-prev:before, .popup-gallery .box-thumb-slider .slick-next:before {
  display: none;
}

.popup-gallery .box-thumb-slider .slick-prev {
  background-position: left center;
  left: -52px;
}

.popup-gallery .box-thumb-slider .slick-prev:hover {
  left: -56px;
}

.popup-gallery .box-thumb-slider .slick-next {
  background-position: right center;
  right: -52px;
}

.popup-gallery .box-thumb-slider .slick-next:hover {
  right: -56px;
}

.popup-gallery .box-thumb-slider .list-slide {
  text-align: center;
  margin: 0 9px;
}

.popup-gallery .box-thumb-slider .list-slide figure {
  text-align: center;
  position: relative;
  cursor: pointer;
  display: inline-block;
  height: auto;
}

.popup-gallery .box-thumb-slider .list-slide figure:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
}

.popup-gallery .box-thumb-slider .list-slide figure img {
  display: inline-block;
}

.popup-gallery .box-thumb-slider .list-slide:hover figure:before {
  background: rgba(0, 0, 0, 0.2);
}

.popup-gallery .box-thumb-slider .list-slide.slick-current figure:before {
  display: none;
}

.v-all {
  margin: 30px 0 40px;
}

.v-all .btn-oval {
  display: inline-block;
}

.box-wa {
  position: fixed;
  right: 40px;
  bottom: 30px;
  z-index: 9000;
}

.box-wa a {
  display: inline-block;
  background: #2ad265;
  border-color: #2ad265;
  font-size: 15px;
  padding: 0 30px;
}

.box-wa a i {
  display: inline-block;
  vertical-align: middle;
  margin-right: 10px;
  top: -3px;
}

.box-wa a:hover {
  color: #2ad265;
  border-color: #2ad265;
}

.box-wa a:hover i {
  background-position: bottom center;
}

.box-wa.absSroll {
  animation-name: bounching;
  animation-duration: .3s;
  bottom: 100px;
}

@keyframes bounching {
  0% {
    bottom: 95px;
  }
  35% {
    bottom: 100px;
  }
  65% {
    bottom: 95px;
  }
  100% {
    bottom: 100px;
  }
}

/* fancybox popup and slider
----------------------------------------------------------------------------------------------*/
/*.fancybox-lock{
    .fancybox-overlay{
        background: rgba(0,0,0,0.8);
    }
}
.fancybox-wrap{
    top: 0 !important; left: 0 !important; bottom: 0; right: 0; width: auto !important; height: auto !important;
    .fancybox-skin{
        position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: #fff;
        .fancybox-outer, .fancybox-inner{position: absolute; top: 0; left: 0; right: 0; bottom: 0;}
        .fancybox-inner{width: auto !important; height: auto !important;}
        .fancybox-title-float-wrap{bottom: 250px; margin: 0;}
    }
}
#fancybox-thumbs{
    ul{
        background: #fff; padding: 110px 80px 33px !important; @include boxSizing(border-box); width: 1330px !important; height: 240px !important; left: 50% !important; @include transform(translateX(-50%));
        li{
            padding: 0 15px !important;
            a{
                width: auto !important; height: 100px !important; background: transparent;
                img{height: 100px !important; width: auto !important;}
            }
            &.active{border: none !important;}
        }
    }
    &.bottom{bottom: 0 !important;}
}*/
/* end fancybox popup and slider
----------------------------------------------------------------------------------------------*/
/* footer
----------------------------------------------------------------------------------------------*/
footer {
  text-align: center;
  min-height: 92px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-top: 1px solid #f0001f;
  color: #333;
  font-size: 14px;
  width: 100%;
  float: left;
  line-height: 92px;
  text-transform: uppercase;
}

footer a {
  transition: 0.2s all;
  -webkit-transition: 0.2s all;
  -moz-transition: 0.2s all;
  -ms-transition: 0.2s all;
  -o-transition: 0.2s all;
  color: #333;
}

footer a:hover {
  color: #f28e98;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwic2Fzcy1saWIuc2NzcyIsImJvdXJib24vX2JvdXJib24uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwiYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCJib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsImJvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsImJvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsImJvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsImJvdXJib24vYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsImJvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBJcWJhbCBXYWh5dWRpIFByYXRhbWEgLSBpcWJhbHdhaHl1ZGlwLmNvbVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuQGltcG9ydCBcInNhc3MtbGliXCI7XHJcblxyXG5ib2R5IHsgXHJcbiAgICBjb2xvcjogIzExMTExMTtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkxhdG9cIjsgXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IFxyXG59XHJcbmltZ3sgYm9yZGVyOjA7IG1heC13aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfVxyXG5maWd1cmV7bWFyZ2luOiAwO31cclxuLml0YWxpYyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfSBcclxuLmJvbGQgeyBmb250LXdlaWdodDogYm9sZDsgfVxyXG4ucmVndWxhciB7IGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XHJcbi5mbCB7IGZsb2F0OiBsZWZ0OyB9XHJcbi5mciB7IGZsb2F0OiByaWdodDsgfVxyXG4uY2xlYXIgeyBjbGVhcjogYm90aDsgfVxyXG5wIHtcclxuICAgIG1hcmdpbjogMXB4IDAgMTVweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcbmlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOEQ4RDg7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICM2NjY7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbmlucHV0W3R5cGU9Y2hlY2tib3hdLCBpbnB1dFt0eXBlPXJhZGlvXSB7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lO1xyXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBub25lO1xyXG59XHJcbmgxIHsgZm9udC1zaXplOiA1NXB4OyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IH1cclxuaDIgeyBmb250LXNpemU6IDQycHg7IGZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjsgfVxyXG5oMyB7IGZvbnQtc2l6ZTogMzZweDsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyB9XHJcbmg0IHsgZm9udC1zaXplOiAyMHB4OyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IH0gXHJcbmg1IHsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IH0gXHJcbmg2IHsgZm9udC1zaXplOiAxNHB4OyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IH1cclxuLyogc3RydWN0dXJlIFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuc2VjdGlvbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxyXG4ud3JhcHBlciB7d2lkdGg6IDExNzBweDttYXJnaW46IDAgYXV0bzsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuLmFmdGVyX2NsZWFyOmFmdGVyLC53cmFwcGVyOmFmdGVyLHNlY3Rpb246YWZ0ZXJ7Y2xlYXI6Ym90aDtkaXNwbGF5OiBibG9jaztjb250ZW50OlwiIFwifVxyXG4uYmVmb3JlX2NsZWFyOmJlZm9yZXtjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO2NvbnRlbnQ6XCIgXCJ9XHJcbi5hLWxlZnR7dGV4dC1hbGlnbjogbGVmdH1cclxuLmEtcmlnaHR7dGV4dC1hbGlnbjogcmlnaHR9XHJcbi5hLWNlbnRlcnt0ZXh0LWFsaWduOiBjZW50ZXJ9XHJcbi5mdWxsZmxvYXR7d2lkdGg6IDEwMCU7IGZsb2F0OiBsZWZ0O31cclxuLmZ1bGxpbmxpbmV7d2lkdGg6IDEwMCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbi5jbHItcGlua3tjb2xvcjogJHBpbmt9XHJcbi5zdWJ0aXRsZXtmb250LXNpemU6IDMwcHg7IGxpbmUtaGVpZ2h0OiA0OHB4OyBmb250LXdlaWdodDogNDAwO31cclxuLmxpbmVoe3dpZHRoOiAxNDBweDsgaGVpZ2h0OiAycHg7IGJhY2tncm91bmQ6ICRwaW5rOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMTVweCAwO31cclxuLnRkYXRle1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl17cGFkZGluZy1yaWdodDogNjBweDt9XHJcbiAgICAuaWMtY3Vze3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyByaWdodDogMTBweDt9XHJcbn1cclxuLyogZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLmJ0bi1vdmFse1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDAxZjsgYmFja2dyb3VuZDogI2YwMDAxZjsgaGVpZ2h0OiA1MHB4OyBwYWRkaW5nOiAwIDU1cHg7IGxpbmUtaGVpZ2h0OiA1MHB4OyBjb2xvcjogI2ZmZjsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBmb250LXdlaWdodDogNzAwOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgIEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MHB4KTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGFsbCk7XHJcbiAgICAmOmhvdmVye2JvcmRlci1jb2xvcjogI2YwMDAxZjsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICNmMDAwMWY7fVxyXG4gICAgJi5idG4tbG9hZG1vcmV7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZWI0ZTVlOyBiYWNrZ3JvdW5kOiAjZWI0ZTVlOyBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxOHB4OyBwYWRkaW5nOiAwIDQzcHg7XHJcbiAgICAgICAgJjpob3Zlcntib3JkZXItY29sb3I6ICNlYjRlNWU7IGJhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjZWI0ZTVlO31cclxuICAgIH1cclxuICAgICYuYnRuLXBpbmt7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogJHBpbms7IGJvcmRlci1jb2xvcjogJHBpbms7XHJcbiAgICAgICAgJjpob3Zlcntib3JkZXItY29sb3I6ICRwaW5rOyBiYWNrZ3JvdW5kOiAjZmZmOyBjb2xvcjogJHBpbms7fVxyXG4gICAgfVxyXG4gICAgJi5idG4tcGluazJ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogI2ViNGU1ZTsgYm9yZGVyLWNvbG9yOiAjZWI0ZTVlO1xyXG4gICAgICAgICY6aG92ZXJ7Ym9yZGVyLWNvbG9yOiAjZWI0ZTVlOyBiYWNrZ3JvdW5kOiAjZmZmOyBjb2xvcjogI2ViNGU1ZTt9XHJcbiAgICB9XHJcbiAgICAmLmJ0bi1ncmNsYXN5e1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICM1YTZkNWE7IHBhZGRpbmctbGVmdDogMTJweDsgcGFkZGluZy1yaWdodDogMTJweDsgYm9yZGVyLWNvbG9yOiAjNWE2ZDVhO1xyXG4gICAgICAgICY6aG92ZXJ7Ym9yZGVyLWNvbG9yOiAjNWE2ZDVhOyBiYWNrZ3JvdW5kOiAjZmZmOyBjb2xvcjogIzVhNmQ1YTt9XHJcbiAgICB9XHJcbiAgICAmLmJ0bi1pbnF1cnl7XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgLmljLWlucXVpcnl7YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5saW5rLWxpbmV7XHJcbiAgICBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAkcGluazsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6IDI4cHg7IGZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjsgZm9udC13ZWlnaHQ6IDcwMDsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGFsbCk7XHJcbiAgICAmOmJlZm9yZXtjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTJweDsgbGVmdDogMDsgd2lkdGg6IDE4cHg7IGhlaWdodDogMnB4OyBiYWNrZ3JvdW5kOiAkcGluazsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGFsbCk7fVxyXG4gICAgJjpob3ZlcntcclxuICAgICAgICAmOmJlZm9yZXt3aWR0aDogMjVweDt9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKiBpY29ucyBpY3dwIFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi5pY3dwe1xyXG4gICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvKiY6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjt9Ki9cclxuICAgICYuaWMtZmIsICYuaWMtaWcsICYuaWMtdHcsICYuaWMteXQsICYuaWMtZ3BsdXN7XHJcbiAgICAgICAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjJweDsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGFsbCk7XHJcbiAgICAgICAgJjpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO31cclxuICAgIH1cclxuICAgICYuaWMtZmJ7YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtZmIucG5nJyk7fVxyXG4gICAgJi5pYy1pZ3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1pZy5wbmcnKTt9XHJcbiAgICAmLmljLXR3e2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLXR3LnBuZycpO31cclxuICAgICYuaWMteXR7YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMteXQucG5nJyk7fVxyXG4gICAgJi5pYy1ncGx1c3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1ncGx1cy5wbmcnKTt9XHJcblxyXG4gICAgJi5pYy1mYi1mbG9hdCwgJi5pYy1pZy1mbG9hdCwgJi5pYy10dy1mbG9hdCwgJi5pYy1ncGx1cy1mbG9hdHtcclxuICAgICAgICB3aWR0aDogMjhweDsgaGVpZ2h0OiAyMnB4OyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTtcclxuICAgICAgICAmOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7fVxyXG4gICAgfVxyXG4gICAgJi5pYy1mYi1mbG9hdHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1mYi1mbG9hdC5wbmcnKTt9XHJcbiAgICAmLmljLWlnLWZsb2F0e2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWlnLWZsb2F0LnBuZycpO31cclxuICAgICYuaWMtdHctZmxvYXR7YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtdHctZmxvYXQucG5nJyk7fVxyXG4gICAgJi5pYy1ncGx1cy1mbG9hdHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1ncGx1cy1mbG9hdC5wbmcnKTt9XHJcblxyXG4gICAgJi5pYy1mYi1sZywgJi5pYy1pZy1sZywgJi5pYy10dy1sZywgJi5pYy1ncGx1cy1sZ3tcclxuICAgICAgICB3aWR0aDogNDdweDsgaGVpZ2h0OiAzNXB4OyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTtcclxuICAgICAgICAmOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBjZW50ZXI7fVxyXG4gICAgfVxyXG4gICAgJi5pYy1mYi1sZ3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1mYi1sZy5wbmcnKTt9XHJcbiAgICAmLmljLWlnLWxne2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWlnLWxnLnBuZycpO31cclxuICAgICYuaWMtdHctbGd7YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtdHctbGcucG5nJyk7fVxyXG4gICAgJi5pYy1ncGx1cy1sZ3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1ncGx1cy1sZy5wbmcnKTt9XHJcblxyXG4gICAgJi5pYy1tb3VzZXtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1tb3VzZS5wbmcnKTsgd2lkdGg6IDIwcHg7IGhlaWdodDogMzBweDt9XHJcbiAgICAmLmljLXF1b3Rlc3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1xdW90ZXMucG5nJyk7IHdpZHRoOiAzOXB4OyBoZWlnaHQ6IDM0cHg7fVxyXG4gICAgJi5pYy12aWRlb3tiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy12aWRlby5wbmcnKTsgd2lkdGg6IDIzcHg7IGhlaWdodDogMTRweDt9XHJcbiAgICAmLmljLWNsb3Nle2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWNsb3NlLnBuZycpOyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxM3B4O31cclxuICAgICYuaWMtZGF0ZXtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1kYXRlLnBuZycpOyB3aWR0aDogMzRweDsgaGVpZ2h0OiAzNHB4O31cclxuICAgICYuaWMtaW5xdWlyeXtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1pbnF1aXJ5LnBuZycpOyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTt9XHJcblxyXG4gICAgJi5pYy1waG9uZSwmLmljLXByaW50LCAmLmljLW1hcmt7d2lkdGg6IDE5cHg7IGhlaWdodDogMThweDtwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogM3B4OyBtYXJnaW4tcmlnaHQ6IDhweDt9XHJcbiAgICAmLmljLXBob25le2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLXBob25lLnBuZycpO31cclxuICAgICYuaWMtcHJpbnR7YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtcHJpbnQucG5nJyk7fVxyXG4gICAgJi5pYy1tYXJre2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljLW1hcmsucG5nJyk7fVxyXG4gICAgJi5pYy13YXtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy13YS5wbmcnKTsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTt9XHJcbiAgICBcclxufVxyXG4vKiBlbmQgaWNvbnMgaWN3cCBcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuXHJcbi8qIGhlYWRlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuaGVhZGVye1xyXG4gICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBwYWRkaW5nOiAwIDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgei1pbmRleDogMTEwMDsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjNzIGJhY2tncm91bmQpO1xyXG4gICAgLmxvZ28sIC5sb2dvLWZsb2F0e2Zsb2F0OiBsZWZ0OyBwYWRkaW5nLXRvcDogMTBweDt9XHJcbiAgICAubG9nby1mbG9hdHtkaXNwbGF5OiBub25lO31cclxuICAgIC5idG4tYnVyZy1tZW51e2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgLm5hdl9yaWdodHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA3MDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBhbGwpOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICAvKiY6YmVmb3Jle2NvbnRlbnQ6IFwiXCI7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDJweDsgYmFja2dyb3VuZDogJHBpbms7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC0ycHg7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgtMTAwJSwwLDApKTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjNzIGFsbCk7fSovXHJcbiAgICAgICAgICAgICY6aG92ZXIsICYuYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRwaW5rO1xyXG4gICAgICAgICAgICAgICAgLyomOmJlZm9yZXtAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoMTAwJSwwLDApKTt9Ki9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubmF2X2hlYWRlciwgLm5hdl9sYW5nLCAubmF2X3Nvc21lZCwgLm5hdl9zb3NtZWRfZmxvYXR7ZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbiAgICAgICAgLm5hdl9oZWFkZXJ7XHJcbiAgICAgICAgICAgIGxpe2Zsb2F0OiBsZWZ0OyBoZWlnaHQ6IDcwcHg7IGxpbmUtaGVpZ2h0OiA3MHB4OyBwYWRkaW5nOiAwIDIxcHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAubmF2X2xhbmd7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA3OHB4OyBwYWRkaW5nOiAwIDMwcHggMCAyMHB4OyBoZWlnaHQ6IDcwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7Y29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIwcHg7IHdpZHRoOiAxcHg7IGhlaWdodDogMzBweDsgYmFja2dyb3VuZDogI2ZmZjt9XHJcbiAgICAgICAgICAgICY6YmVmb3Jle2xlZnQ6IDA7fVxyXG4gICAgICAgICAgICAmOmFmdGVye3JpZ2h0OiAwO31cclxuICAgICAgICAgICAgPiBhe3Bvc2l0aW9uOiBzdGF0aWM7fVxyXG4gICAgICAgICAgICAuYXJyb3ctYm90dG9te3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHJpZ2h0OiAxMXB4OyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDVweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyb3ctYm90dG9tLnBuZycpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7fVxyXG4gICAgICAgICAgICAuZHJvcF9sYW5ne1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMCU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBsaW5lLWhlaWdodDogMDsgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7IGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBhe3BhZGRpbmc6IDNweCAwO31cclxuICAgICAgICAgICAgICAgIGxpe1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF7cGFkZGluZy10b3A6IDVweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXtwYWRkaW5nLWJvdHRvbTogNXB4O31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm5hdl9zb3NtZWQsIC5uYXZfc29zbWVkX2Zsb2F0e1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjNweDsgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsgcGFkZGluZy1sZWZ0OiAxMHB4OyBoZWlnaHQ6IDIycHg7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICBpbWd7cG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyB0b3ApOyBtYXgtd2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICBpbWd7dG9wOiAtMTAwJTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm5hdl9zb3NtZWRfZmxvYXR7ZGlzcGxheTogbm9uZTt9XHJcbiAgICB9XHJcbiAgICAmLmZsb2F0e1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlYWVhOyBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIC5sb2dve2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgIC5sb2dvLWZsb2F0e2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICBhe2NvbG9yOiAjMzMzMzMzO1xyXG4gICAgICAgICAgICAmOmhvdmVyLCAmLmFjdGl2ZXtjb2xvcjogI2YwMDAxZjt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5uYXZfbGFuZ3tcclxuICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7YmFja2dyb3VuZDogI2U1ZTVlNTt9XHJcbiAgICAgICAgICAgIC5hcnJvdy1ib3R0b217YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO31cclxuICAgICAgICB9XHJcbiAgICAgICAgLm5hdl9zb3NtZWR7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgLm5hdl9zb3NtZWRfZmxvYXR7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgfVxyXG59XHJcbi5ob21lcGFnZSAuc2hhZG93X3RvcF9oZWFkZXJ7ZGlzcGxheTogbm9uZTt9XHJcbi5zaGFkb3dfdG9we1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDQxN3B4OyB6LWluZGV4OiA5OTk7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwwLjUpIDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLCByZ2JhKDAsMCwwLDAuNSkpLCBjb2xvci1zdG9wKDEwMCUsIHRyYW5zcGFyZW50KSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwwLDAsMC41KSAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDAuNSkgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwwLDAsMC41KSAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLDAuNSkgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xyXG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAnLCBlbmRDb2xvcnN0cj0nI2ZmZmZmZicsIEdyYWRpZW50VHlwZT0wICk7XHJcbiAgICAvKmJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwwLDAsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgcmdiYSgwLDAsMCwxKSksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgyNTUsMjU1LDI1NSwxKSkpO1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDEpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDEpIDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwxKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwxKSAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDEpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDEpIDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwxKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwxKSAxMDAlKTtcclxuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMDAwMDAwJywgZW5kQ29sb3JzdHI9JyNmZmZmZmYnLCBHcmFkaWVudFR5cGU9MCApOyovXHJcbn1cclxuXHJcbi8qIG1pZGRsZVxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLmFsbC1jb250ZW50e0BpbmNsdWRlIGZ1bGxmbG9hdDt9XHJcbi5ib3JkZXItd2hpdGV7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDcwcHg7IGxlZnQ6IDUwcHg7IHJpZ2h0OiA1MHB4OyBib3R0b206IDA7IGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC41KTsgei1pbmRleDogMTAwMDt9XHJcbi5zbGlkZWhvbWV7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG9wYWNpdHk6IDA7XHJcbiAgICAuc2xpZGVyaG9tZXtcclxuICAgICAgICAuc2xpY2stcHJldiwgLnNsaWNrLW5leHR7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDc3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycm93LXNsaWRlLWxnLnBuZycpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB6LWluZGV4OiAxMDAxOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuM3MgYWxsKTtcclxuICAgICAgICAgICAgJjpiZWZvcmV7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICByaWdodDogMTA1cHg7IGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcclxuICAgICAgICAgICAgJjpob3ZlcntyaWdodDogOTVweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1wcmV2e1xyXG4gICAgICAgICAgICBsZWZ0OiAxMDVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICY6aG92ZXJ7bGVmdDogOTVweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxpc3Qtc2xpZGV7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgICAgICBmaWd1cmV7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgaW1ne21pbi1oZWlnaHQ6IDEwMCU7IG1pbi13aWR0aDogMTAwJTsgbWF4LXdpZHRoOiBub25lOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogNTAlO31cclxuICAgICAgICB9XHJcbiAgICAgICAgLmRlc2N7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7bGVmdDogNTAlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTsgbWFyZ2luOiBhdXRvOyBmb250LXNpemU6IDQycHg7IGxpbmUtaGVpZ2h0OiA0OHB4OyBjb2xvcjogI2ZmZmZmZjsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBmb250LXdlaWdodDogMzAwOyB6LWluZGV4OiAxMDAyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiA4MjBweDsgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBzcGFue2ZvbnQtd2VpZ2h0OiA1MDA7fVxyXG4gICAgICAgICAgICAubG9nby1sZ3tcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGltZ3tkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5iZy1zaGFkb3d7YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmctc2hhZG93LW1pZGRsZS5wbmcnKSBuby1yZXBlYXQgY2VudGVyOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwO31cclxuICAgICAgICAuYmctc2hhZG93LXRvcHtAZXh0ZW5kIC5zaGFkb3dfdG9wO31cclxuICAgIH1cclxuICAgIC5iZy1zaGJvdHRvbXtwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9tYXRlcmlhbC9iZy1zaGFkb3ctYm90dG9tLnBuZ1wiKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjsgaGVpZ2h0OiAyMjBweDt9ICAgIFxyXG4gICAgLnNjLWJvdHRvbXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMzNweDsgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bzsgd2lkdGg6IDgycHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICNmMjhlOTg7IHRleHQtYWxpZ246IGNlbnRlcjsgei1pbmRleDogMTAwMTsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHNwYW57ZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDdweDt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mbHdkZXZ7cG9zaXRpb246IGFic29sdXRlO31cclxuLnNlYy1jb250ZW50e1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IG1pbi1oZWlnaHQ6IDEwMHZoOyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgKntAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7fVxyXG4gICAgLmRlc2Mtc2VjaG9tZXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7IG1heC13aWR0aDogMTAwJTsgei1pbmRleDogMTsgcGFkZGluZy1sZWZ0OiAzNXB4O1xyXG4gICAgICAgIGgye1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwOyBtYXJnaW4tYm90dG9tOiA1NXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG4gICAgICAgICAgICBzcGFue2ZvbnQtd2VpZ2h0OiA1MDA7fVxyXG4gICAgICAgICAgICAubGluZS12e3dpZHRoOiA2cHg7IGJhY2tncm91bmQ6ICRwaW5rOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0zNXB4OyB0b3A6IDNweDsgYm90dG9tOiAwO31cclxuICAgICAgICB9XHJcbiAgICAgICAgLnF1b3Rlc3tmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiAjNGE0MzQzOyBmb250LXNpemU6IDI0cHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyBmb250LXdlaWdodDogMzAwOyBtYXJnaW4tYm90dG9tOiA4MHB4O31cclxuICAgIH1cclxufVxyXG5cclxuLnNlYy1hYm91dHVze1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLnRyaWdnZXItYWJvdXR7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTt9XHJcbiAgICAudHJpZ2dlci1hYm91dDJ7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTt9XHJcbiAgICAuZGVzYy1zZWNob21le1xyXG4gICAgICAgIGxlZnQ6IDQ1LjU3JTsgd2lkdGg6IDY3MHB4O1xyXG4gICAgfVxyXG4gICAgLmZsd2RldntcclxuICAgICAgICAmLmZsdy0wMXtcclxuICAgICAgICAgICAgdG9wOiA1JTsgcmlnaHQ6IDA7IG1hcmdpbi10b3A6IDIwMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yaW5nc3twb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDE5LjE5JTsgbWFyZ2luLXRvcDogMzAlO31cclxufVxyXG4uc2VjLW1hcHN7XHJcbiAgICAubWFwc2hvbWV7d2lkdGg6IDEwMCU7IGhlaWdodDogNTIwcHg7fVxyXG59XHJcblxyXG4uc2VjLWNvbnRhY3R7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAudHJpZ2dlci1jb250YWN0e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7fVxyXG4gICAgLmRlc2Mtc2VjaG9tZXt3aWR0aDogNjAwcHg7IGxlZnQ6IDE5LjUzJTt9XHJcbiAgICBmaWd1cmV7ZmxvYXQ6IHJpZ2h0O31cclxuICAgIC5mbHdkZXZ7XHJcbiAgICAgICAgJi5mbHctMDJ7dG9wOiAwOyBsZWZ0OiAwOyBtYXJnaW4tdG9wOiAxOC4wNSU7fVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjLXdlZGRpbmctc2VydmljZXtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgbWluLWhlaWdodDogMTAwdmg7IHBhZGRpbmctdG9wOiAyMjBweDsgcGFkZGluZy1ib3R0b206IDM0MnB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAuYmctd2VkZGluZ3NlcnZpY2V7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2JnLWhvbWUtMDEuanBnJykgbm8tcmVwZWF0IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjsgei1pbmRleDogLTEwO31cclxuICAgIC5iZy1zaGFkb3ctdG9we3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgaGVpZ2h0OiAzNjVweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmctc2hhZG93LXRvcC13aGl0ZS5wbmcnKSBuby1yZXBlYXQgY2VudGVyOyB6LWluZGV4OiAtOTt9XHJcbiAgICAuYm9yZGVyLXdoaXRle3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzMDZweDsgbGVmdDogNTBweDsgcmlnaHQ6IDUwcHg7IGJvdHRvbTogMjU4cHg7IGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC41KTsgei1pbmRleDogLTg7fVxyXG4gICAgLnRyaWdnZXItc2VydmljZXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMzAlO31cclxuICAgIC5mbHdkZXZ7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgJi5mbHctMDN7dG9wOiAwOyByaWdodDogMDsgbWFyZ2luLXRvcDogMDt9XHJcbiAgICAgICAgJi5mbHctMDR7dG9wOiAwOyBsZWZ0OiAwOyBtYXJnaW4tdG9wOiA1MCU7fVxyXG4gICAgfVxyXG4gICAgLmNvbnRlbnQtd2VkZGluZ3tcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIC50aXRsZS1jb250ZW50e2ZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjt9XHJcbiAgICAgICAgLmJveC13ZWRkaW5nc2VydmljZXtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNjJweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICAqe0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTt9XHJcbiAgICAgICAgICAgIC5saXN0LXdlZGRpbmd7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMi45OCU7IHdpZHRoOiA0Ny4wMSU7IGZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjZmZmOyBwYWRkaW5nOiAzMHB4IDc2cHggNTdweDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKXttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAxKXttYXJnaW4tbGVmdDogMDt9XHJcbiAgICAgICAgICAgICAgICAudGl0bGUtdGh1bWItd2VkZGluZ3tcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctbGVmdDogNTdweDsgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaDJ7IGZvbnQtc2l6ZTogMzhweDsgbGluZS1oZWlnaHQ6IDQwcHg7IGhlaWdodDogODBweDsgb3ZlcmZsb3c6IGhpZGRlbjt9XHJcbiAgICAgICAgICAgICAgICAgICAgLmxpbmUtdntwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMjlweDsgd2lkdGg6IDZweDsgaGVpZ2h0OiAxNDBweDsgYmFja2dyb3VuZDogJHBpbms7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgc3Bhbntmb250LXdlaWdodDogNzAwO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJveC13ZWRkaW5nc2VydmljZW9uZXtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBiYWNrZ3JvdW5kOiAjZmZmOyBAaW5jbHVkZSBmdWxsaW5saW5lOyBwYWRkaW5nOiA2NXB4IDcwcHg7XHJcbiAgICAgICAgICAgICp7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuICAgICAgICAgICAgLnRpdGxlLXRodW1iLXdlZGRpbmd7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbjogMTVweCAwIDI1cHg7XHJcbiAgICAgICAgICAgICAgICBoMnsgZm9udC1zaXplOiAzOHB4OyBsaW5lLWhlaWdodDogNDBweDsgaGVpZ2h0OiA4MHB4OyBvdmVyZmxvdzogaGlkZGVuO31cclxuICAgICAgICAgICAgICAgIC5saW5lLXZ7cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IC0zMHB4OyB3aWR0aDogNnB4OyBoZWlnaHQ6IDE0MHB4OyBiYWNrZ3JvdW5kOiAkcGluazt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmxlZnR7ZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1NSU7fVxyXG4gICAgICAgICAgICAucmlnaHR7cmlnaHQ6IHJpZ2h0OyB3aWR0aDogNDMlOyBwYWRkaW5nLXRvcDogMTE1cHg7IHBhZGRpbmctbGVmdDogNDBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5zZWMtb3VydmVudWV7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDEyNXB4IDAgMTIwcHg7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLnRyaWdnZXItb3VydmVudWV7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTt9XHJcbiAgICAud3JhcHBlcnt3aWR0aDogMTYwMHB4O31cclxuICAgIC5pbm5lci1vdXJ2ZW51ZXtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgLnNsaWRlLXZlbnVle1xyXG4gICAgICAgICAgICB3aWR0aDogMTE4NXB4OyBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIC5zbGlkZXJ2ZW51ZXtcclxuICAgICAgICAgICAgICAgIC5zbGljay1kb3Rze1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBib3R0b206IC0zNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogODBweDsgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b257XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgcGFkZGluZzogMDsgaGVpZ2h0OiA0cHg7IGJhY2tncm91bmQ6ICNjY2NjY2M7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBib3R0b206IDA7IGJhY2tncm91bmQ6ICRwaW5rOyBjb250ZW50OiBcIlwiOyBwYWRkaW5nOiAwOyB3aWR0aDogMDsgaGVpZ2h0OiBhdXRvOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuM3MgYWxsKTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5zbGljay1hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b257YmFja2dyb3VuZDogJHBpbms7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b257XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5kZXNjLXZlbnVle1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNjBweDsgcmlnaHQ6IDA7IHdpZHRoOiA2MTVweDsgbWF4LXdpZHRoOiAxMDAlO2JhY2tncm91bmQ6ICNmZmZmZmY7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcGFkZGluZzogODJweCA3N3B4IDUycHg7IGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgaDJ7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjtcclxuICAgICAgICAgICAgICAgIC5saW5lLXZ7cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IC0yOHB4OyBoZWlnaHQ6IDE2MHB4OyB3aWR0aDogNnB4OyBiYWNrZ3JvdW5kOiAkcGluazt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHtsaW5lLWhlaWdodDogMjRweDt9XHJcbiAgICAgICAgICAgIC52ZW5kb3ItcGFydG5lcntcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7IEBpbmNsdWRlIGZ1bGxmbG9hdDtcclxuICAgICAgICAgICAgICAgIGg1e2ZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjsgbWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC13ZWlnaHQ6IDUwMDt9XHJcbiAgICAgICAgICAgICAgICAudmVudWUtdG9we21hcmdpbi1ib3R0b206IDM4cHg7fVxyXG4gICAgICAgICAgICAgICAgLmJveC12ZW5kb3J7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgLmxpc3QtdmVuZG9ye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAlOyBtYXJnaW46IDAgNSUgMTBweDsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24gKyAxKXttYXJnaW4tbGVmdDogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuICsgMil7bWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKXttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ub3VyLWFkZHJlc3N7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAudHJpZ2dlci1vdXJhZGRyZXNze3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzMCU7fVxyXG4gICAgLmJveC1vdXJhZGRyZXNze1xyXG4gICAgICAgIHdpZHRoOiAxNjAwcHg7IG1hcmdpbjogYXV0bzsgYmFja2dyb3VuZDogI2ZmZjsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0xMDZweDtcclxuICAgICAgICAuaW5uZXItb3VyYWRkcmVzc3tcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDU0cHg7XHJcbiAgICAgICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDM3MHB4OyBtYXgtd2lkdGg6IDEwMCU7IHBhZGRpbmctbGVmdDogMjFweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBjb2xvcjogIzRhNDM0MzsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgIGgxe1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLmxpbmUtdntwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogLTI3cHg7IHdpZHRoOiA2cHg7IGhlaWdodDogMTYwcHg7IGJhY2tncm91bmQ6ICRwaW5rO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGg0e2NvbG9yOiAjMzMzOyBsaW5lLWhlaWdodDogMjRweDsgbWFyZ2luLWJvdHRvbTogMTVweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnJpZ2h0e1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNjcwcHg7XHJcbiAgICAgICAgICAgICAgICAuY2FyZWVyLWljb257d2lkdGg6IDEyOHB4OyBmbG9hdDogbGVmdDsgbWF4LXdpZHRoOiAxMDAlO31cclxuICAgICAgICAgICAgICAgIC5jb250ZW50LWNhcmVlcmhvbWV7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwMHB4OyBmbG9hdDogcmlnaHQ7IG1heC13aWR0aDogMTAwJTsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgICAgICAgICBoM3ttYXJnaW4tYm90dG9tOiAxNXB4OyBsaW5lLWhlaWdodDogNDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwaW5rOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3Zlcntjb2xvcjogIzMzMzt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5ib3gtc29zbWVkLWxne1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhe2NvbG9yOiAjNGE0MzQzOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmJveC1jYWxse1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDsgY29sb3I6ICRwaW5rOyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gICAgYXtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztjb2xvcjogJHBpbms7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBhbGwpO1xyXG4gICAgICAgIC5pY3dwe3Bvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogMDtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMXMgYWxsKTt9XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgICAgIC5pY3dwe2xlZnQ6IDJweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYm94LXNvc21lZC1sZ3tcclxuICAgIGF7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzRhNDM0Mzt0ZXh0LWRlY29yYXRpb246IG5vbmU7IHdpZHRoOiAyNSU7XHJcbiAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTAwJSk7IGJvcmRlcjogM3B4IHNvbGlkICM5OTk5OTk7IHdpZHRoOiA2OXB4OyBoZWlnaHQ6IDY5cHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBhbGwpO1xyXG4gICAgICAgICAgICBpLmljd3B7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogNTAlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsLTUwJSkpO31cclxuICAgICAgICAgICAgJjpob3Zlcntib3JkZXItY29sb3I6ICRwaW5rO31cclxuICAgICAgICB9XHJcbiAgICAgICAgc3BhbntkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogY2VudGVyO31cclxuICAgIH1cclxufVxyXG5cclxuLmJhbm5lcntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZpZ3VyZXtvdmVyZmxvdzogaGlkZGVuO31cclxufVxyXG4uYWJvdXRib3h7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy10b3A6IDkwcHg7IHBhZGRpbmctYm90dG9tOiA5MHB4O1xyXG4gICAgLnJpbmdze3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAyJTsgbWFyZ2luLXRvcDogMzMwcHg7fVxyXG4gICAgLmJ0bi1pbnF1cnl7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEzMnB4OyByaWdodDogMjBweDt9XHJcbiAgICBoMXttYXJnaW4tYm90dG9tOiAxMDVweDt9XHJcbiAgICAuaW5uZXJhYm91dHt3aWR0aDogNzcwcHg7IG1hcmdpbjogMCBhdXRvOyBtYXgtd2lkdGg6IDEwMCU7fVxyXG4gICAgLnN1YnRpdGxle21hcmdpbi1ib3R0b206IDc1cHg7fVxyXG4gICAgLmxpbmVoe3dpZHRoOiAxNDBweDsgaGVpZ2h0OiAycHg7IGJhY2tncm91bmQ6ICRwaW5rOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMTVweCAwIDYwcHg7fVxyXG4gICAgLmZsdy1sZWZ0LXNlcnZpY2V7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IG1hcmdpbi10b3A6IDQwMHB4O31cclxuICAgIC5mbHctcmlnaHQtc2VydmljZXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IG1hcmdpbi10b3A6IDQ1JTt9XHJcbiAgICAuZmx3LWxlZnQtZ2FsbGVyeXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgbWFyZ2luLXRvcDogNDAlO31cclxuICAgIC5mbHctcmlnaHQtZ2FsbGVyeXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IG1hcmdpbi10b3A6IDI5MHB4O31cclxuICAgIC5kZXNje1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICM0YTQzNDM7IGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICAgIHB7bGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgfVxyXG4gICAgLmJveC10aHJlZS1pa2t7XHJcbiAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO21hcmdpbjogOTBweCBhdXRvIDA7IHdpZHRoOiAxMDcwcHg7IG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAubGlzdHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyB3aWR0aDogMjUuMjMlOyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDc1cHg7IGZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjsgbWFyZ2luLXJpZ2h0OiAxMi4xNCU7XHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAuZi1yaWdodHtwYWRkaW5nLWxlZnQ6IDcwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgICAgICAuZi1sZ3tmb250LXdlaWdodDogODAwOyBmb250LXNpemU6IDgwcHg7IGNvbG9yOiAjZTFjYmE2OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDt9XHJcbiAgICAgICAgICAgIC5mLXJpZ2h0e1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMxMTE7Zm9udC1zaXplOiAyOHB4OyBmb250LXdlaWdodDogODAwOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nLWxlZnQ6IDEwMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XHJcbiAgICAgICAgICAgICAgICBzcGFue2ZvbnQtc2l6ZTogMThweDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogNDAwO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5hYm91dC1xdW90ZXN7bWFyZ2luLXRvcDogMTMycHg7fVxyXG59XHJcbi5hYm91dC1xdW90ZXN7XHJcbiAgICBAaW5jbHVkZSBmdWxsZmxvYXQ7XHJcbiAgICAudGV4dC1xdW90ZXN7Zm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtc2l6ZTogMzBweDsgY29sb3I6ICMxMTE7IGZvbnQtd2VpZ2h0OiAzMDA7IGxpbmUtaGVpZ2h0OiA0OHB4OyBtYXJnaW4tdG9wOiA1NnB4O31cclxuICAgIC5hdXRoLXRleHR7Zm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogI2UxY2JhNjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbWFyZ2luLXRvcDogNjBweDsgZGlzcGxheTogYmxvY2s7fVxyXG59XHJcbi50aXRsZS1jb250ZW50e1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICAgIGgxe21hcmdpbi1ib3R0b206IDIwcHg7fVxyXG4gICAgaDR7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMHB4OyBjb2xvcjogIzExMTsgZm9udC13ZWlnaHQ6IDUwMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDQ4cHg7XHJcbiAgICAgICAgJi5jYXBzLWRldGFpbHttYXJnaW4tdG9wOiAxMTVweDsgbWFyZ2luLWJvdHRvbTogNTBweDt9XHJcbiAgICB9XHJcbiAgICBoMS50bWR7Zm9udC13ZWlnaHQ6IDUwMDt9XHJcbiAgICBpe2ZvbnQtc3R5bGU6IG5vcm1hbDt9XHJcbiAgICBzcGFue2ZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICNlMWNiYTY7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogM3B4O31cclxufVxyXG4uYWJvdXQtc3Rvcnl7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmctYm90dG9tOiAxMDBweDsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC5mbHctcmlnaHR7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xOTZweDsgcmlnaHQ6IDA7IG1hcmdpbi10b3A6IDE3MHB4O31cclxuICAgIC5ib3gtc2xpZGUtc3Rvcnl7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDQ0NXB4OyBtYXgtaGVpZ2h0OiA2MDBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIC5saW5lLXZ7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgbGVmdDogMzcwcHg7IHdpZHRoOiAxcHg7IGJhY2tncm91bmQ6ICM5OTk7fVxyXG4gICAgICAgIC5uYXZzbGlkZXJzdG9yeXtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAuc2xpY2stbGlzdHttYXgtaGVpZ2h0OiA1MDBweCAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgLnNsaWNrLXByZXYsIC5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjNzIGFsbCk7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2xpY2stcHJldntcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMjBweDsgbGVmdDogMzYzcHg7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycm93LXNsaWRlLXZlcnRpY2FsLnBuZycpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICY6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IGF1dG87IGJvdHRvbTogLTUwcHg7IGxlZnQ6IDM2M3B4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJvdy1zbGlkZS12ZXJ0aWNhbC5wbmcnKSBuby1yZXBlYXQgcmlnaHQgY2VudGVyOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5saXN0LXN0b3J5e1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNzVweDtcclxuICAgICAgICAgICAgICAgIC5hLWxpc3R7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogODAwOyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7Y29sb3I6ICM5OTk7IGxpbmUtaGVpZ2h0OiAyNHB4OyBwYWRkaW5nLWJvdHRvbTogNTBweDsgZGlzcGxheTogYmxvY2s7ICBwYWRkaW5nLXJpZ2h0OiA3MXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2NvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAyNSU7IHJpZ2h0OiAtNHB4OyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjOTk5OyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuM3MgYWxsKTt9XHJcbiAgICAgICAgICAgICAgICAgICAgaDV7Zm9udC13ZWlnaHQ6IDgwMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgLmEtYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoMXtjb2xvcjogI2Y5YzdjYjsgZm9udC13ZWlnaHQ6IDgwMDsgbGluZS1oZWlnaHQ6IDYwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoM3tjb2xvcjogI2UxY2JhNjsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDM2cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuc2xpY2stY3VycmVudHtcclxuICAgICAgICAgICAgICAgICAgICAuYS1saXN0e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXt3aWR0aDogOTBweDsgYmFja2dyb3VuZDogI2Y5YzdjYjsgcmlnaHQ6IC02MnB4O31cclxuICAgICAgICAgICAgICAgICAgICAgICAgaDV7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hLWFjdGl2ZXtkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5kZXNje2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYS1saXN0OmJlZm9yZXt3aWR0aDogOTBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICAuYS1saXN0OmJlZm9yZXt3aWR0aDogMzBweDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYm94LXNsaWRlci1zdG9yeS1kZXNje1xyXG4gICAgICAgIGZsb2F0OiByaWdodDsgd2lkdGg6IDcwMHB4O1xyXG4gICAgICAgIC5uYXZzdG9yeXJlc3tkaXNwbGF5OiBub25lO31cclxuICAgICAgICAuZGVzY3tcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogOTBweCAwIDEwcHg7IGZvbnQtc2l6ZTogMjBweDsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICAgICAgcHtsaW5lLWhlaWdodDogMzRweDsgbWFyZ2luLWJvdHRvbTogNDBweDt9XHJcbiAgICAgICAgICAgIC50aXRsZS1zdG9yeXtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBoM3tjb2xvcjogI2UxY2JhNjtmb250LXdlaWdodDogNDAwO2xpbmUtaGVpZ2h0OiAzNnB4O31cclxuICAgICAgICAgICAgICAgIGgxe2NvbG9yOiAjZjljN2NiO2ZvbnQtd2VpZ2h0OiA4MDA7bGluZS1oZWlnaHQ6IDYwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJveC1zdG9yeXtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDM4cHggMDtcclxuICAgICAgICAubGluZS12e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDM3MHB4OyB3aWR0aDogMXB4OyBiYWNrZ3JvdW5kOiAjOTk5O31cclxuICAgICAgICAucHJldi1zdG9yeXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTIwcHg7IGxlZnQ6IDM2M3B4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJvdy1zbGlkZS12ZXJ0aWNhbC5wbmcnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDhweDt9XHJcbiAgICAgICAgLm5leHQtc3Rvcnl7cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0yMHB4OyBsZWZ0OiAzNjNweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyb3ctc2xpZGUtdmVydGljYWwucG5nJykgbm8tcmVwZWF0IHJpZ2h0IGNlbnRlcjsgd2lkdGg6IDE1cHg7IGhlaWdodDogOHB4O31cclxuICAgICAgICAubGlzdC1zdG9yeXtcclxuICAgICAgICAgICAgd2lkdGg6IDM3MHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgICp7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuICAgICAgICAgICAgLmEtbGlzdHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDgwMDsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiO2NvbG9yOiAjOTk5OyBsaW5lLWhlaWdodDogMjRweDsgbWFyZ2luLWJvdHRvbTogNTBweDsgZGlzcGxheTogYmxvY2s7ICBwYWRkaW5nLXJpZ2h0OiA3MXB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7Y29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgcmlnaHQ6IC00cHg7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7IGJhY2tncm91bmQ6ICM5OTk7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4zcyBhbGwpO31cclxuICAgICAgICAgICAgICAgIGg1e2ZvbnQtd2VpZ2h0OiA4MDA7fVxyXG4gICAgICAgICAgICAgICAgLmEtYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgaDF7Y29sb3I6ICNmOWM3Y2I7IGZvbnQtd2VpZ2h0OiA4MDA7IGxpbmUtaGVpZ2h0OiA2MHB4O31cclxuICAgICAgICAgICAgICAgICAgICBoM3tjb2xvcjogI2UxY2JhNjsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDM2cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5kZXNje1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgd2lkdGg6IDcwMHB4OyB0b3A6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDkwcHggMDsgZm9udC1zaXplOiAyMHB4OyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IGxpbmUtaGVpZ2h0OiAzNHB4OyBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgcHtsaW5lLWhlaWdodDogMzRweDsgbWFyZ2luLWJvdHRvbTogNDBweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICAuYS1saXN0e1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle3dpZHRoOiA5MHB4OyBiYWNrZ3JvdW5kOiAjZjljN2NiOyByaWdodDogLTYycHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIGg1e2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICAgICAgICAgIC5hLWFjdGl2ZXtkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuZGVzY3tkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnBoaWxvc29waHl7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmctYm90dG9tOiAyMDBweDtcclxuICAgIC5xdW90ZXMtcGhpbG9zb3BoeXtcclxuICAgICAgICBoMXtmb250LXdlaWdodDogODAwOyBsZXR0ZXItc3BhY2luZzogMTVweDsgZm9udC1zaXplOiA1MHB4OyBtYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICBzcGFue2ZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICM0YTQzNDM7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDM1cHg7fVxyXG4gICAgICAgIGgye2ZvbnQtc2l6ZTogMzVweDsgY29sb3I6ICRwaW5rOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiA1MDA7fVxyXG4gICAgfVxyXG4gICAgLmJveC10d28udmlzaXtcclxuICAgICAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7bWFyZ2luLXRvcDogMTEwcHg7dGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMCA3MHB4O1xyXG4gICAgICAgICp7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuICAgICAgICAubGlzdHtcclxuICAgICAgICAgICAgd2lkdGg6IDQzMHB4OyBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgJi5mcntmbG9hdDogcmlnaHQ7fVxyXG4gICAgICAgICAgICBoNXtmb250LWZhbWlseTogXCJMYXRvXCI7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAycHg7IG1hcmdpbi1ib3R0b206IDYwcHg7IGNvbG9yOiAjMDAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICB1bHtcclxuICAgICAgICAgICAgICAgIGxpe1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1sZWZ0OiAyNXB4OyBjb2xvcjogIzRhNDM0Mztmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2NvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA4cHg7IGxlZnQ6IDA7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjMDAwO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubXBoaWxvc29waHl7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBoNXtmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtZmFtaWx5OiBcIkxhdG9cIjsgbWFyZ2luLWJvdHRvbTogMTVweDsgbGV0dGVyLXNwYWNpbmc6IDA7fVxyXG4gICAgICAgICAgICAgICAgaDR7Zm9udC1zaXplOiAyM3B4OyBmb250LXdlaWdodDogNDAwOyBmb250LWZhbWlseTogXCJMYXRvXCI7IG1hcmdpbi1ib3R0b206IDQwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYubWlzaXtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBwe2xpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ub3VyLXRlYW17XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206IDE1MnB4O1xyXG4gICAgLmZsdy1sZWZ0e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBtYXJnaW4tdG9wOiAzMHB4O31cclxuICAgIC5maWctdGVhbXttYXJnaW4tYm90dG9tOiA3MHB4O31cclxuICAgIC50aXRsZS1jb250ZW50e1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4OyBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgaDR7d2lkdGg6IDc0MHB4OyBtYXgtd2lkdGg6IDEwMCU7IG1hcmdpbjogMCBhdXRvIDMwcHg7fVxyXG4gICAgfVxyXG4gICAgcC5maWxzb2Z7d2lkdGg6IDU3MHB4OyBtYXJnaW46IGF1dG87IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGNvbG9yOiAjNGE0MzQzOyBtYXJnaW4tYm90dG9tOiAxNDBweDsgbWF4LXdpZHRoOiAxMDAlO31cclxuICAgIC5hYm91dC1xdW90ZXN7XHJcbiAgICAgICAgLnRleHQtcXVvdGVze3dpZHRoOiA2ODBweDsgbWF4LXdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvO31cclxuICAgIH1cclxufVxyXG5cclxuLmJveC1zZXJ2aWNle1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIGZ1bGxmbG9hdDtcclxuICAgICp7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuICAgIC5saW5lLXZ7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgd2lkdGg6IDZweDsgYmFja2dyb3VuZDogI2YyOGU5ODsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTNweDt9XHJcbiAgICAubGlzdC1zZXJ2aWNle1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTttYXJnaW4tYm90dG9tOiA2MHB4O0BpbmNsdWRlIGZ1bGxmbG9hdDtcclxuICAgICAgICAuc2VydmljZS1kZXNje1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICM0YTQzNDM7IHdpZHRoOiA1MCU7IHBhZGRpbmctcmlnaHQ6IDczcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IGxlZnQ6IDA7IEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgICAgICAgICAgaDF7Zm9udC1zaXplOiA4MHB4OyBjb2xvcjogI2UxY2JhNjsgZm9udC13ZWlnaHQ6IDgwMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDgwcHg7fVxyXG4gICAgICAgICAgICBoM3tmb250LXNpemU6IDM4cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGNvbG9yOiAjMTExMTExOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBsaW5lLWhlaWdodDogMzhweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zZXJ2aWNlLWltZ3tcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLWxlZnQ6IDczcHg7XHJcbiAgICAgICAgICAgIGZpZ3VyZXtmbG9hdDogbGVmdDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCl7XHJcbiAgICAgICAgICAgIC5zZXJ2aWNlLWRlc2N7bGVmdDogYXV0bzsgcmlnaHQ6IDA7IHBhZGRpbmctbGVmdDogNzNweDsgcGFkZGluZy1yaWdodDogMDsgdGV4dC1hbGlnbjogbGVmdDt9XHJcbiAgICAgICAgICAgIC5zZXJ2aWNlLWltZ3tcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyBwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDczcHg7XHJcbiAgICAgICAgICAgICAgICBmaWd1cmV7ZmxvYXQ6IHJpZ2h0O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmV4cGxvcmUtdmVudWV7XHJcbiAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIGZ1bGxmbG9hdDsgcGFkZGluZy1ib3R0b206IDE4MHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAuZmx3LWxlZnQtdmVudWV7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IG1hcmdpbi10b3A6IDA7fVxyXG4gICAgLnRpdGxlLWNvbnRlbnR7dGV4dC1hbGlnbjogY2VudGVyO31cclxufVxyXG4uYm94LWV4dmVudWV7XHJcbiAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIGZ1bGxmbG9hdDsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgKntAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7fVxyXG4gICAgLmxpc3QtdmVudWV7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjglOyB3aWR0aDogMzEuOTYlOyBmbG9hdDogbm9uZTsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgJjpudGgtY2hpbGQoM24pe21hcmdpbi1yaWdodDogMDt9XHJcbiAgICAgICAgLmJveC1kZXNje1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMzhweDsgbGVmdDogMzhweDsgcmlnaHQ6IDM4cHg7IGJvdHRvbTogMzhweDsgYmFja2dyb3VuZDogI2ZmZjsgcGFkZGluZzogNDVweCAyOHB4OyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4yKSk7IG9wYWNpdHk6IDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4zcyBhbGwpOyB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgIC5kZXNje1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGg0e2ZvbnQtc2l6ZTogMjRweDsgbGluZS1oZWlnaHQ6IDMwcHg7IGNvbG9yOiAjMDAwOyBmb250LXdlaWdodDogNDAwO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubGluay1leHZlbnVle3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAzNXB4OyByaWdodDogMjVweDt9XHJcbiAgICAgICAgICAgIC5saW5rLWxpbmV7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXt0b3A6IDhweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgLmJveC1kZXNje29wYWNpdHk6IDE7ICB2aXNpYmlsaXR5OiB2aXNpYmxlOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jb21pbmctc29vbntcclxuICAgIEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgaGVpZ2h0OiAxMDB2aDsgbWluLWhlaWdodDogODUwcHg7XHJcbiAgICAqe0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTt9XHJcbiAgICAubGVmdHtcclxuICAgICAgICB3aWR0aDogNDAuMzYlOyBwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwOyBib3R0b206IDA7IHBhZGRpbmc6IDM4cHggNzJweDsgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxuICAgICAgICAuY29udGVudC1jc3tcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO3Bvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTA7IHdpZHRoOiBhdXRvOyBtYXgtd2lkdGg6IDEwMCU7IHRvcDogNDQlOyBsZWZ0OiA3MnB4OyByaWdodDogNzJweDsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICAgICAgICBoMXttYXJnaW4tYm90dG9tOiA2MHB4O31cclxuICAgICAgICAgICAgaDV7Zm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogNDBweDsgY29sb3I6ICMwMDA7IG1hcmdpbi1ib3R0b206IDgwcHg7fVxyXG4gICAgICAgICAgIC5mbHctcmlnaHQtY3N7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDgyJTsgbGVmdDogLTcycHg7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yaWdodHtcclxuICAgICAgICB3aWR0aDogNTkuNjMlOyBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgLnNsaWRlcmNze1xyXG4gICAgICAgICAgICAubGlzdC1zbGlkZXtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7ICBtaW4taGVpZ2h0OiA4NTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBmaWd1cmV7aGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICAgICAgLmRlc2N7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDk1cHg7IHJpZ2h0OiA5NXB4OyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBwYWRkaW5nOiAzMHB4IDg1cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgICAgICAgICAgICAgICAgIGgxe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDQ1cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGluZS1oZWlnaHQ6IDQ1cHg7IG1hcmdpbi1ib3R0b206IDMwcHg7IGNvbG9yOiAjMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGluZS12e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAtMjRweDsgd2lkdGg6IDZweDsgaGVpZ2h0OiA5N3B4OyBiYWNrZ3JvdW5kOiAkcGluazt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHB7bGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJveC1wYXJ0bmVyLWNze1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAzMHB4OyBsZWZ0OiA1MHB4OyB3aWR0aDogMzYuNSU7XHJcbiAgICAgICAgLmxpc3QtcGFydG5lcnt3aWR0aDogMjAlOyBwYWRkaW5nOiAwIDEwcHg7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tYm90dG9tOiAxMHB4O3RleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib3gtZ2FsbGVyeXtcclxuICAgIEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgbWFyZ2luLWJvdHRvbTogMzBweDsgQGluY2x1ZGUgZnVsbGZsb2F0OyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAqe0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTt9XHJcbiAgICAubGlzdC1nYWxsZXJ5e1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS44JTsgd2lkdGg6IDMxLjk2JTsgbWFyZ2luLWJvdHRvbTogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgJjpudGgtY2hpbGQoM24pe21hcmdpbi1yaWdodDogMDt9XHJcbiAgICAgICAgaW1ne3dpZHRoOiAxMDAlO31cclxuICAgICAgICAudGh1bWItdmlkc3tcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBiYWNrZ3JvdW5kOiAjZWI0ZTVlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmctdG9wOiAxN3B4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uYm94LWxvYWRtb3Jle0BpbmNsdWRlIGZ1bGxmbG9hdDt9XHJcblxyXG4uZGV0YWlsc2VjdGlvbntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogOTBweDsgcGFkZGluZy1ib3R0b206IDEwNXB4O1xyXG4gICAgLmJ0bi1pbnF1cnl7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEzMnB4OyByaWdodDogMjBweDt9XHJcbiAgICAuZmx3LWxvdmUtZGV0YWlse3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbWFyZ2luLXRvcDogMjglOyBsZWZ0OiAwOyB0b3A6IDA7fVxyXG4gICAgLmZsdy1yaWdodC1nYWxsZXJ5e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbWFyZ2luLXRvcDogNzYlOyByaWdodDogMDsgdG9wOiAwO31cclxuICAgIC53cmFwcGVye1xyXG4gICAgICAgIHdpZHRoOiA3NzBweDsgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcbi5kZXNjLWRldHZlbnVle1xyXG4gICAgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgZm9udC1mYW1pbHk6IFwiTGF0b1wiOyBmb250LXdlaWdodDogNDAwOyBjb2xvcjogIzAwMDAwMDtcclxufVxyXG4uYm94LWRldGFpbC12ZW51ZXtcclxuICAgIEBpbmNsdWRlIGZ1bGxmbG9hdDsgbWFyZ2luLXRvcDogNzBweDsgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgICAubGVmdHtcclxuICAgICAgICBmbG9hdDogbGVmdDsgd2lkdGg6IDY0LjkzJTsgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZpZ3VyZXttYXgtd2lkdGg6IDEwMCU7fVxyXG4gICAgfVxyXG4gICAgLnJpZ2h0e1xyXG4gICAgICAgIGZsb2F0OiByaWdodDsgbWF4LXdpZHRoOiAxMDAlOyB3aWR0aDogMjkuODclOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgICAgICBoNHtmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAxLjZweDsgbWFyZ2luLWJvdHRvbTogMTVweDt9XHJcbiAgICAgICAgc3Bhbntmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBjb2xvcjogIzMzMzMzMzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDIwcHg7fVxyXG4gICAgfVxyXG59XHJcbi5ib3gtcGFydG5lcntcclxuICAgIEBpbmNsdWRlIGZ1bGxmbG9hdDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgKntAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7fVxyXG4gICAgLmxpc3QtcGFydG5lcnt3aWR0aDogMjAlOyBwYWRkaW5nOiAwIDEwcHg7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tYm90dG9tOiAxMHB4O31cclxufVxyXG4uYm94LWdhbGxlcnktZGV0YWlse1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBocntAaW5jbHVkZSBmdWxsZmxvYXQ7IGJhY2tncm91bmQ6ICNlN2U3ZTc7IGhlaWdodDogMnB4OyBib3JkZXI6IG5vbmU7fVxyXG4gICAgLmJveC1zbGlkZS1nYWxsZXJ5e1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDc1cHg7XHJcbiAgICAgICAgLnNsaWNrLXByZXYsIC5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICB3aWR0aDogMTdweDsgaGVpZ2h0OiAyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJvdy1zbGlkZS1nYWxsZXJ5LWRldGFpbC5wbmcnKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgJjpiZWZvcmV7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyOyBsZWZ0OiAtNTRweDt9XHJcbiAgICAgICAgLnNsaWNrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyOyByaWdodDogLTU0cHg7fVxyXG4gICAgICAgIC5zbGljay1kb3Rze1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBoZWlnaHQ6IGF1dG87IG1hcmdpbi1yaWdodDogNXB4OyBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbntcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDVweDsgaGVpZ2h0OiA0cHg7IGJhY2tncm91bmQ6ICNjY2NjY2M7IHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZSwgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICBidXR0b257YmFja2dyb3VuZDogJHBpbms7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm90aGVyLXZlbnVle0BpbmNsdWRlIGZ1bGxmbG9hdDt9XHJcbn1cclxuLnZlbnVlLWxvY2F0aW9ue1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyBAaW5jbHVkZSBmdWxsZmxvYXQ7IG1hcmdpbi1ib3R0b206IDEzMHB4OyBtYXJnaW4tdG9wOiAxMTBweDtcclxuICAgIC52ZW4tbGVmdHtcclxuICAgICAgICB3aWR0aDogODcwcHg7IG1heC13aWR0aDogMTAwJTsgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgLm1hcHNjb250YWN0e3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDUzNnB4O31cclxuICAgIH1cclxuICAgIC52ZW4tcmlnaHR7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDk4cHg7IGJhY2tncm91bmQ6ICNmZmZmZmY7IHdpZHRoOiA0NzBweDsgcmlnaHQ6IDA7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcGFkZGluZzogNjVweCA3MHB4IDQycHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDIwcHg7IGNvbG9yOiAjNGE0MzQzO1xyXG4gICAgICAgIGgye1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDM1cHg7IGNvbG9yOiAjMDAwOyBsaW5lLWhlaWdodDogNDVweDtcclxuICAgICAgICAgICAgLmxpbmUtdnt3aWR0aDogNnB4OyBoZWlnaHQ6IDE2MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogLTMwcHg7IGJhY2tncm91bmQ6ICRwaW5rO31cclxuICAgICAgICB9XHJcbiAgICAgICAgaDR7Zm9udC1zaXplOiAyNHB4OyBsaW5lLWhlaWdodDogMzBweDsgY29sb3I6ICMzMzMzMzM7IGZvbnQtd2VpZ2h0OiA0MDA7IG1hcmdpbi1ib3R0b206IDEwcHg7fVxyXG4gICAgICAgIHB7bGluZS1oZWlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDM1cHg7fVxyXG4gICAgICAgIC5saW5rLWRlcmVjdGlvbntmb250LXN0eWxlOiAxNnB4OyBjb2xvcjogJHBpbms7IGZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgfVxyXG59XHJcblxyXG4ub3RoZXItdmVudWUtc2VjdGlvbntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogY2VudGVyO3BhZGRpbmctYm90dG9tOiAxNDBweDtcclxuICAgIC5mbHctbGVmdC1vdGhlcntwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEzMHB4OyBsZWZ0OiAwO31cclxufVxyXG5cclxuLmJveC1jb250YWN0LXJpZ2h0e1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBtaW4taGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7ei1pbmRleDogMTAwMDA7IG92ZXJmbG93LXk6IGF1dG87IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAqe0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTt9XHJcbiAgICAuaW5uZXJ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBtaW4taGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiAjZmZmOyB3aWR0aDogNzc1cHg7IG1heC13aWR0aDogMTAwJTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBwYWRkaW5nOiA4MHB4IDU2cHggMzNweDtcclxuICAgICAgICBoM3tmb250LXNpemU6IDM1cHg7IGNvbG9yOiAjMTExOyBwYWRkaW5nLWxlZnQ6IDQycHg7IG1hcmdpbi1ib3R0b206IDQ4cHg7fVxyXG4gICAgICAgIHB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICMwMDAwMDA7IG1hcmdpbi1ib3R0b206IDMwcHg7fVxyXG4gICAgICAgIC5saW5lLXZ7d2lkdGg6IDZweDsgaGVpZ2h0OiAxMTJweDsgYmFja2dyb3VuZDogJHBpbms7IHRvcDogMDsgbGVmdDogNjBweDsgcG9zaXRpb246IGFic29sdXRlO31cclxuICAgICAgICAuYnRuLWNsb3Nle1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6ICRwaW5rOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiA1MHB4OyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4zcyBhbGwpO1xyXG4gICAgICAgICAgICAmOmhvdmVye2JhY2tncm91bmQ6ICNmMDAwMWY7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4udWktZGF0ZXBpY2tlciB0YWJsZXtmb250LXNpemU6IDE0cHg7fVxyXG4udWktd2lkZ2V0e2ZvbnQtc2l6ZTogMTZweDt9XHJcbi5ib3gtaW5xdWlyeXtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAzMHB4OyByaWdodDogMzBweDt6LWluZGV4OiA5MDAwO1xyXG4gICAgLmJ0bi1vdmFse3BhZGRpbmc6IDAgMzBweCAwIDMwcHg7fVxyXG4gICAgLmljLWlucXVpcnl7dmVydGljYWwtYWxpZ246IG1pZGRsZTsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0zcHg7IG1hcmdpbi1yaWdodDogOHB4O31cclxufVxyXG4uYm94LWZvcm17XHJcbiAgICBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IEBpbmNsdWRlIGZ1bGxmbG9hdDtcclxuICAgICp7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO31cclxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIHRleHRhcmVhe1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjOWI1OTY7IGNvbG9yOiAjZWI0ZTVlOyBmb250LXNpemU6IDI0cHg7IGZvbnQtZmFtaWx5OiBcIlRyaXJvbmdcIjsgd2lkdGg6IDEwMCU7IHBhZGRpbmctbGVmdDogNXB4OyBwYWRkaW5nLXJpZ2h0OiA1cHg7IHdpZHRoOiAxMDAlOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuM3MgYWxsKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgJjpmb2N1cywgJjphY3RpdmV7Ym9yZGVyLWNvbG9yOiAjZWI0ZTVlO31cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye2NvbG9yOiAjY2NjY2NjO31cclxuICAgIHRleHRhcmVhe3Jlc2l6ZTogbm9uZTsgZm9udC1zaXplOiAxOHB4OyBoZWlnaHQ6IDkwcHg7IGxpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgIC5yb3d7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgQGluY2x1ZGUgZnVsbGZsb2F0O1xyXG4gICAgICAgIGxhYmVse2ZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGNvbG9yOiAjMTExOyBkaXNwbGF5OiBibG9jazt9XHJcbiAgICB9XHJcbiAgICAudGRhdGV7XHJcbiAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl17cGFkZGluZy1yaWdodDogNjBweDt9XHJcbiAgICB9XHJcbiAgICAuY2FwdGNoYXtmbG9hdDogbGVmdDsgbWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbiAgICAubGZhcXtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBjb2xvcjogIzk5OTk5OTtcclxuICAgICAgICBhe2NvbG9yOiAkcGluazt9XHJcbiAgICB9XHJcbn1cclxuLmJveC1maWx0ZXJ7XHJcbiAgICBAaW5jbHVkZSBmdWxsZmxvYXQ7IGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7IG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4gICAgc2VsZWN0e2Zsb2F0OiBsZWZ0O2JvcmRlcjogbm9uZTsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogIzAwMDAwMDsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBoZWlnaHQ6IDk4cHg7IHBhZGRpbmc6IDAgNDdweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmctY29tYm9ib3gucG5nJykgbm8tcmVwZWF0IHJpZ2h0IGNlbnRlcjsgd2lkdGg6IDEwMCU7fVxyXG4gICAgLmxpc3QtZmlsdGVyLWdhbGxlcnl7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlNWUxZGU7XHJcbiAgICAgICAgJjpsYXN0LWNoaWxke2JvcmRlci1yaWdodDogbm9uZTt9XHJcbiAgICAgICAgJi5zZWFyY2gtZmlsdGVye3RleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMjVweCAwIDA7IHdpZHRoOiAyODBweDt9XHJcbiAgICAgICAgJi5zdnBhcnRuZXJ7d2lkdGg6IDI0MHB4O31cclxuICAgICAgICAmLnN2ZW51ZXt3aWR0aDogMTY0cHg7fVxyXG4gICAgICAgICYuc3d0aGVtZXt3aWR0aDogMjQ5cHg7fVxyXG4gICAgICAgICYuc3Bob3Rve3dpZHRoOiAyMzJweDt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mYXEtY29udGVudHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogOTBweDsgcGFkZGluZy1ib3R0b206IDEwNXB4O1xyXG4gICAgLmZsdy1sZWZ0LWZhcXtwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbi10b3A6IDQwJTsgbGVmdDogMDsgdG9wOiAwO31cclxuICAgIC5idG4taW5xdXJ5e3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMzJweDsgcmlnaHQ6IDIwcHg7fVxyXG4gICAgLndyYXBwZXJ7d2lkdGg6IDc3MHB4OyBtYXgtd2lkdGg6IDEwMCU7fVxyXG59XHJcbi5ib3gtZmFxe1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6ICMwMDAwMDA7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IG1hcmdpbi10b3A6IDExMHB4OyBAaW5jbHVkZSBmdWxsZmxvYXQ7XHJcbiAgICAubGlzdC1mYXF7XHJcbiAgICAgICAgQGluY2x1ZGUgZnVsbGZsb2F0OyBwYWRkaW5nOiAyNHB4IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAmOmJlZm9yZSwgJjphZnRlcntjb250ZW50OiBcIlwiOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6ICNjY2M7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwO31cclxuICAgICAgICAmOmJlZm9yZXtiYWNrZ3JvdW5kOiAjY2NjOyB3aWR0aDogMTAwJTsgbGVmdDogMDt9XHJcbiAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kOiAjZWI0ZTVlOyB3aWR0aDogMDsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjNzIGFsbCBlYXNlLW91dCk7IGxlZnQ6IDUwJTt9XHJcbiAgICAgICAgLnFzdHtmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBmb250LXdlaWdodDogNjAwOyBmb250LWZhbWlseTogXCJUcmlyb25nXCI7IGNvbG9yOiAjMTExOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4zcyBhbGwpO31cclxuICAgICAgICAuYW5zd3J7cGFkZGluZy10b3A6IDIwcHg7IGRpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICYuYWN0aXZlLCAmOmhvdmVye1xyXG4gICAgICAgICAgICAucXN0e2NvbG9yOiAjZWI0ZTVlO31cclxuICAgICAgICAgICAgJjphZnRlcnt3aWR0aDogMTAwJTsgbGVmdDogMDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuYWN0aXZle1xyXG4gICAgICAgICAgICAuYW5zd3J7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uY29udGFjdC1jb250ZW50e1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAuZmx3LWNvbnRhY3QtcmlnaHR7cG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgbWFyZ2luLXRvcDogMTAlOyB0b3A6IDA7fVxyXG4gICAgLmZsdy1jb250YWN0LWxlZnR7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyBtYXJnaW4tdG9wOiA3MCU7IHRvcDogMDt9XHJcbiAgICAud3JhcHBlcnt3aWR0aDogNzcwcHg7fVxyXG59XHJcbi5ib3gtY29udGFjdHt0ZXh0LWFsaWduOiBsZWZ0O31cclxuLmJveC1mb2xsb3ctY29udGFjdHtcclxuICAgIG1hcmdpbi10b3A6IDEzMHB4OyBAaW5jbHVkZSBmdWxsZmxvYXQ7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC5ib3gtc29zbWVkLWxne1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBhe3dpZHRoOiAxNDBweDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5iYW5uZXItdGhhbmt5b3V7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBAaW5jbHVkZSBmdWxsZmxvYXQ7IG1pbi1oZWlnaHQ6IDkwdmg7XHJcbiAgICAuZGVzY3tcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzUlOyBsZWZ0OiAwOyByaWdodDogMDsgd2lkdGg6IDU3MHB4OyBtYXJnaW46IDAgYXV0bzsgdGV4dC1hbGlnbjogY2VudGVyOyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7IG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBoMXtmb250LXNpemU6IDkwcHg7IGNvbG9yOiAjNTk2YzU5OyBmb250LWZhbWlseTogXCJMYXRvXCI7IGZvbnQtd2VpZ2h0OiAxMDA7IG1hcmdpbi1ib3R0b206IDM1cHg7fVxyXG4gICAgICAgIGg1e2ZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDMxcHg7IGZvbnQtZmFtaWx5OiBcIkxhdG9cIjsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6ICM4ZjgzNmQ7IG1hcmdpbi1ib3R0b206IDMwcHg7fVxyXG5cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5wb3B1cC1nYWxsZXJ5e1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7ei1pbmRleDogMTAwMDA7IGJhY2tncm91bmQ6ICNmZmY7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIC5jbG9zZS1wb3AtZ2FsbGVyeXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjFweDsgcmlnaHQ6IDA7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgaGVpZ2h0OiA1MHB4OyBsaW5lLWhlaWdodDogNTBweDsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6IFwiVHJpcm9uZ1wiOyBmb250LXdlaWdodDogNTAwOyBiYWNrZ3JvdW5kOiAjZjA4ZTk4OyB6LWluZGV4OiAxOyBwYWRkaW5nOiAwIDI4cHg7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAmOmJlZm9yZXtjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwO2xlZnQ6IDA7IHdpZHRoOiAwOyBiYWNrZ3JvdW5kOiAjZjAwMDFmOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTsgei1pbmRleDogLTE7fVxyXG4gICAgICAgIC5pYy1jbG9zZXttYXJnaW4tbGVmdDogMjBweDt9XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgJjpiZWZvcmV7d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5pbWctbGFyZ2V7XHJcbiAgICAgICAgLmxpc3Qtc2xpZGV7XHJcbiAgICAgICAgICAgIC8qbWluLWhlaWdodDogMTAwdmg7Ki9cclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgICAgICAgICAgaWZyYW1le2hlaWdodDogMTAwdmg7IHdpZHRoOiAxMDAlO31cclxuICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgaW1ne2hlaWdodDogMTAwJTsgbWluLXdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IG5vbmU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jYXBzLWxhcmdle1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBtYXJnaW46IDAgYXV0bzsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogMTA3NXB4O2JhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC40KSB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2JnX3RvcC5wbmcpIHJlcGVhdC14IHRvcCBjZW50ZXI7bWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4IDE1MHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7Zm9udC1zaXplOiAyMHB4O2xpbmUtaGVpZ2h0OiAxOHB4O2ZvbnQtc3R5bGU6IGl0YWxpYztmb250LXdlaWdodDogNjAwO2NvbG9yOiAjMDAwO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDpcIlwiOyBoZWlnaHQ6IDJweDsgd2lkdGg6IDEwMHB4OyBiYWNrZ3JvdW5kOiNmMDhlOTg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bzsgYm90dG9tOiAxMzJweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5ib3gtdGh1bWItc2xpZGVye1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgd2lkdGg6IDEwNzVweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDMwcHggMDtiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XHJcbiAgICAgICAgLndyYXBwZXIge3dpZHRoOiA5MDBweDt9XHJcbiAgICAgICAgLmNhcHRpb24tc2xpZGV7dGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAyNXB4OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjMzMzOyBtYXJnaW4tYm90dG9tOiA1NXB4O31cclxuICAgICAgICAuc2xpY2stcHJldiwgLnNsaWNrLW5leHR7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDI3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycm93LXNsaWRlLWdhbGxlcnktZGV0YWlsLnBuZycpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTtcclxuICAgICAgICAgICAgJjpiZWZvcmV7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1wcmV2e1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjsgbGVmdDogLTUycHg7XHJcbiAgICAgICAgICAgICY6aG92ZXJ7bGVmdDogLTU2cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpY2stbmV4dHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyOyByaWdodDogLTUycHg7XHJcbiAgICAgICAgICAgICY6aG92ZXJ7cmlnaHQ6IC01NnB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpc3Qtc2xpZGV7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOiAwIDlweDtcclxuICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IGN1cnNvcjogcG9pbnRlcjsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpOyBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTt9XHJcbiAgICAgICAgICAgICAgICBpbWd7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2JhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yKTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zbGljay1jdXJyZW50e1xyXG4gICAgICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udi1hbGwge1xyXG4gICAgbWFyZ2luOiAzMHB4IDAgNDBweDtcclxuICAgIC5idG4tb3ZhbCB7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cclxufVxyXG5cclxuLmJveC13YSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7IHJpZ2h0OiA0MHB4OyBib3R0b206IDMwcHg7IHotaW5kZXg6IDkwMDA7XHJcbiAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6ICMyYWQyNjU7IGJvcmRlci1jb2xvcjogIzJhZDI2NTsgZm9udC1zaXplOiAxNXB4OyBwYWRkaW5nOiAwIDMwcHg7XHJcbiAgICAgICAgaXtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi1yaWdodDogMTBweDsgdG9wOiAtM3B4O31cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICMyYWQyNjU7IGJvcmRlci1jb2xvcjogIzJhZDI2NTtcclxuICAgICAgICAgICAgaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgICYuYWJzU3JvbGwge1xyXG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2hpbmc7YW5pbWF0aW9uLWR1cmF0aW9uOiAuM3M7IGJvdHRvbTogMTAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYm91bmNoaW5nIHtcclxuICAgIDAlIHsgYm90dG9tOiA5NXB4OyB9XHJcbiAgICAzNSUgeyBib3R0b206IDEwMHB4OyB9XHJcbiAgICA2NSUgeyBib3R0b206IDk1cHg7IH1cclxuICAgIDEwMCUgeyBib3R0b206IDEwMHB4OyB9XHJcbn1cclxuLyogZmFuY3lib3ggcG9wdXAgYW5kIHNsaWRlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyouZmFuY3lib3gtbG9ja3tcclxuICAgIC5mYW5jeWJveC1vdmVybGF5e1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIH1cclxufVxyXG4uZmFuY3lib3gtd3JhcHtcclxuICAgIHRvcDogMCAhaW1wb3J0YW50OyBsZWZ0OiAwICFpbXBvcnRhbnQ7IGJvdHRvbTogMDsgcmlnaHQ6IDA7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgLmZhbmN5Ym94LXNraW57XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXJ7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7fVxyXG4gICAgICAgIC5mYW5jeWJveC1pbm5lcnt3aWR0aDogYXV0byAhaW1wb3J0YW50OyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDt9XHJcbiAgICAgICAgLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXB7Ym90dG9tOiAyNTBweDsgbWFyZ2luOiAwO31cclxuICAgIH1cclxufVxyXG4jZmFuY3lib3gtdGh1bWJze1xyXG4gICAgdWx7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgcGFkZGluZzogMTEwcHggODBweCAzM3B4ICFpbXBvcnRhbnQ7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgd2lkdGg6IDEzMzBweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDI0MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6IDUwJSAhaW1wb3J0YW50OyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XHJcbiAgICAgICAgbGl7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGltZ3toZWlnaHQ6IDEwMHB4ICFpbXBvcnRhbnQ7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuYWN0aXZle2JvcmRlcjogbm9uZSAhaW1wb3J0YW50O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmJvdHRvbXtib3R0b206IDAgIWltcG9ydGFudDt9XHJcbn0qL1xyXG5cclxuLyogZW5kIGZhbmN5Ym94IHBvcHVwIGFuZCBzbGlkZXJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5cclxuLyogZm9vdGVyXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5mb290ZXJ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IG1pbi1oZWlnaHQ6IDkycHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMDAwMWY7XHJcbiAgICBjb2xvcjogIzMzMzsgZm9udC1zaXplOiAxNHB4OyBAaW5jbHVkZSBmdWxsZmxvYXQ7IGxpbmUtaGVpZ2h0OiA5MnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgYXtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgYWxsKTsgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgJjpob3Zlcntjb2xvcjogI2YyOGU5ODt9XHJcbiAgICB9XHJcbn0iLCIvKiBpbXBvcnQgYm91cmJvbiAtIGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MgKi9cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJGF0dHIpe1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm0oJGF0dHIpe1xyXG4gICAgdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm9yZGVyUmFkaXVzKCRhdHRyKXtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtby1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm94U2hhZG93KCRhdHRyKXtcclxuICAgIGJveC1zaGFkb3c6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNoYWRvdzogJGF0dHJcclxufVxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cclxuICAgIDotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICBib3gtc2l6aW5nOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gZnVsbGZsb2F0e1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG5AbWl4aW4gZnVsbGlubGluZXtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5cclxuLyogdmFyaWFibGVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiRjXzExMTogIzExMTtcclxuJGNfMzMzOiAjMzMzO1xyXG4kY182NjY6ICM2NjY7XHJcbiRjXzk5OTogIzk5OTtcclxuJGNfZWE6ICNlYWVhZWE7XHJcbiRwaW5rOiAjZjI4ZTk4OyIsIi8vIEJvdXJib24gNC4yLjdcclxuLy8gaHR0cDovL2JvdXJib24uaW9cclxuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXHJcbi8vIE1JVCBMaWNlbnNlXHJcblxyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xyXG5cclxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XHJcblxyXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcclxuXHJcbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcclxuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcclxuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcclxuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcclxuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xyXG5cclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcclxuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XHJcblxyXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xyXG5cclxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XHJcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbFxyXG5cclxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcclxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xyXG4gICRsaXN0OiAoKTtcclxuXHJcbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xyXG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XHJcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcclxuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbGlzdDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcclxuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XHJcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xyXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgIEBpZiBub3QgJGl0ZW0ge1xyXG4gICAgICBAcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGZhbHNlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcblxyXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXHJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXHJcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBpcy1saWdodCgkY29sb3IpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XHJcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xyXG5cclxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcblxyXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG5cclxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxyXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XHJcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXHJcblxyXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcclxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxyXG5cclxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuXHJcbiAgJGJhc2U6ICRlbS1iYXNlO1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgICRkaW1lbnNpb246IDEwO1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxyXG5cclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcclxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRuZXctcHJvcHM6ICgpO1xyXG5cclxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xyXG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcclxufVxyXG5cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcclxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcclxuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRwcm9wO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XHJcbi8vLyAgIH1cclxuXHJcbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xyXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXHJcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcclxuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xyXG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XHJcbiRtaW5vci10aGlyZDogICAgICAxLjI7XHJcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xyXG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XHJcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcclxuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcclxuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcclxuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xyXG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XHJcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcclxuJG9jdGF2ZTogICAgICAgICAgIDI7XHJcbiRtYWpvci10ZW50aDogICAgICAyLjU7XHJcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcclxuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XHJcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xyXG5cclxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcclxuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XHJcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcclxuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcclxuICAkdmFsdWU6ICR2MTtcclxuXHJcbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXHJcbiAgQHdoaWxlICR2MiA+ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXHJcbiAgfVxyXG4gIEB3aGlsZSAkdjIgPCAkdjEge1xyXG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXHJcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xyXG5cclxuICBAaWYgJGluY3JlbWVudCA+IDAge1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJGluY3JlbWVudCA8IDAge1xyXG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxyXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xyXG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgfVxyXG5cclxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XHJcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xyXG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcclxuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XHJcblxyXG4gIEBpZiBub3QgJGluZGV4IHtcclxuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XHJcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcclxuLy8vXHJcbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9XHJcblxyXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XHJcbiAgJG91dHB1dDogbnVsbDtcclxuXHJcbiAgJGE6IG50aCgkdmFscywgMSk7XHJcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XHJcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XHJcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcclxuXHJcbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxyXG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cclxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XHJcbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxyXG5cclxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxyXG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cclxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XHJcblxyXG4gIEByZXR1cm4gJG91dHB1dDtcclxufVxyXG5cclxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcclxuLy8vICAgUHJlZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcclxuLy8vICAgU3VmZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcblxyXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcclxuICAvLyBQcm9wZXJ0eSBOYW1lc1xyXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcblxyXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xyXG5cclxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcclxuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAjeyRhbGx9OiAkdmFscztcclxuICB9XHJcbn1cclxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2VcclxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiB1cmw7XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHMsXHJcbiAgJGZvbnQtdXJsKSB7XHJcblxyXG4gICRzcmM6ICgpO1xyXG5cclxuICAkZm9ybWF0cy1tYXA6IChcclxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxyXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcclxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXHJcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcclxuICApO1xyXG5cclxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XHJcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xyXG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XHJcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xyXG5cclxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHNyYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcclxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcclxuICAkb2Zmc2V0OiBudWxsO1xyXG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxyXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRvZmZzZXQge1xyXG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XHJcblxyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xyXG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XHJcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XHJcblxyXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XHJcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XHJcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcclxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICRkZWdyZWU6IG51bGw7XHJcbiAgJHNpZGU6IG51bGw7XHJcbiAgJGNvcm5lcjogbnVsbDtcclxuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XHJcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xyXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcclxuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XHJcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XHJcblxyXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxyXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcclxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxyXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcclxuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XHJcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XHJcbiAgICAgICRkZWdyZWU6ICRwb3M7XHJcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcclxuICAgICAgJHNwZWM6ICRwb3M7XHJcbiAgICB9XHJcbiAgfVxyXG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcclxuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xyXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcclxufVxyXG5cclxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcclxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XHJcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XHJcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHZhbC0zOiBudWxsO1xyXG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcclxuXHJcbiAgQGlmICRoYXMtdmFsLTMge1xyXG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcclxuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xyXG4gIH1cclxuXHJcbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XHJcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XHJcblxyXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XHJcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xyXG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xyXG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxyXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcclxuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcclxuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICRnMTogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcclxuXHJcbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2UgaWZcclxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XHJcblxyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcclxuICAgICAgICAgICAgJGcyOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xyXG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXHJcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XHJcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcblxyXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XHJcblxyXG4gIC8vIEFkZCBjb21tYVxyXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XHJcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XHJcblxyXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xyXG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xyXG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcclxuXHJcbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkcHJlLXNwZWM6IG51bGw7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XHJcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XHJcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XHJcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcclxuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgJHZlbmRvciB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xyXG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XHJcbiAgICAgICR2YWx1ZTogbnVsbDtcclxuICAgIH1cclxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcclxuICB9XHJcbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xyXG4gIC8vIE1hdHJpY2VzXHJcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xyXG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcclxuXHJcbiAgLy8gUmVzdWx0XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGl2aWRlcjogMDtcclxuICAkbWludXM6IGZhbHNlO1xyXG5cclxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xyXG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XHJcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XHJcbiAgICAgICRtaW51czogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcclxuICAgICAgJGRpdmlkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcclxuXHJcbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcclxuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxyXG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xyXG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG59XHJcbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxyXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxyXG5cclxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XHJcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XHJcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XHJcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcclxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcclxuLy8gbm90YXRpb24uXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xyXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xyXG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcclxuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xyXG5cclxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xyXG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcclxuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXHJcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcclxuICAkd2Via2l0LWltYWdlczogKCk7XHJcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xyXG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XHJcbiAgICAkc3BlYy1pbWFnZTogKCk7XHJcblxyXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcclxuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcclxufVxyXG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XHJcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcclxuICAkc3BlYy1ib3JkZXJzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XHJcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XHJcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xyXG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xyXG5cclxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xyXG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xyXG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbn1cclxuXHJcbi8vRXhhbXBsZXM6XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XHJcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XHJcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcclxuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcclxufVxyXG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XHJcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGludGVnZXJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xyXG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XHJcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcclxuICAvLyBub25lIHx8IGFsbFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xyXG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuXHJcbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcclxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcclxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcclxuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xyXG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcclxuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcclxufVxyXG5cclxuQG1peGluIGRpc3BsYXktYm94IHtcclxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICBkaXNwbGF5OiAtbW96LWJveDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcclxuICBkaXNwbGF5OiBib3g7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XHJcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xyXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcclxuLy8gc2luZ2xlfG11bHRpcGxlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxyXG5cclxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXHJcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXHJcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXHJcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xyXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcclxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcclxuICAgIC8vIDIwMDlcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgICBkaXNwbGF5OiBib3g7XHJcblxyXG4gICAgLy8gMjAxMlxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcclxuXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgZGlzcGxheTogJHZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXHJcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXHJcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xyXG5cclxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXHJcbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcclxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXHJcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xyXG5cclxuICBAaWYgJHZhbHVlID09IHJvdyB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcclxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xyXG4gIC8vIEFsdCB2YWx1ZXNcclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcclxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcclxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxyXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1vcmRlcjogJGludDtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcclxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG5cclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcclxufVxyXG4iLCJAbWl4aW4gZm9udC1mYWNlKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICR3ZWlnaHQ6IG5vcm1hbCxcclxuICAkc3R5bGU6IG5vcm1hbCxcclxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XHJcblxyXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XHJcblxyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xyXG5cclxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgICAgICRmb250LWZhbWlseSxcclxuICAgICAgJGZpbGUtcGF0aCxcclxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICAgICAkZmlsZS1mb3JtYXRzLFxyXG4gICAgICAkZm9udC11cmwtcHJlZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xyXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxyXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcclxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcclxuXHJcbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xyXG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcclxuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xyXG4gIH1cclxufVxyXG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcclxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcclxuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xyXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRwb3Mtc3BlYzogbnVsbDtcclxuICAkcG9zLWRlZ3JlZTogbnVsbDtcclxuXHJcbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXHJcbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xyXG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcclxuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XHJcbiAgICAkcG9zOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgQGlmICRwb3Mge1xyXG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xyXG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcclxuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XHJcblxyXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XHJcbn1cclxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XHJcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xyXG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXHJcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcblxyXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcclxuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xyXG4gICRnMjogIG50aCgkZGF0YSwgMik7XHJcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xyXG5cclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXHJcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XHJcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xyXG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XHJcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XHJcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XHJcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcclxuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcclxufVxyXG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcclxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXHJcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cclxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xyXG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcclxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xyXG4gICR3ZWJraXQ6ICgpO1xyXG4gICRtb3o6ICgpO1xyXG4gICRzcGVjOiAoKTtcclxuXHJcbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXHJcbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xyXG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcclxuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcclxuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcclxuICAgICAgJGxpc3QzOiAoKTtcclxuXHJcbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xyXG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xyXG5cclxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xyXG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcclxuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcclxuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcclxuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XHJcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XHJcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xyXG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxyXG5cclxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudC10d28ge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcclxuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudC10d28ge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxyXG5cclxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcclxuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxyXG5cclxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgYnV0dG9uLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxyXG4vLy8gICBidXR0b246aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXHJcblxyXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xyXG5cclxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcclxuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcclxuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XHJcblxyXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcclxuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcclxuLy8vICAgICBjbGVhcjogYm90aDtcclxuLy8vICAgICBjb250ZW50OiBcIlwiO1xyXG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXHJcbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcclxuXHJcbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcclxuXHJcbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xyXG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcclxuXHJcbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgQGlmICRoZWlnaHQge1xyXG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxyXG5cclxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XHJcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcclxuXHJcbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxyXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxyXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGxlZnQ6IDEwZW07XHJcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLy8gICAgIHRvcDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xyXG5cclxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xyXG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XHJcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcclxuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xyXG5cclxuICAkb2Zmc2V0czogKFxyXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcclxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXHJcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxyXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxyXG4gICk7XHJcblxyXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XHJcblxyXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XHJcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxyXG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcclxuLy8vXHJcbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxyXG4vLy8gICBWYWx1ZSB0byB1c2VcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xyXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcclxuXHJcbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XHJcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xyXG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XHJcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcclxuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcclxuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgIHtcclxuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcclxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xyXG59XHJcbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgaGlkcGkge1xyXG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxyXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxyXG4vLy9cclxuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IDJlbTtcclxuLy8vICAgICBoZWlnaHQ6IDJlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogYXV0bztcclxuLy8vICAgICBoZWlnaHQ6IDEwZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcclxuXHJcbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xyXG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJGhlaWdodDogJHdpZHRoO1xyXG5cclxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcclxuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxuXHJcbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxyXG4vLy8gICB0ZXh0YXJlYSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXHJcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3ZlcixcclxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXHJcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXHJcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xyXG5cclxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcclxuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxyXG4vLy9cclxuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcclxuLy8vXHJcbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcclxuXHJcbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XHJcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XHJcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XHJcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XHJcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XHJcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XHJcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XHJcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XHJcblxyXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xyXG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xyXG5cclxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcclxuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcclxuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcclxuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcclxuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcclxuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XHJcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcclxuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XHJcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHdpZHRoOiAwO1xyXG5cclxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XHJcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XHJcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XHJcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXHJcbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAud3JhcHBlciB7XHJcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAud3JhcHBlciB7XHJcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XHJcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XHJcbiAgd29yZC13cmFwOiAkd3JhcDtcclxuXHJcbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgd29yZC1icmVhazogJHdyYXA7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcclxuXHJcbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcclxuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcclxuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgJjpkaXNhYmxlZCB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gIH1cclxuXHJcbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXHJcbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcclxuICAvLyBHcmF5c2NhbGUgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICAvLyBDb2xvcmVkIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNpbXBsZSBCdXR0b25cclxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaGlueSBCdXR0b25cclxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XHJcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xyXG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XHJcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xyXG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xyXG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xyXG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBQaWxsIEJ1dHRvblxyXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xyXG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcclxuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcclxuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcclxuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGF0IEJ1dHRvblxyXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJvcmRlcjogMDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxleGlibGUgZ3JpZFxyXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xyXG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuLy8gRmxleGlibGUgZ3V0dGVyXHJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xyXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcclxuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XHJcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztnR0FJZ0c7QUNKaEcsNkNBQTZDO0FBb0Q3QztnR0FDZ0c7QUQ5Q2hHLEFBQUEsSUFBSSxDQUFDO0VBQ0QsS0FBSyxFQUFFLE9BQU87RUFDZCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRUFBRSxNQUFNO0NBQ3JCOztBQUNELEFBQUEsR0FBRyxDQUFBO0VBQUUsTUFBTSxFQUFDLENBQUM7RUFBRSxTQUFTLEVBQUMsSUFBSTtFQUFFLE1BQU0sRUFBQyxJQUFJO0NBQUk7O0FBQzlDLEFBQUEsTUFBTSxDQUFBO0VBQUMsTUFBTSxFQUFFLENBQUM7Q0FBRzs7QUFDbkIsQUFBQSxPQUFPLENBQUM7RUFBRSxVQUFVLEVBQUUsTUFBTTtDQUFJOztBQUNoQyxBQUFBLEtBQUssQ0FBQztFQUFFLFdBQVcsRUFBRSxJQUFJO0NBQUk7O0FBQzdCLEFBQUEsUUFBUSxDQUFDO0VBQUUsV0FBVyxFQUFFLE9BQU87Q0FBSTs7QUFDbkMsQUFBQSxHQUFHLENBQUM7RUFBRSxLQUFLLEVBQUUsSUFBSTtDQUFJOztBQUNyQixBQUFBLEdBQUcsQ0FBQztFQUFFLEtBQUssRUFBRSxLQUFLO0NBQUk7O0FBQ3RCLEFBQUEsTUFBTSxDQUFDO0VBQUUsS0FBSyxFQUFFLElBQUk7Q0FBSTs7QUFDeEIsQUFBQSxDQUFDLENBQUM7RUFDRSxNQUFNLEVBQUUsVUFBVTtFQUNsQixXQUFXLEVBQUUsSUFBSTtDQUNwQjs7QUFDRCxBQUFBLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0VB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 */
