/*=============================================================================================
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Your Name
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
.absolute-center, .wrap-popup .overlay-pop, .wrap-popup .box-popup .close:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

/* color global
----------------------------------------------------------------------------------------------*/
body {
  color: #333;
  font-size: 12px;
  font-family: 'Lato', sans-serif;
  position: relative;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

figure {
  margin: 0;
  padding: 0;
}

figure img {
  vertical-align: middle;
}

img {
  border: 0;
  max-width: 100%;
  height: auto;
}

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;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  opacity: 0;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

h1 {
  font-size: 69px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

/* structure
----------------------------------------------------------------------------------------------*/
section {
  position: relative;
}

.wrapper {
  width: 1170px;
  margin: 0 auto;
}

.after_clear:after, header:after, .home-content .opening:after, .home-content .produk .top_title:after, .other_product .top_title:after, .highlight .left:after, .btm_sec:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

.before_clear:before {
  clear: both;
  display: block;
  content: " ";
}

.flex, .listing_news {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.flex-list, .ls-produk, .detail_pg {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

.transitionAll {
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.transitionColor {
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.trigger {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  height: .5px;
}

.center {
  text-align: center;
}

.center .btn-prod {
  padding: 0 20px;
  line-height: 40px;
  font-size: 18px;
  text-transform: uppercase;
  color: #fff;
  background: -webkit-linear-gradient(bottom, #222167, #5755da);
  border-radius: 5px;
  position: relative;
  display: inline-block;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.more {
  text-transform: uppercase;
  font-size: 16px;
  color: #fcef25;
}

.more:hover {
  text-decoration: underline;
  color: #fcef25;
}

.btn-std {
  line-height: 40px;
  padding: 0 25px;
  min-width: 200px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  color: #fff;
  background: -webkit-linear-gradient(bottom, #fc95d1, #ed207b);
  display: inline-block;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  text-transform: uppercase;
}

.btn-std:hover {
  color: #fff;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  background: -webkit-linear-gradient(bottom, #ed207b, #fc95d1);
}

.btn_round {
  color: #fff;
  line-height: 40px;
  background: #f5703c;
  padding: 0 35px;
  float: left;
  font-size: 16px;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  position: relative;
  text-transform: uppercase;
  font-weight: 600;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.btn_round:hover {
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  background: #f14e0f;
  color: #fff;
}

.see {
  color: #df6e3c;
  font-size: 14px;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  margin-top: 20px;
  display: inline-block;
}

.see:hover {
  color: #f14e0f;
}

/* header
----------------------------------------------------------------------------------------------*/
header {
  position: fixed;
  left: 0;
  right: 0;
  display: block;
  z-index: 9;
  transition: padding 0.3s ease-out;
  -webkit-transition: padding 0.3s ease-out;
  -moz-transition: padding 0.3s ease-out;
  -ms-transition: padding 0.3s ease-out;
  -o-transition: padding 0.3s ease-out;
  background: #ed207b;
  height: 130px;
  padding: 5px 0;
  box-sizing: border-box;
  top: 0;
}

header .wrapper {
  width: 1630px;
  position: relative;
}

header .wrapper .logo {
  float: left;
  width: 330px;
  margin-top: 20px;
}

header .wrapper .cart {
  color: #ed207b;
  line-height: 40px;
  background: #fff;
  padding: 0 20px;
  float: left;
  font-size: 16px;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  position: relative;
  text-transform: uppercase;
  font-weight: 600;
  padding-left: 40px;
  padding-right: 10px;
  padding-top: 0px;
  padding-bottom: 0px;
  margin-top: -10px;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

header .wrapper .cart:after {
  content: "";
  width: 24px;
  height: 20px;
  position: absolute;
  left: 10px;
  top: 0;
  bottom: 0;
  margin: auto;
  background: url("../cart.gif") no-repeat;
  background-size: 100%;
}

header .wrapper .cart:hover {
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  background: #ed207b;
  color: #fff;
  border:1px solid #fff;
  background: url("../cart.png") no-repeat;
}

header .wrapper .rh_head {
  float: right;
  width: auto;
  padding-top: 50px;
  box-sizing: border-box;
}

header .wrapper .rh_head .navigasi {
  display: block;
  float: left;
}

header .wrapper .rh_head nav {
  margin-left: 30px;
  position: relative;
  float: left;
}

header .wrapper .rh_head nav ul li {
  float: left;
  margin-right: 50px;
}

header .wrapper .rh_head nav ul li a {
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 1px;
}

header .wrapper .rh_head .src_wrp {
  float: left;
  margin-top: -10px;
  margin-right: 30px;
}

header .wrapper .rh_head .src_wrp .ic_src {
  width: 16px;
  height: 16px;
  background: url("../cart.png") no-repeat;
  display: inline-block;
  cursor: pointer;
  margin-top: 10px;
  display: none;
}

header .wrapper .rh_head .src_wrp.mbl {
  display: none;
}

header .wrapper .rh_head .src {
  width: 320px;
  position: relative;
}

header .wrapper .rh_head .src ::-webkit-input-placeholder {
  color: #a1a1a1;
}

header .wrapper .rh_head .src :-moz-placeholder {
  color: #a1a1a1;
}

header .wrapper .rh_head .src ::-moz-placeholder {
  color: #a1a1a1;
}

header .wrapper .rh_head .src :-ms-input-placeholder {
  color: #a1a1a1;
}

header .wrapper .rh_head .src input[type="text"] {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0 65px 0 25px;
  line-height: 40px;
  font-size: 15px;
  border: none;
  border-radius: 8px 10px 10px 8px;
  -webkit-border-radius: 8px 10px 10px 8px;
  -moz-border-radius: 8px 10px 10px 8px;
  -ms-border-radius: 8px 10px 10px 8px;
  -o-border-radius: 8px 10px 10px 8px;
}

header .wrapper .rh_head .src input[type="submit"] {
  width: 60px;
  top: 0;
  bottom: 0;
  position: absolute;
  right: 0;
  background: #f5703c url("../images/material/ico_src.png") no-repeat center;
  border: none;
  font-size: 0;
  border-radius: 0 8px 8px 0;
  -webkit-border-radius: 0 8px 8px 0;
  -moz-border-radius: 0 8px 8px 0;
  -ms-border-radius: 0 8px 8px 0;
  -o-border-radius: 0 8px 8px 0;
  cursor: pointer;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
}

header .wrapper .rh_head .src input[type="submit"]:hover {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  background-color: #f14e0f;
}

header .wrapper .rh_head .socmed {
  float: left;
  position: relative;
}

header .wrapper .rh_head .socmed:after {
  content: "";
  position: absolute;
  left: 0px;
  top: -5px;
  height: 25px;
  width: 3px;
  background-color: #fff;
}

header .wrapper .rh_head .socmed ul li {
  float: right;
  margin-left: 15px;
  position: relative;
  top: -5px;
}
header .wrapper .rh_head .socmed ul li a .images {
  background: #ed207b;
  width: 25px;
  height: 25px;
  position: relative;
  border:2px solid #fff;
  border-radius: 100%;
}

header .wrapper .rh_head .socmed ul li a .images img {
  width: 12px;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}


header .wrapper .rh_head .burg_nav {
  float: none;
  display: none;
}

header .wrapper .rh_head .nav-overlay {
  display: none !important;
}

/* middle
----------------------------------------------------------------------------------------------*/
.space-header {
  padding-top: 210px;
}

.home-content {
  margin-top: 130px;
  position: relative;
}

.home-content .slick-track {
  height: 100%;
}

.home-content .slick-list {
  height: 100%;
}

.home-content .slick-list .item {
  height: 100%;
}

.home-content .slick-list .item figure {
  height: auto;
}

.home-content .slick-list .item figure img {
  display: block;
  height: auto;
}

.home-content .slick-dots {
  bottom: 70px;
  display: inline-block !important;
  left: 0;
  margin: 0 auto;
  position: absolute;
  right: 0;
  text-align: center;
}

.home-content .slick-dots li {
  display: inline-block;
  margin: 0 5px;
}

.home-content .slick-dots li.slick-active button {
  background: #fff;
  opacity: 1;
}

.home-content .slick-dots li button {
  background: #fff;
  border: 0;
  border-radius: 50%;
  height: 12px;
  opacity: .7;
  padding: 0;
  text-indent: -99999px;
  width: 12px;
}

.home-content .slick-dots li:only-child {
  display: none;
}

.home-content .opening {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  justify-content: space-between;
}

.home-content .opening .slider {
  position: relative;
  width: 70%;
}

.home-content .opening .slider .cover {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.home-content .opening .slider .cover img {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  object-fit: cover;
}

.home-content .opening .slider .cover.bg {
  background-size: cover !important;
  background-position: center !important;
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
}

.home-content .opening .slider .cover.bg img {
  display: none;
}

.home-content .opening .slider .link {
  position: absolute;
  bottom: 90px;
  left: 250px;
}

.home-content .opening .slider .link a {
  color: #fff;
  font-size: 25px;
}

.home-content .opening .slider .link:before {
  content: "";
  position: absolute;
  width: 90px;
  height: 90px;
  background: url(../images/material/play.png) no-repeat center;
  border: 2px solid #fff;
  border-radius: 100%;
  top: -35px;
  left: -110px;
}

.home-content .opening .promoo {
  position: relative;
  background: #c7c7d3;
  width: 30%;
  height: auto;
  background-size: 100%;
  overflow: hidden;
}

.home-content .opening .promoo .images {
  text-align: center;
  width: 80%;
  margin: 0 auto;
}

.home-content .opening .promoo .images img {
  margin-top: 20px;
}

.home-content .opening .promoo .content {
  text-align: center;
}

.home-content .opening .promoo .content h3 {
  font-family: 'Open Sans';
  font-size: 30px;
  color: #262e71;
  font-weight: 700;
  text-transform: uppercase;
  /*text-shadow: -4px 1px 2px rgba(147, 154, 150, 0.36);*/
}

.home-content .opening .promoo .content h3 span {
  font-size: 65px;
  font-weight: 900;
}

.home-content .opening .promoo .content h4 {
  font-weight: 700;
  font-size: 28px;
  color: #FFF;
  margin-top: 5px;
  /* text-shadow: -4px 1px 2px rgba(147, 154, 150, 0.36);*/
}

.home-content .opening .promoo .content h5 {
  font-size: 24px;
  color: #696969;
  margin-bottom: 20px;
}

.home-content .opening .promoo .content h2 {
  font-size: 38px;
  color: #696969;
  font-weight: 700;
  margin-bottom: 30px;
}

.home-content .opening .promoo .content .btn {
  margin-top: 50px;
}

.home-content .opening .promoo .content .btn a {
  font-weight: 700;
  color: #fff;
  font-size: 23px;
  padding: 25px 60px;
  box-sizing: border-box;
  background: -webkit-linear-gradient(bottom, #222167, #5755da);
  border-radius: 5px;
  position: relative;
}

.home-content .produk {
  background: #141c41;
  position: relative;
  padding: 120px 0 75px;
  box-sizing: border-box;
  overflow: hidden;
}

.home-content .produk .wrapper {
  z-index: 2;
  position: relative;
}

.home-content .produk .titles {
  font-weight: 300;
  font-size: 39px;
  color: #fff;
}

.home-content .produk .top_title {
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  margin-bottom: 100px;
}

.home-content .produk .top_title .titles {
  float: left;
}

.home-content .produk .top_title .more {
  float: right;
  margin-top: 15px;
}

.home-content .promos {
  margin: 115px 0 95px 0;
  overflow: hidden;
}

.home-content .promos h3 {
  font-weight: 300;
  font-size: 39px;
  color: #121b40;
  margin-bottom: 20px;
}

.home-content .promos h3 span {
  font-weight: 800;
}

.home-content .promos .wrapper {
  width: 1370px;
}

.home-content .promos .block .box {
  width: 33%;
  float: left;
  position: relative;
  border: 1px solid #ccc;
  height: 230px;
  text-align: center;
  padding-top: 65px;
  box-sizing: border-box;
  margin: 0 10px;
}

.home-content .promos .block .box:last-child {
  border-right: 1px solid #ccc;
}

.home-content .promos .block .box .images {
  height: 70px;
  display: block;
  margin-bottom: 0;
  text-align: center;
}

.home-content .promos .block .box .images img {
  display: inline-block;
}

.home-content .promos .block .box p {
  font-size: 20px;
  color: #666666;
  margin-top: 25px;
  text-align: center;
}

.home-content .promos .block .slick-list {
  padding-bottom: 5px;
}

.home-content .promos .block .slick-arrow {
  position: absolute;
  width: 40px;
  height: 40px;
  font-size: 0;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: 1px solid #ccc;
  top: 0;
  bottom: 0;
  margin: auto;
  background: url("../images/material/arr_select.png") no-repeat center;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  cursor: pointer;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.home-content .promos .block .slick-arrow:hover {
  border-color: #312f94;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.home-content .promos .block .slick-arrow.slick-prev {
  left: -60px;
  right: auto;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

.home-content .promos .block .slick-arrow.slick-next {
  right: -60px;
  left: auto;
}

.ProdHome .box {
  position: relative;
  padding: 20px;
  text-align: center;
  transform: scale(0.9);
  -webkit-transform: scale(0.9);
  -moz-transform: scale(0.9);
  -ms-transform: scale(0.9);
  -o-transform: scale(0.9);
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
}

.ProdHome .box .dec .btn-std {
  visibility: hidden;
  opacity: 0;
}

.ProdHome .box h3 {
  color: #fff;
  font-size: 22px;
  padding: 25px 0 0px;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  margin-bottom: 10px;
  position: relative;
}

.ProdHome .box:hover {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  transform: scale(1.05);
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  -ms-transform: scale(1.05);
  -o-transform: scale(1.05);
}

.ProdHome .box:hover h3 {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  margin-top: -20px;
}

.ProdHome .box:hover .dec .btn-std {
  visibility: visible;
  opacity: 1;
}

.ProdHome .slick-arrow {
  position: absolute;
  width: 40px;
  height: 40px;
  font-size: 0;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: none;
  top: 0;
  bottom: 0;
  margin: auto;
  background: #fff url("../images/material/arr_select.png") no-repeat center;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  cursor: pointer;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.ProdHome .slick-arrow:hover {
  background-color: rgba(255, 255, 255, 0.6);
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.ProdHome .slick-arrow.slick-prev {
  left: -60px;
  right: auto;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

.ProdHome .slick-arrow.slick-next {
  right: -60px;
  left: auto;
}

.other_product {
  position: relative;
  overflow: hidden;
  padding: 80px 0 20px;
  background: url("../images/material/bg_other.jpg") no-repeat;
  background-size: cover;
}

.other_product .wrapper {
  width: 1366px;
}

.other_product .titles {
  font-weight: 300;
  font-size: 39px;
  color: #fff;
}

.other_product .top_title {
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  margin-bottom: 40px;
}

.other_product .top_title .titles {
  float: left;
}

.other_product .top_title .more {
  float: right;
  margin-top: 15px;
}

.other_product .ProdHome {
  padding: 20px 120px;
}

.other_product .ProdHome .box {
  padding: 20px 80px;
  transform: scale(0.95);
  -webkit-transform: scale(0.95);
  -moz-transform: scale(0.95);
  -ms-transform: scale(0.95);
  -o-transform: scale(0.95);
}

.other_product .ProdHome .box .dec {
  position: relative;
  margin-top: 0px;
}

.other_product .ProdHome .box .dec .btn-std {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin-top: 5px;
}

.other_product .ProdHome .box .dec p {
  font-size: 13px;
  color: #fff;
  font-weight: 300;
  line-height: 16px;
  margin-bottom: 0;
  overflow: hidden;
  height: 50px;
}

.other_product .ProdHome .box:hover {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  transform: scale(1.03);
  -webkit-transform: scale(1.03);
  -moz-transform: scale(1.03);
  -ms-transform: scale(1.03);
  -o-transform: scale(1.03);
}

.other_product .ProdHome .box:hover .dec p {
  opacity: 0;
}

.other_product .ProdHome .box:hover .dec .btn-std {
  visibility: visible;
  opacity: 1;
}

.other_product .ProdHome .slick-arrow.slick-prev {
  left: 0px;
  right: auto;
}

.other_product .ProdHome .slick-arrow.slick-next {
  right: 0px;
  left: auto;
}

.banner {
  padding: 130px 0 0;
  position: relative;
}

.banner + .page_news {
  padding-top: 100px;
}

.banner .capt {
  position: absolute;
  left: 0;
  right: 0;
  top: 62%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}

.banner .capt .wrapper {
  width: 1366px;
}

.banner .capt h1 {
  font-size: 60px;
  color: #fff;
  font-weight: 300;
  margin-bottom: 25px;
}

.banner .capt p {
  font-size: 18px;
  color: #fff;
  font-weight: 300;
}

.page_news {
  padding: 180px 0 100px;
  overflow: hidden;
}

.page_news .wrapper {
  width: 1366px;
}

.page_news .dt {
  display: block;
  font-size: 13px;
  color: #666;
  margin-bottom: 5px;
}

.page_news .top_title {
  margin-bottom: 40px;
}

.page_news .top_title h3 {
  float: left;
  font-size: 39px;
  font-weight: 300;
  color: #312f94;
}

.page_news .top_title:after {
  content: '';
  display: block;
  clear: both;
}

.page_news .top_title .fil select {
  font-size: 16px;
  width: 215px;
  padding-right: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
  background: url("../images/material/arr_select.png") no-repeat 93% center;
}

.page_news .top_title p {
  font-size: 18px;
  color: #666;
  float: left;
  width: 100%;
  display: block;
}

.page_news .top_title p span {
  text-transform: uppercase;
  color: #df3c3c;
}

.page_news .categ {
  background: #312f94;
  padding: 0 20px;
  line-height: 30px;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -ms-border-radius: 15px;
  -o-border-radius: 15px;
  display: inline-block;
  color: #fff;
  text-transform: uppercase;
  min-width: 100px;
  text-align: center;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.page_news.promo {
  min-height: 60vh;
  overflow: hidden;
}

.page_news.promo .listing_news .news .desc {
  text-align: center;
}

.page_news.promo .listing_news .news:hover {
  box-shadow: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  -ms-box-shadow: none;
  -o-box-shadow: none;
}

.page_news.detail .wrapper {
  width: 975px;
}

.page_news.detail .top_detail {
  margin-bottom: 40px;
}

.page_news.detail .top_detail .categ {
  margin-bottom: 10px;
}

.page_news.detail .top_detail .dt {
  margin-bottom: 15px;
}

.page_news.detail .top_detail h3 {
  font-size: 33px;
  color: #312f94;
  font-weight: 300;
  margin-bottom: 15px;
  line-height: 36px;
}

.page_news.detail .share {
  padding: 10px 0;
  border-top: 1px solid #eaeaea;
  border-bottom: 1px solid #eaeaea;
}

.page_news.detail .text p {
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 25px;
}

.page_news.detail .text img {
  display: block;
  margin: 35px 0;
}

.page_news.detail .text iframe {
  width: 100%;
  height: 450px;
  margin-bottom: 30px;
}

.page_news.detail .text ul, .page_news.detail .text ol {
  padding-left: 20px;
  margin-bottom: 20px;
}

.page_news.detail .text ul li, .page_news.detail .text ol li {
  font-size: 16px;
  line-height: 22px;
  margin-bottom: 6px;
}

.page_news.detail .text ul {
  list-style: disc;
}

.page_news.detail .text ol {
  list-style: decimal;
}

.page_news.result .top_title h3 {
  float: none;
}

.page_news.result .top_title p {
  float: none;
  margin-top: 25px;
}

.page_news.result .sec-result {
  margin-bottom: 70px;
}

.page_news.result .sec-result h2 {
  font-size: 26px;
  font-weight: 700;
  color: #312f94;
  margin-bottom: 30px;
}

.page_news.result .sec-result .ls-result .item {
  padding: 25px 70px;
  border: 1px solid #ccc;
  margin-bottom: 10px;
}

.page_news.result .sec-result .ls-result .item a {
  color: #111;
}

.page_news.result .sec-result .ls-result .item h4 {
  font-size: 18px;
  color: #111;
  margin-bottom: 8px;
}

.page_news.result .sec-result .ls-result .item h4 span {
  display: inline-block;
  padding: 4px 8px;
  margin: 0 3px;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
}

.page_news.result .sec-result .ls-result .item p {
  margin: 0;
  font-size: 16px;
  color: #111;
}

.page_news.result .sec-result .ls-result .item p span {
  margin: 0 2px;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  display: inline-block;
  vertical-align: middle;
}

.page_news.result .sec-result.product .ls-result .item h4 span {
  background: #d6d5ea;
  color: #312f94;
}

.page_news.result .sec-result.product .ls-result .item p span {
  color: #312f94;
}

.page_news.result .sec-result.artikel h2 {
  color: #f04c0b;
}

.page_news.result .sec-result.artikel .ls-result .item h4 span {
  background: #fcdbce;
  color: #f04c0b;
}

.page_news.result .sec-result.artikel .ls-result .item p span {
  color: #f04c0b;
}

.share label {
  display: inline-block;
  margin-right: 15px;
  font-size: 16px;
  color: #666;
}

.share ul {
  display: inline-block;
  vertical-align: middle;
}

.share ul li {
  display: inline-block;
  margin-right: 10px;
}

.listing_news {
  flex-flow: row wrap;
  /*-webkit-flex-flow: row wrap;*/
}

.listing_news .news {
  width: 23.8%;
  margin-right: 1.6%;
  margin-bottom: 25px;
  border: 1px solid #eaeaea;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  background: #fff;
}

.listing_news .news:nth-child(4n) {
  margin-right: 0;
}

.listing_news .news .img {
  position: relative;
  overflow: hidden;
}

.listing_news .news .img img {
  transition: all 0.2s ease-out;
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  -ms-transition: all 0.2s ease-out;
  -o-transition: all 0.2s ease-out;
  display: block;
}

.listing_news .news .categ {
  position: absolute;
  left: 10px;
  top: -15px;
}

.listing_news .news .desc {
  padding: 35px 20px 25px;
  position: relative;
  background: #fff;
}

.listing_news .news .desc h6 {
  font-size: 20px;
  line-height: 26px;
  color: #312f94;
  margin-bottom: 6px;
}

.listing_news .news .desc p {
  color: #666;
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 0;
}

.listing_news .news:hover {
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  box-shadow: 0 0 25px -2px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 0 25px -2px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 0 25px -2px rgba(0, 0, 0, 0.15);
  -ms-box-shadow: 0 0 25px -2px rgba(0, 0, 0, 0.15);
  -o-box-shadow: 0 0 25px -2px rgba(0, 0, 0, 0.15);
}

.listing_news .news:hover .img img {
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transform: scale(1.15);
  -webkit-transform: scale(1.15);
  -moz-transform: scale(1.15);
  -ms-transform: scale(1.15);
  -o-transform: scale(1.15);
}

.listing_news .news .dt {
  display: block;
  font-size: 13px;
  color: #666;
  margin-bottom: 5px;
}

.promo .listing_news .news .desc h6 {
  max-height: 52px;
  overflow: hidden;
}

.home_news {
  padding: 60px 0;
  background: #fafafa;
}

.home_news .wrapper {
  width: 1370px;
}

.home_news h3 {
  font-weight: 300;
  font-size: 39px;
  color: #121b40;
  margin-bottom: 30px;
  position: relative;
}

.home_news h3 span {
  font-weight: 800;
}

.home_news h3 a {
  position: absolute;
  right: 0;
  font-size: 16px;
  font-weight: 700;
  color: #312f94;
  text-transform: uppercase;
  margin-top: 10px;
}

.home_news .categ {
  background: #312f94;
  padding: 0 20px;
  line-height: 30px;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -ms-border-radius: 15px;
  -o-border-radius: 15px;
  display: inline-block;
  color: #fff;
  text-transform: uppercase;
  min-width: 100px;
  text-align: center;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.home_news .listing_news .news .desc p {
  display: none;
}

.pagging {
  text-align: right;
  margin-top: 40px;
}

.pagging a {
  display: inline-block;
  font-size: 16px;
  color: #666;
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  margin: 0 1px;
  transition: all 0.2s ease-out;
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  -ms-transition: all 0.2s ease-out;
  -o-transition: all 0.2s ease-out;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
}

.pagging a.prev {
  width: auto;
  padding-right: 20px;
  margin-right: 15px;
  border-right: 1px solid #eaeaea;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
}

.pagging a.prev.active, .pagging a.prev:hover {
  background: transparent;
  color: #666;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
}

.pagging a.next {
  width: auto;
  padding-left: 20px;
  margin-left: 15px;
  border-left: 1px solid #eaeaea;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
}

.pagging a.next.active, .pagging a.next:hover {
  background: transparent;
  color: #666;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
}

.pagging a.active, .pagging a:hover {
  background: #312f94;
  color: #fff;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
}

.pagging.center {
  text-align: center;
}

.popup {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: 100;
  display: none;
  overflow: auto;
}

.popup .inpopup {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 5% auto;
  background: transparent;
  width: 1000px;
}

.popup .inpopup h2 {
  font-size: 40px;
  line-height: 50px;
  margin-bottom: 20px;
}

.popup .inpopup h4 {
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.5px;
  color: #fff;
  margin-top: 50px;
}

.popup .inpopup iframe {
  width: 100%;
  height: 500px;
  margin-bottom: 30px;
}

.popup .inpopup p {
  font-size: 16px;
  line-height: 24px;
  width: 98%;
}

.popup .inpopup .tprofile {
  margin-bottom: 20px;
  display: block;
  font-style: italic;
  color: #fff;
}

.popup .inpopup .content-pop {
  max-height: 100%;
  padding: 0 0 20px;
}

.popup .inpopup .content-pop .wrapper {
  width: auto;
}

.popup .inpopup .content-pop .store img {
  width: 220px;
}

.popup .inpopup .close-pop {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: #fff;
  cursor: pointer;
  transition: 0.2s all ease-out;
  -webkit-transition: 0.2s all ease-out;
  -moz-transition: 0.2s all ease-out;
  -ms-transition: 0.2s all ease-out;
  -o-transition: 0.2s all ease-out;
  z-index: 99;
}

.popup .inpopup .close-pop span {
  display: block;
  width: 24px;
  height: 2px;
  background: #0b4694;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -1px 0 0 -12px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

.popup .inpopup .close-pop span:last-child {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

.popup .inpopup .close-pop:hover {
  opacity: 0.5;
}

.popup .inner-popup {
  background: #FFFFFF;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: 5% auto;
  padding: 96px 150px;
  width: 90%;
  max-width: 1029px;
  box-sizing: border-box;
}

.popup .inner-popup .close-popup {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: #fff;
  cursor: pointer;
  transition: 0.2s all ease-out;
  -webkit-transition: 0.2s all ease-out;
  -moz-transition: 0.2s all ease-out;
  -ms-transition: 0.2s all ease-out;
  -o-transition: 0.2s all ease-out;
  z-index: 99;
}

.popup .inner-popup .close-popup span {
  display: block;
  width: 24px;
  height: 2px;
  background: #0b4694;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -1px 0 0 -12px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

.popup .inner-popup .close-popup span:last-child {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

.popup .inner-popup .close-popup:hover {
  opacity: 0.5;
}

.popup .arrow-slide a {
  display: inline-block;
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  margin-top: -75px;
  transition: 0.2s all ease-out;
  -webkit-transition: 0.2s all ease-out;
  -moz-transition: 0.2s all ease-out;
  -ms-transition: 0.2s all ease-out;
  -o-transition: 0.2s all ease-out;
  /* &.prev{left:-25px;background: #fff url('../images/material/arr-left-blue.png') no-repeat center;}
            &.next{right:-25px;background: #fff url('../images/material/arr-right-blue.png') no-repeat center;} */
}

.popup .arrow-slide a:hover {
  background-color: rgba(255, 255, 255, 0.5);
}

.highlight {
  margin-top: 60px;
}

.highlight .tittle {
  margin-bottom: 40px;
  padding-bottom: 10px;
}

.highlight .tittle h3 {
  font-size: 28px;
  font-weight: bold;
}

.highlight .left {
  width: 48%;
  margin-right: 4%;
}

.highlight .left .box {
  float: left;
  width: 48%;
  margin-right: 3%;
  overflow: hidden;
  border: 1px solid #ddd;
  min-height: 0;
}

.highlight .left .box:last-child {
  margin-right: 0;
}

.highlight .left .box figure {
  height: 180px;
}

.highlight .left .box figure img {
  height: 100%;
  object-fit: cover;
}

.highlight .left .box .desc {
  padding: 20px 15px 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  height: 130px;
}

.highlight .left .box .desc h5 {
  font-size: 18px;
  color: #312f94;
  font-weight: 600;
  line-height: 22px;
  margin-bottom: 10px;
  height: 48px;
  overflow: hidden;
}

.highlight .left .box .desc p {
  font-size: 14px;
  line-height: 18px;
  height: 70px;
  overflow: hidden;
  display: none;
}

.highlight .left .box small {
  font-size: 14px;
  display: inline-block;
  padding: 0 15px;
  background: #312f94;
  color: #fff;
  line-height: 20px;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  position: absolute;
  top: -10px;
}

.highlight .left .publishdate {
  font-size: 14px;
  margin-bottom: 10px;
  display: block;
  line-height: 16px;
  max-height: 32px;
  overflow: hidden;
}

.highlight .right {
  width: 48%;
}

.highlight .slider-highlight .list figure {
  height: 312px;
}

.highlight .slider-highlight .list figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.highlight .slider-highlight .slick-arrow {
  position: absolute;
  left: -20px;
  top: 0;
  bottom: 0;
  border: none;
  font-size: 0;
  background: url(../images/material/arr_select.png) no-repeat center;
  width: 12px;
  height: 7px;
  z-index: 3;
  margin: auto 0;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  background-size: 100%;
}

.highlight .slider-highlight .slick-arrow.slick-next {
  left: auto;
  right: -20px;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}

.ls-produk {
  margin-bottom: 50px;
}

.ls-produk .box {
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  width: 23.5%;
  margin-right: 2%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  background: #f9f9f9;
  padding-bottom: 135px;
  position: relative;
  margin-bottom: 30px;
}

.ls-produk .box figure {
  padding: 40px 50px 0;
}

.ls-produk .box figure img {
  display: block;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  transform: scale(0.93);
  -webkit-transform: scale(0.93);
  -moz-transform: scale(0.93);
  -ms-transform: scale(0.93);
  -o-transform: scale(0.93);
}

.ls-produk .box .dec {
  border: 1px solid #eaeaea;
  padding: 22px 30px;
  background: rgba(255, 255, 255, 0.9);
  border-top: 1px solid transparent;
  text-align: center;
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 3;
  border-radius: 0 0 10px 10px;
  -webkit-border-radius: 0 0 10px 10px;
  -moz-border-radius: 0 0 10px 10px;
  -ms-border-radius: 0 0 10px 10px;
  -o-border-radius: 0 0 10px 10px;
}

.ls-produk .box .dec h3 {
  color: #121b40;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 15px;
  line-height: 22px;
}

.ls-produk .box .dec p {
  font-size: 13px;
  margin-bottom: 0;
  color: #333;
  opacity: 0.7;
  height: 40px;
  overflow: hidden;
}

.ls-produk .box .dec .btn-std {
  min-width: 0;
  max-width: 200px;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
}

.ls-produk .box .dec .hov_up {
  height: 0;
  overflow: hidden;
  padding-top: 0px;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
}

.ls-produk .box .dec a {
  width: 100%;
  display: block;
  margin: auto;
}

.ls-produk .box .dec .see {
  margin-top: 20px;
}

.ls-produk .box:nth-child(4n) {
  margin-right: 0;
}

.ls-produk .box:hover {
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.15);
  -ms-box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.15);
  -o-box-shadow: 0 0 20px 0px rgba(0, 0, 0, 0.15);
}

.ls-produk .box:hover figure img {
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  transform: scale(1.03);
  -webkit-transform: scale(1.03);
  -moz-transform: scale(1.03);
  -ms-transform: scale(1.03);
  -o-transform: scale(1.03);
}

.ls-produk .box:hover .dec {
  background: #fff;
  border-color: #eaeaea;
}

.ls-produk .box:hover .dec .hov_up {
  height: 76px;
  opacity: 1;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.3s;
  -moz-transition: all ease-out 0.3s;
  -ms-transition: all ease-out 0.3s;
  -o-transition: all ease-out 0.3s;
  padding-top: 20px;
}

.detail_pg {
  justify-content: space-between;
}

.detail_pg .top_title {
  margin-bottom: 20px;
}

.detail_pg p {
  font-size: 16px;
  line-height: 24px;
  color: #111;
}

.detail_pg .lf_detail {
  width: 49%;
  padding: 0 70px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.detail_pg .rh_detail {
  width: 41.5%;
}

.slideBig {
  padding-top: 30px;
}

.slideBig .slick-arrow {
  position: absolute;
  width: 40px;
  height: 40px;
  font-size: 0;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: 1px solid #ccc;
  top: 0;
  bottom: 0;
  margin: auto;
  background: url("../images/material/arr_select.png") no-repeat center;
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  cursor: pointer;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.slideBig .slick-arrow:hover {
  border-color: #312f94;
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.slideBig .slick-arrow.slick-prev {
  left: -70px;
  right: auto;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

.slideBig .slick-arrow.slick-next {
  right: -70px;
  left: auto;
}

.acordion {
  margin-top: 30px;
}

.acordion .acc {
  border-bottom: 1px solid #eaeaea;
}

.acordion .acc:first-child {
  border-top: 1px solid #eaeaea;
}

.acordion .acc.act .ttl_acc h4 {
  color: #df6e3c;
}

.acordion .acc.act .ttl_acc h4:after {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.acordion .ttl_acc {
  padding: 15px 0;
}

.acordion .ttl_acc h4 {
  font-size: 20px;
  color: #333;
  font-weight: 700;
  padding-right: 30px;
  position: relative;
  cursor: pointer;
}

.acordion .ttl_acc h4:after {
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  content: "";
  height: 10px;
  width: 16px;
  position: absolute;
  display: block;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 10px;
  background: url("../images/material/ic_acc.png") no-repeat;
}

.acordion .dec_acc {
  font-size: 16px;
  line-height: 24px;
  color: #111;
  display: none;
  padding: 5px 10px 20px;
}

.acordion .dec_acc p {
  font-size: 16px;
  line-height: 24px;
  color: #111;
}

.acordion .dec_acc ul, .acordion .dec_acc ol {
  padding-left: 20px;
}

.acordion .dec_acc ul li, .acordion .dec_acc ol li {
  font-size: 16px;
  line-height: 24px;
  color: #111;
}

.acordion .dec_acc ul {
  list-style: disc;
}

.acordion .dec_acc ol {
  list-style: decimal;
}

.acordion .dec_acc .vids_wrp {
  height: auto;
  position: relative;
}

.acordion .dec_acc .vids_wrp .thumb_vid {
  position: relative;
}

.acordion .dec_acc .vids_wrp .thumb_vid span {
  padding-left: 75px;
  position: absolute;
  left: 30px;
  bottom: 15px;
  line-height: 60px;
  font-size: 18px;
  color: #fff;
  font-weight: 400;
  z-index: 6;
  cursor: pointer;
}

.acordion .dec_acc .vids_wrp .thumb_vid span:after {
  content: "";
  width: 60px;
  height: 60px;
  border: 2px solid #fff;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  background: url("../images/material/play.png") no-repeat 55% center;
  background-size: 18px;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.acordion .dec_acc .vids_wrp .thumb_vid span:hover:after {
  transform: scale(0.87);
  -webkit-transform: scale(0.87);
  -moz-transform: scale(0.87);
  -ms-transform: scale(0.87);
  -o-transform: scale(0.87);
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.acordion .dec_acc .vids_wrp .thumb_vid img {
  display: block;
  width: 100%;
}

.acordion .dec_acc .vids {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
  overflow: hidden;
  height: 100%;
  display: none;
  z-index: 7;
}

.acordion .dec_acc iframe {
  height: 100%;
}

.btm_sec {
  margin-top: 40px;
}

.btm_sec .btn_round {
  float: left;
}

.btm_sec .share {
  float: right;
}

.btm_sec .share ul li a:hover {
  opacity: 0.82;
}

.pop_btn {
  margin-bottom: 20px;
  margin-top: 30px;
}

.pop_btn .btn_round {
  float: none;
  display: inline-block;
}

.title-header {
  font-size: 69px;
  font-weight: 300;
  margin-bottom: 30px;
}

.tab-warranty {
  margin-bottom: 90px;
}

.tab-warranty .tab-warranty--button {
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin-bottom: 10px;
}

.tab-warranty .tab-warranty--button .tab-button--list {
  border: 1px solid #C1C1C1;
  //border-radius: 50px;
  height: 100px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  line-height: 34px;
  font-weight: 500;
  width: 700px;
  margin-right: 30px;
  padding: 0 30px;
  color: #ed207b;
}

.tab-warranty .tab-warranty--button .tab-button--list:last-child {
  margin-right: 0;
}

.tab-warranty .tab-warranty--button .tab-button--list:hover, .tab-warranty .tab-warranty--button .tab-button--list.active {
  color: #fff;
  background: #ed207b;
}

.tab-warranty .tab-warranty--content {
  background: #FAFAFA;
}

.tab-warranty .tab-warranty--content .tab-content--list {
  display: none;
  padding: 70px 195px;
}

.tab-warranty .tab-warranty--content .tab-content--list h4 {
  font-size: 23px;
  line-height: 34px;
  font-weight: 300;
  color: #121B40;
  width: 530px;
  margin: 0 auto 30px;
}

.tab-warranty .tab-warranty--content .tab-content--list.active {
  display: block;
}

.box-form label {
  font-size: 16px;
  font-weight: 500;
  color: #121B40;
  margin-bottom: 10px;
  display: block;
}

.box-form input[type='email'],
.box-form input[type='number'],
.box-form input[type='password'],
.box-form input[type='search'],
.box-form input[type='tel'],
.box-form input[type='text'],
.box-form input[type='url'],
.box-form textarea,
.box-form select {
  padding: 0 30px;
  height: 60px;
  font-size: 16px;
  color: #AAAAAA;
  width: 100%;
  box-sizing: border-box;
}

.box-form input[type='email'].error,
.box-form input[type='number'].error,
.box-form input[type='password'].error,
.box-form input[type='search'].error,
.box-form input[type='tel'].error,
.box-form input[type='text'].error,
.box-form input[type='url'].error,
.box-form textarea.error,
.box-form select.error {
  border-color: #ED0000;
}

.box-form select {
  background: #fff url("../images/material/arrow-select.svg") no-repeat center right;
}

.box-form textarea {
  padding: 20px 30px;
  height: 150px;
  resize: none;
}

.box-form .t-red {
  color: red;
}

.box-form .textdate {
  background: #fff url("../images/material/calendar-text.svg") no-repeat center right;
}

.box-form .file-input {
  background: #fff url("../images/material/icon-upload.svg") no-repeat center right;
  border: 1px solid #CCCCCC;
  font-size: 16px;
  color: #AAAAAA;
  font-size: 16px;
  height: 60px !important;
  line-height: 58px;
  padding: 0 60px 0 30px;
  box-sizing: border-box;
  margin-right: 26px;
  margin-bottom: 10px;
}

.box-form .file-input span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
}

.box-form .file-input .note-text.error {
  position: absolute;
  top: 100%;
  line-height: 1.3;
  left: 0;
}

.box-form .v-middle {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.box-form .notes {
  font-size: 13px;
  color: #999999;
}

.box-form .checkbox-custom {
  position: relative;
  padding-left: 30px;
  cursor: pointer;
  color: #AAAAAA;
}

.box-form .checkbox-custom a {
  color: #727272;
}

.box-form .checkbox-custom input[type=checkbox] {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.box-form .checkbox-custom input[type=checkbox]:checked ~ i:before {
  opacity: 1;
}

.box-form .checkbox-custom i {
  position: absolute;
  top: 0;
  left: 0;
  width: 15px;
  height: 15px;
  border: 1px solid #121B40;
}

.box-form .checkbox-custom i:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 7px;
  height: 7px;
  margin: auto;
  background: #121B40;
  opacity: 0;
}

.box-form .checkbox-custom .note-text.error {
  position: absolute;
  top: 100%;
}

.box-form .note-text {
  font-size: 13px;
  margin-top: 6px;
  display: block;
}

.box-form .note-text.error {
  color: #ED0000;
}

.button {
  font-size: 16px;
  background: #FB4A04;
  color: #fff;
  line-height: 60px;
  height: 60px;
  padding: 0 30px;
  border-radius: 30px;
  display: block;
  width: 100%;
  font-weight: 700;
  cursor: pointer;
  transition: .2s all ease-out;
  border: none;
  box-sizing: border-box;
}

.button:hover {
  background: #ff9064;
}

.row {
  display: flex;
  padding: 0;
  flex-direction: row;
  margin-left: -1.0rem;
  width: calc(100% + 2.0rem);
  flex-wrap: wrap;
}

.row .column {
  display: block;
  flex: 1 1 auto;
  margin-left: 0;
  margin-bottom: 30px;
  max-width: 100%;
  width: 100%;
  padding: 0 1.0rem;
  box-sizing: border-box;
}

.row .column.column-50 {
  flex-basis: 50%;
  max-width: 50%;
}

.std-content h4 {
  font-size: 23px;
  line-height: 34px;
  font-weight: 300;
  color: #121B40;
  width: 100%;
  max-width: 530px;
  margin: 0 auto 30px;
}

.std-content ol, .std-content ul, .std-content p {
  font-size: 16px;
  color: #AAAAAA;
  line-height: 20px;
}

.std-content ol li, .std-content ul li {
  padding-left: 30px;
  position: relative;
  margin-bottom: 15px;
}

.std-content ol {
  counter-reset: my-awesome-counter;
}

.std-content ol li {
  counter-increment: my-awesome-counter;
}

.std-content ol li:before {
  content: counter(my-awesome-counter) ". ";
  position: absolute;
  top: 0;
  left: 0;
}

.std-content ul li:before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #AAAAAA;
  position: absolute;
  top: 7px;
  left: 3px;
}

.thankyou {
  background: #FAFAFA;
  padding: 99px 200px;
  text-align: center;
  margin-bottom: 100px;
}

.thankyou h1 {
  font-size: 69px;
  font-weight: 300;
  color: #121B40;
  margin: 20px 0;
}

.thankyou p {
  font-size: 19px;
  line-height: 34px;
  font-weight: 300;
  color: #121B40;
  margin-bottom: 60px;
}

/* footer
----------------------------------------------------------------------------------------------*/
.racket-package {
  position: fixed;
  right: 25px;
  bottom: 80px;
  z-index: 10;
  border-radius: 30px 0 30px 30px;
  background-color: #F14E0F;
  padding: 13px 20px;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  display: flex;
  align-items: center;
  transition: .2s all ease-out;
}

.racket-package img {
  margin-right: 10px;
}

.racket-package span {
  display: inline-block;
  width: 60px;
}

.racket-package:hover {
  color: #fff;
  transform: scale(0.95);
}

footer {
  height: 80px;
  background: #ed207b;
}

footer .wrapper {
  width: 1700px;
}

footer .logo {
  width: 100px;
  margin-top: 30px;
}

footer nav {
  margin-left: 100px;
  margin-top: 65px;
}

footer nav ul li {
  display: inline-block;
  margin-right: 45px;
}

footer nav ul li a {
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 1px;
}

footer nav ul li a:hover {
  color: #fff;
}

footer .socmed {
  margin-top: 55px;
}

footer .socmed ul li {
  display: inline-block;
  color: #fff;
  font-family: 'Open Sans';
  font-size: 16px;
  margin-right: 20px;
}

footer .socmed ul li span {
  position: relative;
  top: -15px;
}

footer .socmed ul li a .images {
  background: #ed207b;
  width: 25px;
  height: 25px;
  position: relative;
  border-radius: 100%;
  border:2px solid #fff;
}

footer .socmed ul li a .images img {
  width: 15px;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}

.wrap-popup {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: auto;
  z-index: 99999;
}

.wrap-popup .overlay-pop {
  background: rgba(0, 0, 0, 0.7);
  height: auto;
  position: fixed;
  z-index: 1;
}

.wrap-popup .box-popup {
  max-width: 80%;
  margin: 8% auto;
  position: relative;
  z-index: 2;
  background: #FFF;
  width: 600px;
  padding: 40px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.wrap-popup .box-popup h4 {
  font-size: 24px;
  font-weight: bold;
  color: #666;
  margin: 0 0 25px 0;
}

.wrap-popup .box-popup ul li {
  margin: 0 0 10px;
  padding: 0 0 0 20px;
  font-size: 14px;
  line-height: 18px;
  counter-increment: counter;
  position: relative;
}

.wrap-popup .box-popup ul li:before {
  content: counter(counter);
  position: absolute;
  left: 0;
  top: 1px;
  font-weight: 500;
}

.wrap-popup .box-popup .close {
  position: absolute;
  width: 30px;
  height: 30px;
  top: -30px;
  right: 0px;
  background: #0076a3;
  text-indent: -9999px;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

.wrap-popup .box-popup .close:after {
  content: "";
  width: 30px;
  height: 30px;
  background: url(../images/material/close-pop.png) no-repeat center center;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
  background-size: 65%;
}

.wrap-popup .box-popup .close:hover {
  background: #eee;
}

.wrap-popup .box-popup .close:hover:after {
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

#popup-cart {
  display: none;
}

#popup-cart .box-popup {
  margin: 12% auto;
  width: 740px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  text-align: center;
}

#popup-cart .box-popup .close {
  background: #312f94;
  right: -30px;
  top: 20px;
}

#popup-cart .box-popup h2 {
  font-size: 30px;
  margin-bottom: 15px;
}

#popup-cart .box-popup p {
  font-size: 14px;
  width: 70%;
  margin: 0 auto;
}

#popup-cart .box-popup p.ket {
  text-align: left;
  font-size: 11px;
  margin: 2px 0 0;
  color: #999;
  line-height: 12px;
}

#popup-cart .box-popup .list-site {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  margin-top: 30px;
}

#popup-cart .box-popup .list-site a {
  width: 32.333%;
  margin-right: 1.5%;
  display: block;
  padding: 40px 15px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #d8d8d8;
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
  margin-bottom: 10px;
}

#popup-cart .box-popup .list-site a:nth-child(3n) {
  margin-right: 0;
}

#popup-cart .box-popup .list-site a:hover {
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
  -ms-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
  -o-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.paging-article {
  font-family: "Lato";
}

.paging-article .button {
  background: #312F94;
  color: #FFF;
  font-size: 18px;
  padding: 0 60px 0 30px;
  height: 50px;
  line-height: 50px;
  display: inline-block;
  position: relative;
  border-radius: 30px;
  margin: 0 0 25px 0;
}

.paging-article .button:after {
  content: "";
  width: 10px;
  height: 12px;
  background: url(../images/material/arrow-button.svg) no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 30px;
  margin: auto;
  transition: 0.2s ease-out all;
}

.paging-article .button:hover {
  background: #f14e0f;
}

.paging-article .button:hover:after {
  right: 25px;
}

.paging-article .list-page {
  display: flex;
  font-size: 18px;
  align-items: center;
}

.paging-article .list-page span {
  margin-right: 15px;
}

.paging-article .list-page a {
  display: inline-block;
  margin-right: 10px;
  width: 40px;
  height: 40px;
  border-radius: 50px;
  text-align: center;
  line-height: 40px;
  color: #999;
}

.paging-article .list-page a:hover, .paging-article .list-page a.active {
  background: #312F94;
  color: #FFF;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwic2Fzcy1saWIuc2NzcyIsImJvdXJib24vX2JvdXJib24uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwiYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCJib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsImJvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsImJvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsImJvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsImJvdXJib24vYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsImJvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgQ29tcGFueSAgICA6IFBUIFdlYiBBcmNoaXRlY3QgVGVjaG5vbG9neSAtIHdlYmFycS5jb21cclxuICAgIERvY3VtZW50ICAgOiBTdHlsZXNoZWV0XHJcbiAgICBBdXRob3IgICAgIDogWW91ciBOYW1lXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5AaW1wb3J0IFwic2Fzcy1saWJcIjtcclxuXHJcbmJvZHkge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xyXG59XHJcbmZpZ3VyZXtcclxuICAgIG1hcmdpbjogMDsgcGFkZGluZzogMDtcclxuICAgIGltZ3t2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO31cclxufVxyXG5pbWd7IGJvcmRlcjowOyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH1cclxucCB7XHJcbiAgICBtYXJnaW46IDFweCAwIDE1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjBweDtcclxufVxyXG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRDhEOEQ4O1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5pbnB1dFt0eXBlPWNoZWNrYm94XSwgaW5wdXRbdHlwZT1yYWRpb10ge1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XHJcbiAgICBib3JkZXItbGVmdC1zdHlsZTogbm9uZTtcclxufVxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uICB7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgb3BhY2l0eTogMDtcclxufVxyXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXHJcbmlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuaDEgeyBmb250LXNpemU6IDY5cHg7IH1cclxuaDIgeyBmb250LXNpemU6IDI4cHg7IH1cclxuaDMgeyBmb250LXNpemU6IDI0cHg7IH1cclxuaDQgeyBmb250LXNpemU6IDIwcHg7IH1cclxuaDUgeyBmb250LXNpemU6IDE2cHg7IH1cclxuaDYgeyBmb250LXNpemU6IDE0cHg7IH1cclxuLyogc3RydWN0dXJlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5zZWN0aW9uIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbi53cmFwcGVyIHt3aWR0aDogMTE3MHB4O21hcmdpbjogMCBhdXRvO31cclxuLmFmdGVyX2NsZWFyOmFmdGVyLC53cmFwcGVyOmFmdGVyLHNlY3Rpb246YWZ0ZXJ7Y2xlYXI6Ym90aDtkaXNwbGF5OiBibG9jaztjb250ZW50OlwiIFwifVxyXG4uYmVmb3JlX2NsZWFyOmJlZm9yZXtjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO2NvbnRlbnQ6XCIgXCJ9XHJcbi5mbGV4IHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuLmZsZXgtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxufVxyXG4udHJhbnNpdGlvbkFsbCB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4ycyk7fVxyXG4udHJhbnNpdGlvbkNvbG9yIHtAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIGVhc2Utb3V0IDAuMnMpO31cclxuLnRyaWdnZXJ7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IG1hcmdpbjogYXV0bzsgaGVpZ2h0OiAuNXB4OyB9XHJcbi5idG4tYmx1ZXt9XHJcbi5jZW50ZXJ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAuYnRuLXByb2R7XHJcbiAgICAgICAgcGFkZGluZzogMCAyMHB4OyBsaW5lLWhlaWdodDogNDBweDsgIGZvbnQtc2l6ZTogMThweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICNmZmY7YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjMjIyMTY3LCAjNTc1NWRhKTsgYm9yZGVyLXJhZGl1czogNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgfVxyXG59XHJcbi5tb3JlIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICNmY2VmMjU7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgY29sb3I6ICNmY2VmMjU7XHJcbiAgICB9XHJcbn1cclxuLmJ0bi1zdGQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7IHBhZGRpbmc6IDAgMjVweDsgbWluLXdpZHRoOiAyMDBweDsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNzAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sICMyMjIxNjcsICMzMTJmOTQpOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDVweCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTtiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sICMzMTJmOTQsICMyMjIxNjcpO1xyXG4gICAgfVxyXG59XHJcbi5idG5fcm91bmQge1xyXG4gICAgY29sb3I6ICNmZmY7IGxpbmUtaGVpZ2h0OiA0MHB4OyBiYWNrZ3JvdW5kOiAjZjU3MDNjOyBwYWRkaW5nOiAwIDM1cHg7IGZsb2F0OiBsZWZ0OyBmb250LXNpemU6IDE2cHg7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygyMHB4KTsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDogNjAwO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpO1xyXG4gICAgJjphZnRlciB7fVxyXG4gICAgJjpob3ZlciB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpOyBiYWNrZ3JvdW5kOiAjZjE0ZTBmOyBjb2xvcjogI2ZmZjsgfVxyXG59XHJcblxyXG4uc2VlIHtcclxuICAgIGNvbG9yOiAjZGY2ZTNjOyBmb250LXNpemU6IDE0cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcwMDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IG1hcmdpbi10b3A6IDIwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICY6aG92ZXIge2NvbG9yOiAjZjE0ZTBmO31cclxufVxyXG5cclxuLyogaGVhZGVyXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5oZWFkZXJ7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBkaXNwbGF5OiBibG9jazsgei1pbmRleDogOTsgQGluY2x1ZGUgdHJhbnNpdGlvbihwYWRkaW5nIDAuM3MgZWFzZS1vdXQpOyBiYWNrZ3JvdW5kOiAjMzEyZjk0OyBAZXh0ZW5kIC5hZnRlcl9jbGVhcjsgaGVpZ2h0OiAxMzBweDsgcGFkZGluZzogNXB4IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHRvcDogMDtcclxuICAgIC53cmFwcGVye1xyXG4gICAgICAgIHdpZHRoOiAxNjMwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAubG9nb3tcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAzMzBweDttYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FydCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmOyBsaW5lLWhlaWdodDogNDBweDsgYmFja2dyb3VuZDogI2Y1NzAzYzsgcGFkZGluZzogMCAyMHB4OyBmbG9hdDogbGVmdDsgZm9udC1zaXplOiAxNnB4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMjBweCk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4OyBtYXJnaW4tdG9wOiAtMTBweDsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpO1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtjb250ZW50OlwiXCI7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDIwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTVweDsgdG9wOiAwOyBib3R0b206IDA7IG1hcmdpbjogYXV0bzsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWNfY2FydC5wbmcnKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogMTAwJTt9XHJcbiAgICAgICAgICAgICY6aG92ZXIge0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMjVzKTsgYmFja2dyb3VuZDogI2YxNGUwZjsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucmhfaGVhZHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogYXV0bzsgcGFkZGluZy10b3A6IDUwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgIC5uYXZpZ2FzaXsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB9XHJcbiAgICAgICAgICAgIG5hdntcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgdWwgbGl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICBheyBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxNnB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNyY193cnAge1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7bWFyZ2luLXRvcDogLTEwcHg7IG1hcmdpbi1yaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgIC5pY19zcmMge3dpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2ljb19zcmMucG5nJykgbm8tcmVwZWF0OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGN1cnNvcjogcG9pbnRlcjsgbWFyZ2luLXRvcDogMTBweDsgZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAmLm1ibCB7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNyYyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzIwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtjb2xvcjogI2ExYTFhMTt9XHJcbiAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7d2lkdGg6IDEwMCU7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcGFkZGluZzogMCA2NXB4IDAgMjVweDsgbGluZS1oZWlnaHQ6IDQwcHg7IGZvbnQtc2l6ZTogMTVweDsgYm9yZGVyOiBub25lOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoOHB4IDEwcHggMTBweCA4cHgpO31cclxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgYmFja2dyb3VuZDogI2Y1NzAzYyB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY29fc3JjLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7IGJvcmRlcjogbm9uZTsgZm9udC1zaXplOiAwO0BpbmNsdWRlIGJvcmRlclJhZGl1cygwIDhweCA4cHggMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTsgYmFja2dyb3VuZC1jb2xvcjojZjE0ZTBmO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc29jbWVke1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogLTVweDsgaGVpZ2h0OiAyNXB4OyB3aWR0aDogM3B4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyAgfVxyXG4gICAgICAgICAgICAgICAgdWwgbGl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYnVyZ19uYXYge2Zsb2F0OiBub25lOyBkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgLm5hdi1vdmVybGF5IHtkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyogbWlkZGxlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4uc3BhY2UtaGVhZGVye1xyXG4gICAgcGFkZGluZy10b3A6IDIxMHB4O1xyXG59XHJcbi5ob21lLWNvbnRlbnR7XHJcbiAgICBtYXJnaW4tdG9wOiAxMzBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC5zbGljay10cmFjayB7IGhlaWdodDogMTAwJTsgfVxyXG4gICAgLnNsaWNrLWxpc3QgeyBoZWlnaHQ6IDEwMCU7IFxyXG4gICAgICAgIC5pdGVtIHsgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBmaWd1cmUgeyBoZWlnaHQ6IGF1dG87IFxyXG4gICAgICAgICAgICAgICAgaW1nIHsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogYXV0bzsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNsaWNrLWRvdHMgeyBib3R0b206IDcwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyBsZWZ0OiAwOyBtYXJnaW46IDAgYXV0bzsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGxpIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDAgNXB4O1xyXG4gICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b24geyBiYWNrZ3JvdW5kOiAjZmZmOyBvcGFjaXR5OiAxOyB9XHJcbiAgICAgICAgICAgIGJ1dHRvbiB7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNTAlOyBoZWlnaHQ6IDEycHg7IG9wYWNpdHk6IC43OyBwYWRkaW5nOiAwOyB0ZXh0LWluZGVudDogLTk5OTk5cHg7IHdpZHRoOiAxMnB4OyB9XHJcbiAgICAgICAgICAgICY6b25seS1jaGlsZCB7IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAub3BlbmluZ3tcclxuICAgICAgICBAZXh0ZW5kIC5hZnRlcl9jbGVhcjtcclxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgICAgICBkaXNwbGF5OiAtbW96LWJveDtcclxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcclxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAtd2Via2l0LWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgLnNsaWRlcntcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogNzAlO1xyXG4gICAgICAgICAgICAuY292ZXJ7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBpbWd7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBvYmplY3QtZml0OiBjb3Zlcjt9XHJcbiAgICAgICAgICAgICAgICAvLyAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgIC8vICAgICBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2JnLW9wZW5pbmctbGVmdC5wbmcpIG5vLXJlcGVhdDsgdG9wOiAwOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICAvLyAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctb3BlbmluZy1yaWdodC5wbmcpIG5vLXJlcGVhdDsgYm90dG9tOiAwMDBweDsgcmlnaHQ6IDA7IGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgICYuYmcge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyICFpbXBvcnRhbnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmxpbmt7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogOTBweDsgbGVmdDogMjUwcHg7XHJcbiAgICAgICAgICAgICAgICBheyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAyNXB4OyB9XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogOTBweDsgaGVpZ2h0OiA5MHB4OyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL3BsYXkucG5nKSBuby1yZXBlYXQgY2VudGVyOyBib3JkZXI6IDFweCBzb2xpZCAjZmZmOyBib3JkZXItcmFkaXVzOiAxMDAlOyB0b3A6IC0zNXB4OyBsZWZ0OiAtMTEwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9tb297XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZDogI2M3YzdkMzsgd2lkdGg6IDMwJTsgaGVpZ2h0OiBhdXRvOyAgYmFja2dyb3VuZC1zaXplOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAuaW1hZ2Vze1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogODAlOyBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgICAgIGltZ3sgbWFyZ2luLXRvcDogMjBweDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgaDN7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnOyBmb250LXNpemU6IDMwcHg7IGNvbG9yOiAjMjYyZTcxOyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyAvKnRleHQtc2hhZG93OiAtNHB4IDFweCAycHggcmdiYSgxNDcsIDE1NCwgMTUwLCAwLjM2KTsqL1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW57IGZvbnQtc2l6ZTogNjVweDsgZm9udC13ZWlnaHQ6IDkwMDsgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDR7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAyOHB4OyBjb2xvcjogI0ZGRjsgbWFyZ2luLXRvcDogNXB4Oy8qIHRleHQtc2hhZG93OiAtNHB4IDFweCAycHggcmdiYSgxNDcsIDE1NCwgMTUwLCAwLjM2KTsqL1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDUge2ZvbnQtc2l6ZTogMjRweDsgY29sb3I6ICM2OTY5Njk7IG1hcmdpbi1ib3R0b206IDIwcHg7fVxyXG4gICAgICAgICAgICAgICAgaDIge2ZvbnQtc2l6ZTogMzhweDsgY29sb3I6ICM2OTY5Njk7IGZvbnQtd2VpZ2h0OiA3MDA7IG1hcmdpbi1ib3R0b206IDMwcHg7fVxyXG4gICAgICAgICAgICAgICAgLmJ0bntcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDIzcHg7IHBhZGRpbmc6IDI1cHggNjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjMjIyMTY3LCAjNTc1NWRhKTsgYm9yZGVyLXJhZGl1czogNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnByb2R1a3tcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjMTQxYzQxOyAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAxMjBweCAwIDc1cHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgLy8gJjpiZWZvcmV7XHJcbiAgICAgICAgLy8gICAgIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctcHJvZHVrLWxlZnQucG5nKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBsZWZ0OyBsZWZ0OiAwOyBib3R0b206IDA7ICBiYWNrZ3JvdW5kLXNpemU6IDUwJTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gJjphZnRlcntcclxuICAgICAgICAvLyAgICAgY29udGVudDpcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy1wcm9kdWstcmlnaHQucG5nKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgdG9wOiAwOyByaWdodDogMDsgei1pbmRleDogMTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLndyYXBwZXIge3otaW5kZXg6IDI7IHBvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbiAgICAgICAgLnRpdGxlc3tmb250LXdlaWdodDogMzAwOyBmb250LXNpemU6IDM5cHg7IGNvbG9yOiAjZmZmO31cclxuICAgICAgICAudG9wX3RpdGxlIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IHBhZGRpbmctYm90dG9tOiAyMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpOyBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuICAgICAgICAgICAgLnRpdGxlcyB7ZmxvYXQ6IGxlZnQ7fVxyXG4gICAgICAgICAgICAubW9yZSB7ZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiAxNXB4O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucHJvbW9ze1xyXG4gICAgICAgIG1hcmdpbjogMTE1cHggMCA5NXB4IDA7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgaDN7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogMzlweDsgIGNvbG9yOiAjMTIxYjQwOyAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgc3BhbnsgZm9udC13ZWlnaHQ6IDgwMDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAud3JhcHBlcnsgd2lkdGg6IDEzNzBweDsgfVxyXG4gICAgICAgIC5ibG9ja3tcclxuICAgICAgICAgICAgLmJveHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMyU7IGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7ICBoZWlnaHQ6IDIzMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmctdG9wOiA2NXB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7IH1cclxuICAgICAgICAgICAgICAgIC5pbWFnZXN7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMDsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHB7IGZvbnQtc2l6ZTogMjBweDsgY29sb3I6ICM2NjY2NjY7IG1hcmdpbi10b3A6IDI1cHg7IHRleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNsaWNrLWxpc3Qge3BhZGRpbmctYm90dG9tOiA1cHg7fVxyXG4gICAgICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyBmb250LXNpemU6IDA7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpOyBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnJfc2VsZWN0LnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC05MGRlZykpOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7Ym9yZGVyLWNvbG9yOiAjMzEyZjk0O0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO31cclxuICAgICAgICAgICAgICAgICYuc2xpY2stcHJldiB7IGxlZnQ6IC02MHB4OyByaWdodDogYXV0bztAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDkwZGVnKSk7IH1cclxuICAgICAgICAgICAgICAgICYuc2xpY2stbmV4dCB7cmlnaHQ6IC02MHB4OyBsZWZ0OiBhdXRvO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLlByb2RIb21lIHtcclxuICAgIC5ib3gge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC45KSk7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuM3MpO1xyXG4gICAgICAgIGZpZ3VyZSB7fVxyXG4gICAgICAgIC5kZWMge1xyXG4gICAgICAgICAgICAuYnRuLXN0ZCB7dmlzaWJpbGl0eTogaGlkZGVuOyBvcGFjaXR5OiAwO31cclxuICAgICAgICB9XHJcbiAgICAgICAgaDMge2NvbG9yOiAjZmZmOyBmb250LXNpemU6IDIycHg7IHBhZGRpbmc6IDI1cHggMCAwcHg7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTt9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTsgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuMDUpKTtcclxuICAgICAgICAgICAgIGgzIHtAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTsgbWFyZ2luLXRvcDogLTIwcHg7fVxyXG4gICAgICAgICAgICAgLmRlYyB7XHJcbiAgICAgICAgICAgICAgICAuYnRuLXN0ZCB7dmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgZm9udC1zaXplOiAwOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTsgYm9yZGVyOiBub25lOyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9zZWxlY3QucG5nJykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC05MGRlZykpOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICY6aG92ZXIge2JhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjJzKTt9XHJcbiAgICAgICAgJi5zbGljay1wcmV2IHsgbGVmdDogLTYwcHg7IHJpZ2h0OiBhdXRvO0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTsgfVxyXG4gICAgICAgICYuc2xpY2stbmV4dCB7cmlnaHQ6IC02MHB4OyBsZWZ0OiBhdXRvO31cclxuICAgIH1cclxufVxyXG4ub3RoZXJfcHJvZHVjdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6IDgwcHggMCAyMHB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9iZ19vdGhlci5qcGcnKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIC53cmFwcGVyIHt3aWR0aDogMTM2NnB4O31cclxuICAgIC50aXRsZXN7Zm9udC13ZWlnaHQ6IDMwMDsgZm9udC1zaXplOiAzOXB4OyBjb2xvcjogI2ZmZjt9XHJcbiAgICAudG9wX3RpdGxlIHtcclxuICAgICAgICBAZXh0ZW5kIC5hZnRlcl9jbGVhcjsgcGFkZGluZy1ib3R0b206IDIwcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7IG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgLnRpdGxlcyB7ZmxvYXQ6IGxlZnQ7fVxyXG4gICAgICAgIC5tb3JlIHtmbG9hdDogcmlnaHQ7IG1hcmdpbi10b3A6IDE1cHg7fVxyXG4gICAgfVxyXG4gICAgLlByb2RIb21lIHtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDEyMHB4O1xyXG4gICAgICAgIC5ib3gge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDgwcHg7QGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOTUpKTtcclxuICAgICAgICAgICAgLmRlYyB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi10b3A6IDBweDtcclxuICAgICAgICAgICAgICAgIC5idG4tc3RkIHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbi10b3A6IDVweDt9XHJcbiAgICAgICAgICAgICAgICBwIHtmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogMzAwOyBsaW5lLWhlaWdodDogMTZweDsgbWFyZ2luLWJvdHRvbTogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiA1MHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7IEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjAzKSk7XHJcbiAgICAgICAgICAgICAgICAgLmRlYyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7b3BhY2l0eTogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgLmJ0bi1zdGQge3Zpc2liaWxpdHk6IHZpc2libGU7IG9wYWNpdHk6IDE7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICAmLnNsaWNrLXByZXYgeyBsZWZ0OiAwcHg7IHJpZ2h0OiBhdXRvO31cclxuICAgICAgICAgICAgJi5zbGljay1uZXh0IHtyaWdodDogMHB4OyBsZWZ0OiBhdXRvO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmJhbm5lciB7XHJcbiAgICBwYWRkaW5nOiAxMzBweCAwIDA7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICsgLnBhZ2VfbmV3cyB7cGFkZGluZy10b3A6IDEwMHB4O31cclxuICAgIC5jYXB0IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDYyJTsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICAgIC53cmFwcGVyIHt3aWR0aDogMTM2NnB4O31cclxuICAgICAgICBoMSB7Zm9udC1zaXplOiA2MHB4OyBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDMwMDsgbWFyZ2luLWJvdHRvbTogMjVweDt9XHJcbiAgICAgICAgcCB7Zm9udC1zaXplOiAxOHB4OyBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDMwMDt9XHJcbiAgICB9XHJcbn1cclxuLnBhZ2VfbmV3cyB7XHJcbiAgICBwYWRkaW5nOiAxODBweCAwIDEwMHB4OyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLndyYXBwZXIge3dpZHRoOiAxMzY2cHg7fVxyXG4gICAgLmR0IHtkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzY2NjsgbWFyZ2luLWJvdHRvbTogNXB4O31cclxuICAgIC50b3BfdGl0bGUge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgaDMge2Zsb2F0OiBsZWZ0OyBmb250LXNpemU6IDM5cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGNvbG9yOiAjMzEyZjk0O31cclxuICAgICAgICAmOmFmdGVyIHtjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoO31cclxuICAgICAgICAuZmlsIHtcclxuICAgICAgICAgICAgc2VsZWN0IHtmb250LXNpemU6IDE2cHg7IHdpZHRoOiAyMTVweDsgcGFkZGluZy1yaWdodDogMzBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNnB4KTsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3NlbGVjdC5wbmcnKSBuby1yZXBlYXQgOTMlIGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7IGNvbG9yOiAjNjY2O2Zsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHNwYW4ge3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiAjZGYzYzNjO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY2F0ZWcge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMzMTJmOTQ7IHBhZGRpbmc6IDAgMjBweDsgbGluZS1oZWlnaHQ6IDMwcHg7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygxNXB4KTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBjb2xvcjogI2ZmZjtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtaW4td2lkdGg6IDEwMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgIH1cclxuICAgICYucHJvbW97XHJcbiAgICAgICAgbWluLWhlaWdodDogNjB2aDsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAubGlzdGluZ19uZXdze1xyXG4gICAgICAgICAgICAubmV3c3tcclxuICAgICAgICAgICAgICAgIC5kZXNjeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge0BpbmNsdWRlIGJveFNoYWRvdyhub25lKTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmRldGFpbCB7XHJcbiAgICAgICAgLndyYXBwZXIge3dpZHRoOiA5NzVweDt9XHJcbiAgICAgICAgLnRvcF9kZXRhaWwge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgICAgICAgICAuY2F0ZWcge21hcmdpbi1ib3R0b206IDEwcHg7fVxyXG4gICAgICAgICAgICAuZHQge21hcmdpbi1ib3R0b206IDE1cHg7fVxyXG4gICAgICAgICAgICBoMyB7Zm9udC1zaXplOiAzM3B4OyBjb2xvcjogIzMxMmY5NDsgZm9udC13ZWlnaHQ6IDMwMDsgbWFyZ2luLWJvdHRvbTogMTVweDsgbGluZS1oZWlnaHQ6IDM2cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2hhcmUge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWFlYWVhOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWFlYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICBwIHtmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNXB4O31cclxuICAgICAgICAgICAgaW1nIHtkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAzNXB4IDA7fVxyXG4gICAgICAgICAgICBpZnJhbWUge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDQ1MHB4OyBtYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICAgICAgdWwsb2wge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgbGkge2ZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDIycHg7IG1hcmdpbi1ib3R0b206IDZweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwge2xpc3Qtc3R5bGU6IGRpc2M7fVxyXG4gICAgICAgICAgICBvbCB7bGlzdC1zdHlsZTogZGVjaW1hbDt9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgICYucmVzdWx0IHtcclxuICAgICAgICAudG9wX3RpdGxlIHtcclxuICAgICAgICAgICAgaDMge2Zsb2F0OiBub25lO31cclxuICAgICAgICAgICAgcCB7ZmxvYXQ6IG5vbmU7IG1hcmdpbi10b3A6IDI1cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2VjLXJlc3VsdCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDcwcHg7XHJcbiAgICAgICAgICAgIGgyIHtmb250LXNpemU6IDI2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjMzEyZjk0OyBtYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICAgICAgLmxzLXJlc3VsdCB7XHJcbiAgICAgICAgICAgICAgICAuaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCA3MHB4OyBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGEge2NvbG9yOiAjMTExO31cclxuICAgICAgICAgICAgICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgY29sb3I6ICMxMTE7IG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiA0cHggOHB4OyBtYXJnaW46IDAgM3B4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMnB4KTt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICMxMTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge21hcmdpbjogMCAycHg7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDJweCk7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYucHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICAubHMtcmVzdWx0IC5pdGVtIGg0IHNwYW4ge2JhY2tncm91bmQ6ICNkNmQ1ZWE7IGNvbG9yOiAjMzEyZjk0O31cclxuICAgICAgICAgICAgICAgIC5scy1yZXN1bHQgLml0ZW0gcCBzcGFuIHtjb2xvcjogIzMxMmY5NDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5hcnRpa2VsIHtcclxuICAgICAgICAgICAgICAgIGgyIHtjb2xvcjogI2YwNGMwYjt9XHJcbiAgICAgICAgICAgICAgICAubHMtcmVzdWx0IC5pdGVtIGg0IHNwYW4ge2JhY2tncm91bmQ6ICNmY2RiY2U7IGNvbG9yOiAjZjA0YzBiO31cclxuICAgICAgICAgICAgICAgIC5scy1yZXN1bHQgLml0ZW0gcCBzcGFuIHtjb2xvcjogI2YwNGMwYjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnNoYXJlIHtcclxuICAgIGxhYmVsIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMTVweDsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogIzY2Njt9XHJcbiAgICB1bCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIGxpIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMTBweDt9XHJcbiAgICB9XHJcbn1cclxuLmxpc3RpbmdfbmV3cyB7XHJcbiAgICBAZXh0ZW5kIC5mbGV4OyBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgLyotd2Via2l0LWZsZXgtZmxvdzogcm93IHdyYXA7Ki9cclxuICAgIC5uZXdzIHtcclxuICAgICAgICB3aWR0aDogMjMuOCU7IG1hcmdpbi1yaWdodDogMS42JTsgbWFyZ2luLWJvdHRvbTogMjVweDsgYm9yZGVyOiAxcHggc29saWQgI2VhZWFlYTtAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlLW91dCk7IGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgJjpudGgtY2hpbGQoNG4pIHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgIC5pbWcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGltZyB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBlYXNlLW91dCk7IGRpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhdGVnIHtcclxuICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAtMTVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmRlc2Mge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDIwcHggMjVweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICBoNiB7Zm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMjZweDsgY29sb3I6ICMzMTJmOTQ7IG1hcmdpbi1ib3R0b206IDZweDt9XHJcbiAgICAgICAgICAgIHAge2NvbG9yOiAjNjY2OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuM3MgZWFzZS1vdXQpOyBAaW5jbHVkZSBib3hTaGFkb3coMCAwIDI1cHggLTJweCByZ2JhKDAsMCwwLDAuMTUpKTtcclxuICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICBpbWcge0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuM3MgZWFzZS1vdXQpOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4xNSkpO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZHQge2Rpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjNjY2OyBtYXJnaW4tYm90dG9tOiA1cHg7fVxyXG4gICAgfVxyXG59XHJcbi5wcm9tbyB7XHJcbiAgICAubGlzdGluZ19uZXdzIC5uZXdzIC5kZXNjIGg2IHttYXgtaGVpZ2h0OiA1MnB4OyBvdmVyZmxvdzogaGlkZGVuO31cclxufVxyXG5cclxuLmhvbWVfbmV3cyB7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDA7IGJhY2tncm91bmQ6ICNmYWZhZmE7XHJcbiAgIC53cmFwcGVyIHt3aWR0aDogMTM3MHB4O31cclxuICAgIGgze1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogMzlweDsgIGNvbG9yOiAjMTIxYjQwOyAgbWFyZ2luLWJvdHRvbTogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHNwYW57IGZvbnQtd2VpZ2h0OiA4MDA7IH1cclxuICAgICAgICBhIHtwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjMzEyZjk0OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tdG9wOiAxMHB4O31cclxuICAgIH1cclxuICAgIC5jYXRlZyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzMxMmY5NDsgcGFkZGluZzogMCAyMHB4OyBsaW5lLWhlaWdodDogMzBweDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDE1cHgpOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1pbi13aWR0aDogMTAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgfVxyXG4gICAgLmxpc3RpbmdfbmV3cyAubmV3cyAuZGVzYyBwIHtkaXNwbGF5OiBub25lO31cclxufVxyXG5cclxuLnBhZ2dpbmcge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6ICM2NjY7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDMwcHg7IG1hcmdpbjogMCAxcHg7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBlYXNlLW91dCk7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7XHJcbiAgICAgICAgJi5wcmV2IHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87IHBhZGRpbmctcmlnaHQ6IDIwcHg7IG1hcmdpbi1yaWdodDogMTVweDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VhZWFlYTtAaW5jbHVkZSBib3JkZXJSYWRpdXMoMCk7XHJcbiAgICAgICAgICAgICYuYWN0aXZlLFxyXG4gICAgICAgICAgICAmOmhvdmVyIHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6ICM2NjY7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygwKTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubmV4dCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBwYWRkaW5nLWxlZnQ6IDIwcHg7IG1hcmdpbi1sZWZ0OiAxNXB4OyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYWVhZWE7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDApO1xyXG4gICAgICAgICAgICAmLmFjdGl2ZSxcclxuICAgICAgICAgICAgJjpob3ZlciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjNjY2OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMCk7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmFjdGl2ZSxcclxuICAgICAgICAmOmhvdmVyIHtiYWNrZ3JvdW5kOiAjMzEyZjk0OyBjb2xvcjogI2ZmZjsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlLW91dCk7fVxyXG4gICAgfVxyXG4gICAgJi5jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLnBvcHVwe1xyXG4gICAgcG9zaXRpb246IGZpeGVkO3RvcDogMDtsZWZ0OiAwO3JpZ2h0OiAwO2JvdHRvbTogMDtiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7ei1pbmRleDogMTAwO2Rpc3BsYXk6IG5vbmU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIC5pbnBvcHVwe1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7bGVmdDogMDtyaWdodDogMDtib3R0b206IDA7bWFyZ2luOiA1JSBhdXRvO2JhY2tncm91bmQ6IHRyYW5zcGFyZW50O3dpZHRoOiAxMDAwcHg7XHJcbiAgICAgICAgaDJ7Zm9udC1zaXplOjQwcHg7bGluZS1oZWlnaHQ6IDUwcHg7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcbiAgICAgICAgaDR7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMjhweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyBjb2xvcjogI2ZmZjsgbWFyZ2luLXRvcDogNTBweDt9XHJcbiAgICAgICAgaWZyYW1le3dpZHRoOiAxMDAlO2hlaWdodDogNTAwcHg7bWFyZ2luLWJvdHRvbTogMzBweDt9XHJcbiAgICAgICAgcHtmb250LXNpemU6IDE2cHg7bGluZS1oZWlnaHQ6IDI0cHg7IHdpZHRoOiA5OCU7fVxyXG4gICAgICAgIC50cHJvZmlsZXttYXJnaW4tYm90dG9tOiAyMHB4O2Rpc3BsYXk6IGJsb2NrO2ZvbnQtc3R5bGU6IGl0YWxpYztjb2xvcjogI2ZmZn1cclxuICAgICAgICAuY29udGVudC1wb3B7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7cGFkZGluZzogMCAwIDIwcHg7XHJcbiAgICAgICAgICAgIC53cmFwcGVyeyB3aWR0aDogYXV0bzsgfVxyXG4gICAgICAgICAgICAuc3RvcmV7XHJcbiAgICAgICAgICAgICAgICBpbWd7IHdpZHRoOiAyMjBweDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jbG9zZS1wb3B7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDIwcHg7cmlnaHQ6IDIwcHg7d2lkdGg6IDQwcHg7aGVpZ2h0OiA0MHB4O2JhY2tncm91bmQ6ICNmZmY7Y3Vyc29yOiBwb2ludGVyO0BpbmNsdWRlIHRyYW5zaXRpb24oLjJzIGFsbCBlYXNlLW91dCk7IHotaW5kZXg6IDk5O1xyXG4gICAgICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7d2lkdGg6IDI0cHg7aGVpZ2h0OiAycHg7YmFja2dyb3VuZDogIzBiNDY5NDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiA1MCU7bGVmdDogNTAlO21hcmdpbjogLTFweCAwIDAgLTEycHg7QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg0NWRlZykpO1xyXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxke0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTQ1ZGVnKSk7fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVye29wYWNpdHk6IDAuNTt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmlubmVyLXBvcHVwe1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCBudWxsKTtcclxuICAgICAgICBtYXJnaW46IDUlIGF1dG87XHJcbiAgICAgICAgcGFkZGluZzogOTZweCAxNTBweDtcclxuICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAyOXB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgLmNsb3NlLXBvcHVwe1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAyMHB4O3JpZ2h0OiAyMHB4O3dpZHRoOiA0MHB4O2hlaWdodDogNDBweDtiYWNrZ3JvdW5kOiAjZmZmO2N1cnNvcjogcG9pbnRlcjtAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpOyB6LWluZGV4OiA5OTtcclxuICAgICAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO3dpZHRoOiAyNHB4O2hlaWdodDogMnB4O2JhY2tncm91bmQ6ICMwYjQ2OTQ7cG9zaXRpb246IGFic29sdXRlO3RvcDogNTAlO2xlZnQ6IDUwJTttYXJnaW46IC0xcHggMCAwIC0xMnB4O0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZHtAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC00NWRlZykpO31cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlcntvcGFjaXR5OiAwLjU7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5hcnJvdy1zbGlkZXtcclxuICAgICAgICBhe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7d2lkdGg6IDUwcHg7aGVpZ2h0OiA1MHB4O3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDUwJTttYXJnaW4tdG9wOiAtNzVweDtAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpO1xyXG4gICAgICAgICAgICAvKiAmLnByZXZ7bGVmdDotMjVweDtiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fyci1sZWZ0LWJsdWUucG5nJykgbm8tcmVwZWF0IGNlbnRlcjt9XHJcbiAgICAgICAgICAgICYubmV4dHtyaWdodDotMjVweDtiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fyci1yaWdodC1ibHVlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7fSAqL1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC41KTt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5oaWdobGlnaHR7XHJcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gICAgLnRpdHRsZXtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICBoM3sgZm9udC1zaXplOiAyOHB4OyBmb250LXdlaWdodDogYm9sZDsgfVxyXG4gICAgfVxyXG4gICAgLmxlZnR7XHJcbiAgICAgICAgd2lkdGg6IDQ4JTsgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IG1hcmdpbi1yaWdodDogNCU7XHJcbiAgICAgICAgLmJveHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0OCU7IG1hcmdpbi1yaWdodDogMyU7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZHsgbWFyZ2luLXJpZ2h0OjA7IH1cclxuICAgICAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxODBweDtcclxuICAgICAgICAgICAgICAgIGltZ3sgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5kZXNje1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzoyMHB4IDE1cHggMTBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMTMwcHg7XHJcbiAgICAgICAgICAgICAgICBoNXsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjojMzEyZjk0OyBmb250LXdlaWdodDogNjAwOyBsaW5lLWhlaWdodDogMjJweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgaGVpZ2h0OiA0OHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcbiAgICAgICAgICAgICAgICBweyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyBoZWlnaHQ6IDcwcHg7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzbWFsbHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAwIDE1cHg7IGJhY2tncm91bmQ6IzMxMmY5NDsgY29sb3I6ICNmZmY7IGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDIwcHgpOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnB1Ymxpc2hkYXRle1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGRpc3BsYXk6IGJsb2NrOyBsaW5lLWhlaWdodDogMTZweDsgbWF4LWhlaWdodDogMzJweDsgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucmlnaHR7XHJcbiAgICAgICAgd2lkdGg6IDQ4JTtcclxuICAgIH1cclxuICAgIC5zbGlkZXItaGlnaGxpZ2h0e1xyXG4gICAgICAgIC5saXN0e1xyXG4gICAgICAgICAgICBmaWd1cmV7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMxMnB4O1xyXG4gICAgICAgICAgICAgICAgaW1neyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3Zlcjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNsaWNrLWFycm93e1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0yMHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDA7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYXJyX3NlbGVjdC5wbmcpbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEycHg7IGhlaWdodDogN3B4OyB6LWluZGV4OiAzOyBtYXJnaW46IGF1dG8gMDsgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg5MGRlZykpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbiAgICAgICAgICAgICYuc2xpY2stbmV4dHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87IHJpZ2h0OiAtMjBweDsgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtOTBkZWcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmxzLXByb2R1ayB7XHJcbiAgICBAZXh0ZW5kIC5mbGV4LWxpc3Q7IG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICAuYm94IHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7IHdpZHRoOiAyMy41JTsgbWFyZ2luLXJpZ2h0OiAyJTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTBweCk7IGJhY2tncm91bmQ6ICNmOWY5Zjk7IHBhZGRpbmctYm90dG9tOiAxMzVweDsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgIGZpZ3VyZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggNTBweCAwO1xyXG4gICAgICAgICAgICBpbWcge2Rpc3BsYXk6IGJsb2NrOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjNzKTsgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOTMpKTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5kZWMge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWFlYWVhOyBwYWRkaW5nOiAyMnB4IDMwcHg7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC45KTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgei1pbmRleDogMztAaW5jbHVkZSBib3JkZXJSYWRpdXMoIDAgMCAxMHB4IDEwcHgpO1xyXG4gICAgICAgICAgICBoMyB7Y29sb3I6ICMxMjFiNDA7IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDcwMDsgbWFyZ2luLWJvdHRvbTogMTVweDsgbGluZS1oZWlnaHQ6IDIycHg7fVxyXG4gICAgICAgICAgICBwIHtmb250LXNpemU6IDEzcHg7IG1hcmdpbi1ib3R0b206IDA7IGNvbG9yOiAjMzMzOyBvcGFjaXR5OiAwLjc7IGhlaWdodDogNDBweDsgb3ZlcmZsb3c6IGhpZGRlbjt9XHJcbiAgICAgICAgICAgIC5idG4tc3RkIHttaW4td2lkdGg6IDA7IG1heC13aWR0aDogMjAwcHg7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg2cHgpO31cclxuICAgICAgICAgICAgLmhvdl91cCB7aGVpZ2h0OiAwO292ZXJmbG93OiBoaWRkZW47IHBhZGRpbmctdG9wOiAwcHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuM3MpO31cclxuICAgICAgICAgICAgYSB7d2lkdGg6IDEwMCU7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87fVxyXG4gICAgICAgICAgICAuc2VlIHttYXJnaW4tdG9wOiAyMHB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpudGgtY2hpbGQoNG4pIHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7IEBpbmNsdWRlIGJveFNoYWRvdygwIDAgMjBweCAwcHggcmdiYSgwLDAsMCwwLjE1KSk7XHJcbiAgICAgICAgICAgIGZpZ3VyZSB7XHJcbiAgICAgICAgICAgICAgICBpbWcge0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuM3MpOyBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4wMykpO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZGVjIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlci1jb2xvcjogI2VhZWFlYTtcclxuICAgICAgICAgICAgICAgIC5ob3ZfdXAge2hlaWdodDogNzZweDsgb3BhY2l0eTogMTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4zcyk7IHBhZGRpbmctdG9wOiAyMHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmRldGFpbF9wZyB7XHJcbiAgICBAZXh0ZW5kIC5mbGV4LWxpc3Q7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIC50b3BfdGl0bGUge21hcmdpbi1ib3R0b206IDIwcHg7fVxyXG4gICAgcCB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICMxMTE7fVxyXG4gICAgLmxmX2RldGFpbCB7d2lkdGg6IDQ5JTsgcGFkZGluZzogMCA3MHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7fVxyXG4gICAgLnJoX2RldGFpbCB7d2lkdGg6IDQxLjUlO31cclxufVxyXG5cclxuLnNsaWRlQmlnIHtcclxuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGZvbnQtc2l6ZTogMDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycl9zZWxlY3QucG5nJykgbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC05MGRlZykpOyBjdXJzb3I6IHBvaW50ZXI7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO1xyXG4gICAgICAgICY6aG92ZXIge2JvcmRlci1jb2xvcjogIzMxMmY5NDtAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjJzKTt9XHJcbiAgICAgICAgJi5zbGljay1wcmV2IHsgbGVmdDogLTcwcHg7IHJpZ2h0OiBhdXRvO0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoOTBkZWcpKTsgfVxyXG4gICAgICAgICYuc2xpY2stbmV4dCB7cmlnaHQ6IC03MHB4OyBsZWZ0OiBhdXRvO31cclxuICAgIH1cclxufVxyXG4uYWNvcmRpb24ge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgIC5hY2Mge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlYWVhO1xyXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge2JvcmRlci10b3A6MXB4IHNvbGlkICNlYWVhZWE7fVxyXG4gICAgICAgICYuYWN0IHtcclxuICAgICAgICAgICAgLnR0bF9hY2Mge1xyXG4gICAgICAgICAgICAgICAgaDQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZGY2ZTNjO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMTgwZGVnKSk7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMjVzKTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAudHRsX2FjYyB7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAwO1xyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OyBjb2xvcjogIzMzMzsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZy1yaWdodDogMzBweDtwb3NpdGlvbjogcmVsYXRpdmU7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgJjphZnRlciB7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpOyBjb250ZW50OlwiXCI7IGhlaWdodDogMTBweDsgd2lkdGg6IDE2cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IHJpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY19hY2MucG5nJykgbm8tcmVwZWF0O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZGVjX2FjYyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICMxMTE7IGRpc3BsYXk6IG5vbmU7IHBhZGRpbmc6IDVweCAxMHB4IDIwcHg7XHJcbiAgICAgICAgcCB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICMxMTE7fVxyXG4gICAgICAgIHVsLG9sIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBsaSB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICMxMTE7fVxyXG4gICAgICAgIH1cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9sIHtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnZpZHNfd3JwIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC50aHVtYl92aWQge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3NXB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMwcHg7IGJvdHRvbTogMTVweDsgbGluZS1oZWlnaHQ6IDYwcHg7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA0MDA7IHotaW5kZXg6IDY7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDpcIlwiOyB3aWR0aDogNjBweDsgaGVpZ2h0OiA2MHB4OyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNTAlKTsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9wbGF5LnBuZycpIG5vLXJlcGVhdCA1NSUgY2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6IDE4cHg7QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC44NykpOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbWcge2Rpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnZpZHMge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwO0BpbmNsdWRlIGJvcmRlclJhZGl1cyg2cHgpOyBvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDEwMCU7ZGlzcGxheTogbm9uZTsgei1pbmRleDogNzt9XHJcbiAgICAgICAgaWZyYW1lIHtoZWlnaHQ6IDEwMCU7fVxyXG4gICAgfVxyXG59XHJcbi5idG1fc2VjIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHg7IEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgLmJ0bl9yb3VuZCB7ZmxvYXQ6IGxlZnQ7fVxyXG4gICAgLnNoYXJlIHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtvcGFjaXR5OiAwLjgyO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4ucG9wX2J0biB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgLmJ0bl9yb3VuZCB7ZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbn1cclxuXHJcbi50aXRsZS1oZWFkZXJ7XHJcbiAgICBmb250LXNpemU6IDY5cHg7IFxyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbn1cclxuXHJcbi50YWItd2FycmFudHl7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA5MHB4O1xyXG4gICAgLnRhYi13YXJyYW50eS0tYnV0dG9ue1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xyXG4gICAgICAgIC50YWItYnV0dG9uLS1saXN0e1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQzFDMUMxO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMzBweDtcclxuICAgICAgICAgICAgY29sb3I6ICM0MzQzNDM7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmLmFjdGl2ZXtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzMxMkY5NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC50YWItd2FycmFudHktLWNvbnRlbnR7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI0ZBRkFGQTtcclxuICAgICAgICAudGFiLWNvbnRlbnQtLWxpc3R7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDcwcHggMTk1cHg7XHJcbiAgICAgICAgICAgIGg0e1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMxMjFCNDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNTMwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuYWN0aXZle1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmJveC1mb3Jte1xyXG4gICAgbGFiZWx7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6ICMxMjFCNDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIGlucHV0W3R5cGU9J2VtYWlsJ10sXHJcbiAgICBpbnB1dFt0eXBlPSdudW1iZXInXSxcclxuICAgIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXHJcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSxcclxuICAgIGlucHV0W3R5cGU9J3RlbCddLFxyXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddLFxyXG4gICAgaW5wdXRbdHlwZT0ndXJsJ10sXHJcbiAgICB0ZXh0YXJlYSxcclxuICAgIHNlbGVjdCB7XHJcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xyXG4gICAgICAgIGhlaWdodDogNjBweDtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICAgICAgJi5lcnJvcntcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjRUQwMDAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHNlbGVjdHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2Fycm93LXNlbGVjdC5zdmcnKW5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7XHJcbiAgICB9XHJcbiAgICB0ZXh0YXJlYXtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgICAgICByZXNpemU6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAudC1yZWR7XHJcbiAgICAgICAgY29sb3I6IHJlZDtcclxuICAgIH1cclxuICAgIC50ZXh0ZGF0ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2NhbGVuZGFyLXRleHQuc3ZnJyluby1yZXBlYXQgY2VudGVyIHJpZ2h0O1xyXG4gICAgfVxyXG4gICAgLmZpbGUtaW5wdXR7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pY29uLXVwbG9hZC5zdmcnKW5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQztcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1OHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgNjBweCAwIDMwcHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDI2cHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm5vdGUtdGV4dC5lcnJvcntcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnYtbWlkZGxle1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgLm5vdGVze1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICBjb2xvcjogIzk5OTk5OTtcclxuICAgIH1cclxuICAgIC5jaGVja2JveC1jdXN0b217XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgICAgY29sb3I6ICM3MjcyNzI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hde1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCk7XHJcbiAgICAgICAgICAgICY6Y2hlY2tlZCB+IGk6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpe1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxMjFCNDA7XHJcbiAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgY29udGVudDpcIlwiO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDApO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzEyMUI0MDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm5vdGUtdGV4dC5lcnJvcntcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ub3RlLXRleHR7XHJcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAmLmVycm9ye1xyXG4gICAgICAgICAgICBjb2xvcjogI0VEMDAwMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idXR0b257XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkI0QTA0O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBsaW5lLWhlaWdodDogNjBweDtcclxuICAgIGhlaWdodDogNjBweDtcclxuICAgIHBhZGRpbmc6IDAgMzBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IC4ycyBhbGwgZWFzZS1vdXQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgJjpob3ZlcntcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5MDY0O1xyXG4gICAgfVxyXG59XHJcblxyXG4ucm93e1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xLjByZW07XHJcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMi4wcmVtKTtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIC5jb2x1bW57XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZmxleDogMSAxIGF1dG87XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcGFkZGluZzogMCAxLjByZW07XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAmLmNvbHVtbi01MHtcclxuICAgICAgICAgICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zdGQtY29udGVudHtcclxuICAgIGg0e1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjNweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgIGNvbG9yOiAjMTIxQjQwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogNTMwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMzBweDtcclxuICAgIH1cclxuICAgIG9sLCB1bCwgcHtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgY29sb3I6ICNBQUFBQUE7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICB9XHJcbiAgICBvbCwgdWx7XHJcbiAgICAgICAgbGl7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9se1xyXG4gICAgICAgIGNvdW50ZXItcmVzZXQ6IG15LWF3ZXNvbWUtY291bnRlcjtcclxuICAgICAgICBsaXtcclxuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG15LWF3ZXNvbWUtY291bnRlcjtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihteS1hd2Vzb21lLWNvdW50ZXIpIFwiLiBcIjtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB1bHtcclxuICAgICAgICBsaXtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDpcIlwiO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDZweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNnB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0FBQUFBQTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogN3B4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogM3B4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udGhhbmt5b3V7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xyXG4gICAgcGFkZGluZzogOTlweCAyMDBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4gICAgaDF7XHJcbiAgICAgICAgZm9udC1zaXplOiA2OXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgY29sb3I6ICMxMjFCNDA7XHJcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XHJcbiAgICB9XHJcbiAgICBwe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgIGNvbG9yOiAjMTIxQjQwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIGZvb3RlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLnJhY2tldC1wYWNrYWdle1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIG51bGwgMjVweCA4MHB4IG51bGwpO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMHB4IDAgMzBweCAzMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxNEUwRjtcclxuICAgIHBhZGRpbmc6IDEzcHggMjBweDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogLjJzIGFsbCBlYXNlLW91dDtcclxuICAgIGltZ3tcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgICBzcGFue1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogNjBweDtcclxuICAgIH1cclxuICAgICY6aG92ZXJ7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguOTUpO1xyXG4gICAgfVxyXG59XHJcbmZvb3RlcntcclxuICAgIGhlaWdodDogMTMwcHg7IGJhY2tncm91bmQ6ICMzMTJmOTQ7XHJcbiAgICAud3JhcHBlcntcclxuICAgICAgICB3aWR0aDogMTcwMHB4O1xyXG4gICAgfVxyXG4gICAgLmxvZ297XHJcbiAgICAgICAgd2lkdGg6IDEwMHB4OyBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG4gICAgbmF2e1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDBweDsgbWFyZ2luLXRvcDogNjVweDtcclxuICAgICAgICB1bCBsaXtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxNnB4OyBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlcnsgY29sb3I6I2ZmZjsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNvY21lZHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1NXB4O1xyXG4gICAgICAgIHVsIGxpe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGNvbG9yOiAjZmZmOyBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICBzcGFueyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTE1cHg7IH1cclxuICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgIC5pbWFnZXN7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzQ2NDQ5Zjsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ3sgd2lkdGg6IDE1cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLndyYXAtcG9wdXB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2xlZnQ6IDA7dG9wOiAwO292ZXJmbG93OiBhdXRvO3otaW5kZXg6IDk5OTk5O1xyXG4gICAgLm92ZXJsYXktcG9we0BleHRlbmQgLmFic29sdXRlLWNlbnRlcjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC43KTtoZWlnaHQ6IGF1dG87cG9zaXRpb246IGZpeGVkO3otaW5kZXg6IDE7fVxyXG4gICAgLmJveC1wb3B1cHtcclxuICAgICAgICBtYXgtd2lkdGg6IDgwJTttYXJnaW46OCUgYXV0bztwb3NpdGlvbjogcmVsYXRpdmU7ei1pbmRleDogMjtiYWNrZ3JvdW5kOiNGRkY7d2lkdGg6NjAwcHg7cGFkZGluZzo0MHB4O0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICBoNHtmb250LXNpemU6MjRweDtmb250LXdlaWdodDpib2xkO2NvbG9yOiM2NjY7bWFyZ2luOjAgMCAyNXB4IDB9XHJcbiAgICAgICAgdWwgbGl7XHJcbiAgICAgICAgICAgIG1hcmdpbjowIDAgMTBweDtwYWRkaW5nOjAgMCAwIDIwcHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6IDE4cHg7Y291bnRlci1pbmNyZW1lbnQ6IGNvdW50ZXI7cG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihjb3VudGVyKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjFweDtmb250LXdlaWdodDo1MDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jbG9zZXtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOiAzMHB4O2hlaWdodDogMzBweDt0b3A6LTMwcHg7cmlnaHQ6IDBweDtiYWNrZ3JvdW5kOiAjMDA3NmEzO3RleHQtaW5kZW50Oi05OTk5cHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OlwiXCI7d2lkdGg6IDMwcHg7aGVpZ2h0OiAzMHB4O2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvY2xvc2UtcG9wLnBuZykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5hYnNvbHV0ZS1jZW50ZXI7QGluY2x1ZGUgdHJhbnNpdGlvbigwLjE1cyBsaW5lYXIgYWxsKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTo2NSU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6I2VlZTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg5MGRlZykpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4jcG9wdXAtY2FydCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLmJveC1wb3B1cCB7XHJcbiAgICAgICAgbWFyZ2luOiAxMiUgYXV0bzsgd2lkdGg6IDc0MHB4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoNHB4KTsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC5jbG9zZSB7YmFja2dyb3VuZDojMzEyZjk0OyByaWdodDogLTMwcHg7IHRvcDogMjBweDt9XHJcbiAgICAgICAgaDIge2ZvbnQtc2l6ZTogMzBweDsgbWFyZ2luLWJvdHRvbTogMTVweDt9XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsgd2lkdGg6IDcwJTsgbWFyZ2luOiAwIGF1dG8gO1xyXG4gICAgICAgICAgICAmLmtldCB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyBmb250LXNpemU6IDExcHg7IG1hcmdpbjogMnB4IDAgMDsgY29sb3I6ICM5OTk7IGxpbmUtaGVpZ2h0OiAxMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saXN0LXNpdGUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgICAgICAgICAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIC13ZWJraXQtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzIuMzMzJTsgbWFyZ2luLXJpZ2h0OiAxLjUlOyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNDBweCAxNXB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXJSYWRpdXMoM3B4KTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpOyBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYm94U2hhZG93KGluc2V0IDAgMCAxMHB4IHJnYmEoMCwwLDAsMC4xNSkpOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wYWdpbmctYXJ0aWNsZXtcclxuICAgIGZvbnQtZmFtaWx5OlwiTGF0b1wiO1xyXG4gICAgLmJ1dHRvbntcclxuICAgICAgICBiYWNrZ3JvdW5kOiMzMTJGOTQ7XHJcbiAgICAgICAgY29sb3I6I0ZGRjtcclxuICAgICAgICBmb250LXNpemU6MThweDtcclxuICAgICAgICBwYWRkaW5nOjAgNjBweCAwIDMwcHg7XHJcbiAgICAgICAgaGVpZ2h0OjUwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6NTBweDtcclxuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOjMwcHg7XHJcbiAgICAgICAgbWFyZ2luOjAgMCAyNXB4IDA7XHJcblxyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtcclxuICAgICAgICAgICAgd2lkdGg6MTBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OjEycHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hcnJvdy1idXR0b24uc3ZnKSBuby1yZXBlYXQgO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOjA7XHJcbiAgICAgICAgICAgIGJvdHRvbTowO1xyXG4gICAgICAgICAgICByaWdodDozMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46YXV0bztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjowLjJzIGVhc2Utb3V0IGFsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgYmFja2dyb3VuZDojZjE0ZTBmO1xyXG4gICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6MjVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5saXN0LXBhZ2V7XHJcbiAgICAgICAgZGlzcGxheTpmbGV4O1xyXG4gICAgICAgIGZvbnQtc2l6ZToxOHB4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MTVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDoxMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDo0MHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6NDBweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo1MHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6NDBweDtcclxuICAgICAgICAgICAgY29sb3I6Izk5OTtcclxuICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgJi5hY3RpdmV7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiMzMTJGOTQ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjojRkZGO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cdFxyXG4gICAgQ29tcGFueSAgICA6IFBUIFdlYiBBcmNoaXRlY3QgVGVjaG5vbG9neSAtIHdlYmFycS5jb21cclxuICAgIERvY3VtZW50ICAgOiBTdHlsZXNoZWV0XHJcbiAgICBBdXRob3IgICAgIDogRnJvbnRFbmQgVGVhbSAgXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyogaW1wb3J0IGJvdXJib24gLSBodHRwOi8vYm91cmJvbi5pby9kb2NzICovXHJcbkBpbXBvcnQgXCJib3VyYm9uL2JvdXJib25cIjtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhdHRyKXtcclxuICAgIHRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtby10cmFuc2l0aW9uOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gdHJhbnNmb3JtKCRhdHRyKXtcclxuICAgIHRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zZm9ybTogJGF0dHI7XHJcbn1cclxuQG1peGluIGJvcmRlclJhZGl1cygkYXR0cil7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1zLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW8tYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbn1cclxuQG1peGluIGJveFNoYWRvdygkYXR0cil7XHJcbiAgICBib3gtc2hhZG93OiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1vLWJveC1zaGFkb3c6ICRhdHRyXHJcbn1cclxuQG1peGluIGJveFNpemluZygkYXR0cil7XHJcbiAgICBib3gtc2l6aW5nOiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1vLWJveC1zaXppbmc6ICRhdHRyXHJcbn1cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XHJcbiAgICA6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgYm94LXNpemluZzogJGF0dHI7XHJcbn1cclxuXHJcbi5hYnNvbHV0ZS1jZW50ZXJ7cG9zaXRpb246IGFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO21hcmdpbjphdXRvO31cclxuXHJcbi8qIGNvbG9yIGdsb2JhbFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuJGNfMTExOiAjMTExO1xyXG4kY18zMzM6ICMzMzM7XHJcbiRjXzY2NjogIzY2NjtcclxuJGNfOTk5OiAjOTk5O1xyXG4kY19lYTogI2VhZWFlYTtcclxuIiwiLy8gQm91cmJvbiA0LjIuN1xyXG4vLyBodHRwOi8vYm91cmJvbi5pb1xyXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cclxuLy8gTUlUIExpY2Vuc2VcclxuXHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XHJcblxyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcclxuXHJcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xyXG5cclxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcclxuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcclxuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcclxuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcclxuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XHJcblxyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcclxuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcclxuXHJcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXHJcblxyXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sXHJcblxyXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xyXG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XHJcbiAgJGxpc3Q6ICgpO1xyXG5cclxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XHJcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcclxuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xyXG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRsaXN0O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xyXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XHJcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgQGlmIG5vdCAkaXRlbSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuXHJcbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcclxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcclxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcclxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XHJcblxyXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuXHJcbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcblxyXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcclxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXHJcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcclxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcclxuXHJcbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxyXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG5cclxuICAkYmFzZTogJGVtLWJhc2U7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgJGRpbWVuc2lvbjogMTA7XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XHJcblxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XHJcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxyXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJG5ldy1wcm9wczogKCk7XHJcblxyXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XHJcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbmV3LXByb3BzO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxyXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xyXG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHByb3A7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcclxuLy8vICAgfVxyXG5cclxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcclxuICB9XHJcbn1cclxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcclxuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xyXG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XHJcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcclxuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcclxuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XHJcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcclxuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xyXG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xyXG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xyXG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XHJcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcclxuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xyXG4kb2N0YXZlOiAgICAgICAgICAgMjtcclxuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcclxuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xyXG4kbWFqb3ItdHdlbGZ0aDogICAgMztcclxuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XHJcblxyXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xyXG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcclxuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xyXG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xyXG4gICR2YWx1ZTogJHYxO1xyXG5cclxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcclxuICBAd2hpbGUgJHYyID4gJHYxIHtcclxuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcclxuICB9XHJcbiAgQHdoaWxlICR2MiA8ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcclxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XHJcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXHJcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XHJcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICB9XHJcblxyXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcclxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XHJcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xyXG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcclxuXHJcbiAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcclxuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xyXG4vLy9cclxuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH1cclxuXHJcbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcclxuICAkb3V0cHV0OiBudWxsO1xyXG5cclxuICAkYTogbnRoKCR2YWxzLCAxKTtcclxuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcclxuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcclxuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xyXG5cclxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XHJcbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxyXG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cclxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XHJcblxyXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cclxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxyXG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcblxyXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxyXG4vLy8gICBQcmVmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxyXG4vLy8gICBTdWZmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuXHJcbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xyXG4gIC8vIFByb3BlcnR5IE5hbWVzXHJcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuXHJcbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XHJcblxyXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xyXG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICN7JGFsbH06ICR2YWxzO1xyXG4gIH1cclxufVxyXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxyXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXHJcblxyXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgIEByZXR1cm4gZm9udC11cmw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHVybDtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0cyxcclxuICAkZm9udC11cmwpIHtcclxuXHJcbiAgJHNyYzogKCk7XHJcblxyXG4gICRmb3JtYXRzLW1hcDogKFxyXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXHJcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxyXG4gICk7XHJcblxyXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcclxuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XHJcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcclxuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XHJcblxyXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3JjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xyXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xyXG4gICRvZmZzZXQ6IG51bGw7XHJcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxyXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXHJcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9mZnNldCB7XHJcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcclxuXHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XHJcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcclxuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcclxuXHJcbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcclxuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcclxuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xyXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJGRlZ3JlZTogbnVsbDtcclxuICAkc2lkZTogbnVsbDtcclxuICAkY29ybmVyOiBudWxsO1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcclxuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXHJcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xyXG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcclxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXHJcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxyXG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXHJcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xyXG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcclxuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcclxuICAgICAgJGRlZ3JlZTogJHBvcztcclxuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xyXG4gICAgICAkc3BlYzogJHBvcztcclxuICAgIH1cclxuICB9XHJcbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xyXG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XHJcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xyXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcclxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcclxuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdmFsLTM6IG51bGw7XHJcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xyXG5cclxuICBAaWYgJGhhcy12YWwtMyB7XHJcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xyXG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XHJcbiAgfVxyXG5cclxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcclxuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcclxuXHJcbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcclxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XHJcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcclxuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XHJcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXHJcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xyXG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xyXG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJGcxOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZlxyXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcclxuXHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xyXG4gICAgICAgICAgICAkZzI6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XHJcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcclxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcclxuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuXHJcbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcclxuXHJcbiAgLy8gQWRkIGNvbW1hXHJcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcclxuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcclxuXHJcbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XHJcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XHJcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xyXG5cclxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRwcmUtc3BlYzogbnVsbDtcclxuICAkc3BlYzogbnVsbDtcclxuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcclxuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcclxuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcclxuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xyXG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdmVuZG9yIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XHJcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcclxuICAgICAgJHZhbHVlOiBudWxsO1xyXG4gICAgfVxyXG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xyXG4gIH1cclxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XHJcbiAgLy8gTWF0cmljZXNcclxuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XHJcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xyXG5cclxuICAvLyBSZXN1bHRcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaXZpZGVyOiAwO1xyXG4gICRtaW51czogZmFsc2U7XHJcblxyXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcclxuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xyXG5cclxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcclxuICAgICAgJG1pbnVzOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xyXG4gICAgICAkZGl2aWRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcclxuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xyXG5cclxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xyXG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XHJcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbn1cclxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXHJcbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcclxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcclxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcclxuICAvLyBydW5uaW5nIHwgcGF1c2VkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xyXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxyXG4vLyBub3RhdGlvbi5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XHJcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XHJcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xyXG5cclxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XHJcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xyXG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcclxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xyXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcclxuICAkc3BlYy1pbWFnZXM6ICgpO1xyXG5cclxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XHJcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcclxuICAgICRzcGVjLWltYWdlOiAoKTtcclxuXHJcbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xyXG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xyXG59XHJcbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcclxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xyXG4gICRzcGVjLWJvcmRlcnM6ICgpO1xyXG5cclxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcclxuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcclxuICAgICRzcGVjLWJvcmRlcjogKCk7XHJcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XHJcblxyXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XHJcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XHJcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxufVxyXG5cclxuLy9FeGFtcGxlczpcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcclxuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xyXG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xyXG59XHJcbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcclxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XHJcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcclxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xyXG4gIC8vIG5vbmUgfHwgYWxsXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XHJcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG5cclxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxyXG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xyXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xyXG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XHJcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xyXG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xyXG59XHJcblxyXG5AbWl4aW4gZGlzcGxheS1ib3gge1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxyXG4gIGRpc3BsYXk6IGJveDtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcclxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XHJcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xyXG4vLyBzaW5nbGV8bXVsdGlwbGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXHJcblxyXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcclxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcclxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcclxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XHJcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xyXG4gICAgLy8gMjAwOVxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcclxuICAgIGRpc3BsYXk6IGJveDtcclxuXHJcbiAgICAvLyAyMDEyXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xyXG5cclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcclxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcclxuQG1peGluIGZsZXgoJHZhbHVlKSB7XHJcblxyXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cclxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxyXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcclxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICAkZGlyZWN0aW9uOiBub3JtYWw7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxyXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XHJcbiAgLy8gQWx0IHZhbHVlc1xyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxyXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxyXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXHJcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxyXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xyXG59XHJcbiIsIkBtaXhpbiBmb250LWZhY2UoXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJHdlaWdodDogbm9ybWFsLFxyXG4gICRzdHlsZTogbm9ybWFsLFxyXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcclxuXHJcbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcblxyXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAgICAgJGZvbnQtZmFtaWx5LFxyXG4gICAgICAkZmlsZS1wYXRoLFxyXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgICAgICRmaWxlLWZvcm1hdHMsXHJcbiAgICAgICRmb250LXVybC1wcmVmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cclxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXHJcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xyXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cclxuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xyXG5cclxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxyXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XHJcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXHJcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHBvcy1zcGVjOiBudWxsO1xyXG4gICRwb3MtZGVncmVlOiBudWxsO1xyXG5cclxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cclxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XHJcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xyXG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcclxuICAgICRwb3M6IG51bGw7XHJcbiAgfVxyXG5cclxuICBAaWYgJHBvcyB7XHJcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XHJcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xyXG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcclxuXHJcbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcclxufVxyXG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcclxuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XHJcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcclxuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuXHJcbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xyXG4gICRnMTogIG50aCgkZGF0YSwgMSk7XHJcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcclxuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XHJcblxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcclxuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcclxuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XHJcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcclxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcclxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcclxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xyXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xyXG59XHJcbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xyXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXHJcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcclxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxyXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxyXG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XHJcbiAgJHdlYmtpdDogKCk7XHJcbiAgJG1vejogKCk7XHJcbiAgJHNwZWM6ICgpO1xyXG5cclxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cclxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xyXG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDM6ICgpO1xyXG5cclxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XHJcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XHJcblxyXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XHJcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xyXG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcclxuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcclxuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXHJcblxyXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcclxuXHJcbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xyXG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBidXR0b24sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXHJcbi8vLyAgIGJ1dHRvbjpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcclxuXHJcbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XHJcblxyXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xyXG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcclxuXHJcbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcclxuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcclxuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xyXG4vLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cclxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgd29yZC13cmFwOiBub3JtYWw7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xyXG5cclxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xyXG5cclxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XHJcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxyXG5cclxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LWluZGVudDogMTAxJTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICBAaWYgJGhlaWdodCB7XHJcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBtYXJnaW5gXHJcblxyXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcclxuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxyXG5cclxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXHJcbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbGVmdDogMTBlbTtcclxuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vLyAgICAgdG9wOiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXHJcblxyXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcclxuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xyXG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XHJcblxyXG4gICRvZmZzZXRzOiAoXHJcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxyXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcclxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXHJcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXHJcbiAgKTtcclxuXHJcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxuXHJcbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcclxuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XHJcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXHJcbi8vLyAgIFZhbHVlIHRvIHVzZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXHJcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xyXG5cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcclxuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XHJcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xyXG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xyXG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSAge1xyXG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XHJcbn1cclxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBoaWRwaSB7XHJcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXHJcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogMmVtO1xyXG4vLy8gICAgIGhlaWdodDogMmVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiBhdXRvO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxyXG5cclxuQG1peGluIHNpemUoJHZhbHVlKSB7XHJcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcclxuICAkaGVpZ2h0OiAkd2lkdGg7XHJcblxyXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xyXG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXHJcbi8vLyAgIHRleHRhcmVhIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcclxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxyXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcclxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcclxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XHJcblxyXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXHJcbi8vL1xyXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxyXG4vLy9cclxuLy8vIEB0eXBlIGN1YmljLWJlemllclxyXG5cclxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcclxuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcclxuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcclxuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcclxuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcclxuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcclxuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcclxuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcclxuXHJcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XHJcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XHJcblxyXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xyXG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xyXG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xyXG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xyXG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xyXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcclxuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcclxuICBoZWlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcblxyXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcclxuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcclxuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcclxuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cclxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcclxuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcclxuICB3b3JkLXdyYXA6ICR3cmFwO1xyXG5cclxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcclxuICB9XHJcbn1cclxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxyXG5cclxuQG1peGluIGlubGluZS1ibG9jayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xyXG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICAmOmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG5cclxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cclxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xyXG4gIC8vIEdyYXlzY2FsZSBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIC8vIENvbG9yZWQgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2ltcGxlIEJ1dHRvblxyXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNoaW55IEJ1dHRvblxyXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcclxuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XHJcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcclxuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XHJcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XHJcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XHJcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFBpbGwgQnV0dG9uXHJcbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XHJcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xyXG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xyXG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcclxuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsYXQgQnV0dG9uXHJcbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBncmlkXHJcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XHJcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBndXR0ZXJcclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xyXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xyXG5cclxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcclxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xyXG5cclxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcclxufVxyXG5cclxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O2dHQUlnRztBQ0poRzs7OztnR0FJZ0c7QUFFaEcsNkNBQTZDO0FBa0Q3QyxBQUFBLGdCQUFnQixFRDZoQ2hCLFdBQVcsQ0FFUCxZQUFZLEVBRmhCLFdBQVcsQ0FHUCxVQUFVLENBVU4sTUFBTSxBQUdELE1BQU0sQ0M3aUNIO0VBQUMsUUFBUSxFQUFFLFFBQVE7RUFBQyxHQUFHLEVBQUMsQ0FBQztFQUFDLE1BQU0sRUFBQyxDQUFDO0VBQUMsSUFBSSxFQUFDLENBQUM7RUFBQyxLQUFLLEVBQUMsQ0FBQztFQUFDLE1BQU0sRUFBQyxJQUFJO0NBQUc7O0FBRWhGO2dHQUNnRztBRHBEaEcsQUFBQSxJQUFJLENBQUM7RUFDRCxLQUFLLEVBQUUsSUFBSTtFQUNYLFNB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 */
