/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Frontend WEBARQ
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
body {
  color: #333;
  font-size: 14px;
  font-family: 'Source Sans Pro';
  position: relative;
  overflow-x: hidden;
  text-size-adjust: 100%;
  -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: 32px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

/* structure 
----------------------------------------------------------------------------------------------*/
.after_clear:after, .login .form-std .btm-log:after, .middle-content .main-content .top-content:after, .middle-content .main-content .top-content .rh:after, .middle-content .main-content .filter-wrp:after, .form-std .row:after, .top_nav ul:after, .head-view:after, .head-view .lf:after, .list-doc .doc:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

.flex-list, .step-list, .wrap-dashboard .ls-info, .tab-progress, .wrap-item-chart {
  display: -webkit-flex;
  display: flex;
  display: -moz-box;
  display: -ms-flexbox;
  -webkit-flex-flow: row wrap;
}

section {
  position: relative;
}

.wrapper {
  width: 1170px;
  margin: 0 auto;
}

/* general
----------------------------------------------------------------------------------------------*/
.lf {
  float: left;
}

.rh {
  float: right;
}

.flag {
  display: inline-block;
  width: 12px;
  height: 18px;
  position: relative;
  background: #333;
}

.flag.yl {
  background: #FFD93D;
}

.flag.prpl {
  background: #9141AE;
}

.flag.pink {
  background: #EE4266;
}

.flag.dgrey {
  background: #3B454B;
}

.flag.grey {
  background: #83919A;
}

.flag.lgrn {
  background: #50C5B7;
}

.flag.black {
  background: #000000;
}

.flag:after {
  content: "";
  width: 0;
  height: 0;
  border-bottom: 4px solid #fff;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  position: absolute;
  bottom: 0;
  left: 0;
}

.btn {
  position: relative;
  background: #EE4266;
  line-height: 48px;
  display: inline-block;
  color: #fff;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
  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: 0 24px;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  text-align: center;
}

.btn: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: #d03455;
}

.btn.plus {
  padding-left: 50px;
}

.btn.plus:after {
  content: "";
  width: 30px;
  height: 30px;
  background: url("../images/material/ico-plus.png") no-repeat;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 13px;
}

.btn.white {
  background: #f2f2f2;
  color: #EE4266;
}

.btn.dgreen {
  background: #50C5B7;
}

.btn.yl {
  background: #FFD93D;
  color: #111;
}

.btn-ico {
  padding: 0 15px 0 45px;
  line-height: 40px;
  display: inline-block;
  background: #ccc;
  box-shadow: 0 2px 10px -2px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 2px 10px -2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 2px 10px -2px rgba(0, 0, 0, 0.3);
  -ms-box-shadow: 0 2px 10px -2px rgba(0, 0, 0, 0.3);
  -o-box-shadow: 0 2px 10px -2px rgba(0, 0, 0, 0.3);
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  color: #000;
  margin-left: 10px;
  margin-bottom: 10px;
  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;
}

.btn-ico.unduh {
  background: #435058 url("../images/material/ic-unduh.png") no-repeat left 14px center;
  color: #fff;
}

.btn-ico.unggah {
  background: #435058 url("../images/material/ic-unggah.png") no-repeat left 14px center;
  color: #fff;
}

.btn-ico.unduh:hover {
  background-color: #7b93a2;
}

.btn-ico.unggah:hover {
  background-color: #7b93a2;
}

.btn-ico.print {
  background: #FFD93D url("../images/material/ic-print.png") no-repeat left 14px center;
}

.btn-ico.print:hover {
  background-color: #efc723;
}

.btn-ico.approve {
  background: #73D8CC url("../images/material/ic-approve.png") no-repeat left 14px center;
}

.btn-ico.approve:hover {
  background-color: #17dcc5;
}

.btn-ico: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;
}

.small-btn {
  border: 1px solid #d8d8d8;
  color: #83919A;
  font-size: 14px;
  display: inline-block;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
  line-height: 28px;
  padding: 0 15px;
  margin-right: 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;
}

.small-btn: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: #83919A;
  color: #fff;
  border-color: #83919A;
}

.btn-down {
  display: inline-block;
  margin-right: 10px;
  padding: 0 30px;
  line-height: 44px;
  background: #FFD93D;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  font-size: 14px;
  color: #000;
  font-weight: 700;
}

/* std-content
----------------------------------------------------------------------------------------------*/
.std-content ul {
  margin: 0 0 30px 0;
}

.std-content ul li {
  list-style: disc;
  margin: 0 0 0 20px;
  padding: 0;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.3;
  letter-spacing: normal;
  text-align: left;
}

.std-content ol {
  margin: 0 0 30px 0;
}

.std-content ol li {
  list-style: decimal;
  margin: 0 0 0 20px;
  padding: 0;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.3;
  letter-spacing: normal;
  text-align: left;
}

.std-content table, .std-content thead, .std-content tbody, .std-content tfoot, .std-content tr, .std-content th, .std-content td {
  border: 1px solid grey;
}

.std-content table th, .std-content table td {
  padding: 10px;
  line-height: 1.3;
}

.std-content table th {
  font-weight: bold;
}

/* header
----------------------------------------------------------------------------------------------*/
header {
  padding: 45px 40px;
  position: fixed;
  top: 0px;
  left: 0;
  bottom: 0;
  width: 100px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 9;
  padding-right: 10px;
  box-shadow: 0 -7px 10px 0 rgba(0, 0, 0, 0.075);
  -webkit-box-shadow: 0 -7px 10px 0 rgba(0, 0, 0, 0.075);
  -moz-box-shadow: 0 -7px 10px 0 rgba(0, 0, 0, 0.075);
  -ms-box-shadow: 0 -7px 10px 0 rgba(0, 0, 0, 0.075);
  -o-box-shadow: 0 -7px 10px 0 rgba(0, 0, 0, 0.075);
}

header:before {
  content: "";
  left: 0;
  right: 0;
  position: fixed;
  height: 4px;
  background: #000;
  display: block;
  top: 0;
}

header .mnu-asside .logo {
  margin-bottom: 70px;
  display: block;
  width: 40px;
  overflow: hidden;
  margin-left: -8px;
}

header .mnu-asside .logo img {
  width: 188px;
  max-width: none;
}

header .mnu-asside h5 {
  text-transform: uppercase;
  font-size: 14px;
  color: #435058;
  margin-bottom: 15px;
  font-weight: 700;
  margin-left: -7px;
}

header .mnu-asside nav ul li a {
  display: block;
  color: #83919A;
  font-size: 0px;
  line-height: 24px;
  margin-left: -40px;
  padding: 13px 10px 10px 75px;
  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;
  position: relative;
  border-radius: 0 5px 5px 0;
  -webkit-border-radius: 0 5px 5px 0;
  -moz-border-radius: 0 5px 5px 0;
  -ms-border-radius: 0 5px 5px 0;
  -o-border-radius: 0 5px 5px 0;
}

header .mnu-asside nav ul li a i {
  display: inline-block;
  background-position: top center !important;
  width: 26px;
  height: 26px;
  background-size: 100% !important;
  vertical-align: middle;
  position: absolute;
  left: 40px;
}

header .mnu-asside nav ul li a:before {
  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;
  content: "";
  width: 0px;
  background: #FFD93D;
  top: 0;
  bottom: 0;
  position: absolute;
  left: 0;
  display: block;
}

header .mnu-asside nav ul li a:hover, header .mnu-asside nav ul li a.active {
  box-shadow: -1px 0px 10px 0px rgba(0, 0, 0, 0.1);
  -webkit-box-shadow: -1px 0px 10px 0px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: -1px 0px 10px 0px rgba(0, 0, 0, 0.1);
  -ms-box-shadow: -1px 0px 10px 0px rgba(0, 0, 0, 0.1);
  -o-box-shadow: -1px 0px 10px 0px rgba(0, 0, 0, 0.1);
}

header .mnu-asside nav ul li a:hover:before, header .mnu-asside nav ul li a.active:before {
  width: 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;
}

header .mnu-asside nav ul li a:hover i, header .mnu-asside nav ul li a.active i {
  background-position: bottom center !important;
}

header .mnu-asside .mn-akun {
  margin-top: 35px;
}

header.mnu-text {
  width: 300px;
  padding-right: 40px;
}

header.mnu-text .mnu-asside .logo {
  width: auto;
  margin-left: 0;
}

header.mnu-text .mnu-asside h5 {
  margin-left: 0;
}

header.mnu-text .mnu-asside nav ul li a {
  font-size: 14px;
  padding-right: 25px;
}

header.mnu-text + .middle-content {
  padding-left: 300px;
}

header.mnu-text .wrp-head {
  padding: 0 40px;
  margin: 0 -40px;
}

header.mnu-text .wrp-head .mCSB_scrollTools {
  right: 6px;
}

header.mnu-text .wrp-head .mCustomScrollBox {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  max-width: none;
  padding: 0 40px;
  margin: 0 -40px;
}

header.mnu-text .wrp-head .mCSB_inside > .mCSB_container {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  max-width: none;
  padding: 0 40px;
  margin: 0 -40px;
}

header .wrp-head {
  padding: 0 20px 0 40px;
  margin: 0 -20px 0 -40px;
  height: calc(100vh - 190px);
  position: relative;
}

header .wrp-head .mCSB_scrollTools {
  right: 4px;
}

header .wrp-head .mCustomScrollBox {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  max-width: none;
  padding: 0 20px 0 40px;
  margin: 0 -20px 0 -40px;
}

header .wrp-head .mCSB_inside > .mCSB_container {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  max-width: none;
  padding: 0 20px 0 40px;
  margin: 0 -20px 0 -40px;
}

/* middle
----------------------------------------------------------------------------------------------*/
.login {
  position: relative;
}

.login .wrp-login {
  height: 100vh;
  background-size: cover !important;
}

.login .wrapper {
  width: 1300px;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  top: 50%;
  position: relative;
}

.login .txt {
  width: 610px;
  position: absolute;
  bottom: 30px;
  color: #D8D8D8;
}

.login .txt h3 {
  font-size: 40px;
  font-weight: 700;
  line-height: 50px;
  margin-bottom: 12px;
}

.login .txt p {
  color: #D8D8D8;
  font-size: 24px;
  font-weight: 300;
  margin-bottom: 0;
}

.login .form-std {
  width: 540px;
  background: #000;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 65px;
  border-radius: 12px;
  -webkit-border-radius: 12px;
  -moz-border-radius: 12px;
  -ms-border-radius: 12px;
  -o-border-radius: 12px;
  color: #606060;
  font-size: 15px;
  /*form {
            .row {
                margin-bottom: 30px;
                label {color: #606060; font-size: 15px;}
                .btn {margin-top: 10px;}
                input[type="text"],input[type="email"],input[type="password"] {background: #121211; border-color: #121211;color: #C4C4C4;}
                @include placeholder {color: #C4C4C4;}
            }
        }*/
}

.login .form-std > img {
  display: block;
  width: 172px;
  margin: 0 auto 30px;
}

.login .form-std p {
  font-size: 15px;
  margin-bottom: 30px;
  font-weight: 600;
}

.login .form-std p a {
  color: #606060;
}

.login .form-std p a:hover {
  color: #c4c4c4;
  text-decoration: underline;
}

.login .form-std p.site {
  margin-bottom: 0;
  text-align: center;
  margin-top: 35px;
}

.login .form-std .btm-log {
  margin-top: 20px;
}

.login .form-std .ck_box {
  float: left;
}

.login .form-std .ck_box label {
  position: relative;
  padding-left: 32px;
  font-size: 14px;
  line-height: 20px;
  cursor: pointer;
}

.login .form-std .ck_box label input {
  width: 20px;
  height: 20px;
  position: absolute;
  left: 0;
  background: url("../images/material/ck_box2.png") no-repeat top center;
}

.login .form-std .ck_box label input:checked {
  background-position: bottom center;
}

.login .form-std .ck_box label:hover {
  color: #C4C4C4;
}

.login .form-std .forgot {
  float: right;
  color: #606060;
  font-size: 15px;
  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;
}

.login .form-std .forgot: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;
  color: #C4C4C4;
  text-decoration: underline;
}

.middle-content {
  padding-left: 100px;
  background: #fcfcfc;
}

.middle-content .main-content {
  padding: 50px 90px;
  height: 100%;
  position: relative;
}

.middle-content .main-content .bg-yllow {
  background: url("../images/material/bnnr-yllow.png") no-repeat 80% top;
  height: 517px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-radius: 0 0 0 40px;
  -webkit-border-radius: 0 0 0 40px;
  -moz-border-radius: 0 0 0 40px;
  -ms-border-radius: 0 0 0 40px;
  -o-border-radius: 0 0 0 40px;
  overflow: hidden;
  z-index: 1;
}

.middle-content .main-content > * {
  position: relative;
  z-index: 3;
}

.middle-content .main-content .top-content {
  position: relative;
  z-index: 6;
  margin-bottom: 50px;
}

.middle-content .main-content .top-content .lf h2 {
  font-size: 32px;
  color: #000000;
  font-weight: 700;
  margin-bottom: 15px;
}

.middle-content .main-content .top-content .lf p {
  font-size: 16px;
  color: rgba(0, 0, 0, 0.6);
  margin-bottom: 0;
}

.middle-content .main-content .top-content .notif {
  float: left;
  padding: 7px 0;
  margin-right: 45px;
  position: relative;
}

.middle-content .main-content .top-content .notif .ic {
  width: 18px;
  height: 18px;
  display: block;
  background: url("../images/material/notif-ico.png");
  position: relative;
  cursor: pointer;
}

.middle-content .main-content .top-content .notif .ic.act:after {
  width: 10px;
  height: 10px;
  content: "";
  background: #EE4266;
  display: block;
  border: 2px solid #fff;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  right: -5px;
  position: absolute;
  top: -5px;
}

.middle-content .main-content .top-content .notif .drop-notif {
  background: #1F2122;
  position: absolute;
  width: 470px;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -ms-border-radius: 15px;
  -o-border-radius: 15px;
  right: -172px;
  left: auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 9;
  top: 155%;
  display: none;
}

.middle-content .main-content .top-content .notif .drop-notif:before {
  content: "";
  left: auto;
  right: 165px;
  width: 0;
  height: 0;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-bottom: 15px solid #1F2122;
  position: absolute;
  top: -12px;
}

.middle-content .main-content .top-content .notif .drop-notif .inner {
  max-height: 500px;
  overflow:scroll;
  padding: 30px;
}

.middle-content .main-content .top-content .notif .drop-notif ul li {
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.middle-content .main-content .top-content .notif .drop-notif ul li h5 {
  color: #9A9A9A;
  font-size: 16px;
  line-height: 24px;
}

.middle-content .main-content .top-content .notif .drop-notif ul li h5 b {
  color: #fff;
  font-weight: 600;
}

.middle-content .main-content .top-content .notif .drop-notif ul li h5 b span {
  color: #EE4266;
}

.middle-content .main-content .top-content .notif .drop-notif ul li:last-child {
  border: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.middle-content .main-content .top-content .notif .drop-notif .date {
  color: #fff;
  display: inline;
  text-align: right;
  display: block;
}

.middle-content .main-content .top-content .user {
  float: left;
  position: relative;
}

.middle-content .main-content .top-content .user .ic_user h5 {
  padding-left: 36px;
  position: relative;
  line-height: 30px;
  cursor: pointer;
  color: #656565;
  font-weight: 600;
  font-size: 14px;
  padding-right: 30px;
  background: url("../images/material/arr.png") no-repeat right center;
  overflow: hidden;
  max-width: 130px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.middle-content .main-content .top-content .user .ic_user h5 i {
  width: 24px;
  height: 24px;
  position: absolute;
  border: 3px solid rgba(255, 255, 255, 0.5);
  display: block;
  background-size: 100% !important;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  overflow: hidden;
  left: 0;
}

.middle-content .main-content .top-content .user .drop-user {
  background: #1F2122;
  position: absolute;
  width: 170px;
  padding: 10px 30px 20px;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  right: 0;
  left: auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 9;
  top: 162%;
  display: none;
}

.middle-content .main-content .top-content .user .drop-user:before {
  content: "";
  left: 0;
  right: 0;
  width: 0;
  height: 0;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-bottom: 15px solid #1F2122;
  position: absolute;
  top: -12px;
  margin: auto;
}

.middle-content .main-content .top-content .user .drop-user ul li a {
  display: block;
  color: #BCC9D1;
  font-size: 14px;
  line-height: 24px;
  padding: 13px 10px 10px 40px;
  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;
  position: relative;
  border-radius: 0 5px 5px 0;
  -webkit-border-radius: 0 5px 5px 0;
  -moz-border-radius: 0 5px 5px 0;
  -ms-border-radius: 0 5px 5px 0;
  -o-border-radius: 0 5px 5px 0;
}

.middle-content .main-content .top-content .user .drop-user ul li a i {
  display: inline-block;
  background-position: top center !important;
  width: 26px;
  height: 26px;
  background-size: 100% !important;
  vertical-align: middle;
  position: absolute;
  left: 0px;
}

.middle-content .main-content .top-content .user .drop-user ul li a:before {
  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;
  content: "";
  background: #FFD93D;
  top: auto;
  bottom: 0;
  position: absolute;
  left: 42px;
  display: block;
  right: auto;
  height: 2px;
  width: 0;
}

.middle-content .main-content .top-content .user .drop-user ul li a:hover, .middle-content .main-content .top-content .user .drop-user ul li a.active {
  color: #FFD93D;
  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;
}

.middle-content .main-content .top-content .user .drop-user ul li a:hover:before, .middle-content .main-content .top-content .user .drop-user ul li a.active:before {
  width: 10%;
  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;
}

.middle-content .main-content .filter-wrp .src {
  float: left;
}

.middle-content .main-content .filter-wrp .filter {
  float: left;
  margin-left: 10px;
}

.middle-content .main-content .filter-wrp.multi-btn .lf {
  margin-bottom: 20px;
}

.middle-content .main-content.dashboard .bg-yllow {
  height: 567px;
  background-size: cover;
}

.middle-content .main-content.dashboard .inner-wrap {
  padding: 0;
  background: transparent;
  box-shadow: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  -ms-box-shadow: none;
  -o-box-shadow: none;
}

.middle-content .map-dashboard {
  position: relative;
  border-radius: 20px 20px 0 0;
  -webkit-border-radius: 20px 20px 0 0;
  -moz-border-radius: 20px 20px 0 0;
  -ms-border-radius: 20px 20px 0 0;
  -o-border-radius: 20px 20px 0 0;
  overflow: hidden;
}

.middle-content .map-dashboard h3 {
  position: absolute;
  top: 45px;
  left: 55px;
  color: #fff;
  line-height: 44px;
  font-size: 24px;
  font-weight: 700;
  z-index: 2;
  background: #63BDFF;
}

.middle-content .map-dashboard .filter-year {
  position: absolute;
  top: 45px;
  right: 65px;
  width: 140px;
  z-index: 2;
}

.middle-content .map-dashboard .filter-year select {
  background: rgba(43, 43, 43, 0.4) url("../images/material/arr-white.png") no-repeat right 18px center;
  border: none;
  width: 100%;
  padding: 12px 60px 12px 20px;
  -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;
  font-size: 14px;
  color: #fff;
  line-height: 20px;
  border: 1px solid rgba(255, 255, 255, 0.6);
}

.middle-content .map-dashboard #map-location {
  height: 400px;
  background: #2B2B2B;
  z-index: 1;
}

.middle-content .src {
  position: relative;
}

.middle-content .src form {
  position: relative;
}

.middle-content .src ::-webkit-input-placeholder {
  color: #756E4F;
  font-weight: 400;
}

.middle-content .src :-moz-placeholder {
  color: #756E4F;
  font-weight: 400;
}

.middle-content .src ::-moz-placeholder {
  color: #756E4F;
  font-weight: 400;
}

.middle-content .src :-ms-input-placeholder {
  color: #756E4F;
  font-weight: 400;
}

.middle-content .src input[type="text"] {
  width: 278px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid #fff;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  font-size: 14px;
  color: #756E4F;
  padding-left: 50px;
  font-weight: 400;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.middle-content .src input[type="submit"] {
  width: 30px;
  height: 30px;
  background: url("../images/material/src-ico.png");
  padding: 0;
  position: absolute;
  left: 12px;
  top: 0;
  bottom: 0;
  margin: auto;
  border: none;
  cursor: pointer;
}

.middle-content .ttgl-filt {
  padding: 9px 20px;
  font-size: 14px;
  padding-left: 50px;
  background: rgba(255, 255, 255, 0.6) url("../images/material/filter-ico.png") no-repeat 10px center;
  line-height: 30px;
  display: block;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #fff;
  color: #000000;
  font-weight: 600;
  cursor: pointer;
}

.main-content table {
  width: 100%;
  background: #fff;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  margin-top: 20px;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
}

.main-content table thead {
  background: #3B454B;
  color: #BBBDBE;
  text-transform: uppercase;
}

.main-content table thead th {
  padding: 15px 35px;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

.main-content table thead th:nth-child(1) {
  border-radius: 10px 0 0 0;
  -webkit-border-radius: 10px 0 0 0;
  -moz-border-radius: 10px 0 0 0;
  -ms-border-radius: 10px 0 0 0;
  -o-border-radius: 10px 0 0 0;
  overflow: hidden;
  padding-left: 40px;
}

.main-content table thead th:last-child {
  border-radius: 0 10px 0 0;
  -webkit-border-radius: 0 10px 0 0;
  -moz-border-radius: 0 10px 0 0;
  -ms-border-radius: 0 10px 0 0;
  -o-border-radius: 0 10px 0 0;
  overflow: hidden;
}

.main-content table tbody td {
  padding: 12px 35px;
  color: rgba(0, 0, 0, 0.7);
  font-size: 14px;
  border-bottom: 1px solid #f2f2f2;
  vertical-align: middle;
}

.main-content table tbody td a {
  color: #000;
  display: block;
}

.main-content table tbody td h5 {
  padding-left: 30px;
  position: relative;
  font-size: 16px;
  font-weight: 700;
  color: #000;
  line-height: 18px;
}

.main-content table tbody td .flag {
  position: absolute;
  left: 0px;
  top: 2px;
}

.main-content table tbody td small {
  display: block;
  font-size: 12px;
  color: rgba(0, 0, 0, 0.5);
  margin-top: 4px;
  font-weight: 400;
}

.main-content table tbody td .stts {
  color: #50C5B7;
  font-weight: 700;
  display: block;
}

.main-content table tbody td .action {
  display: inline-block;
  font-size: 14px;
  color: #333;
  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;
}

.main-content table tbody td .action: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;
  text-decoration: underline;
}

.main-content table tbody td .action.del {
  margin-right: 15px;
}

.main-content table tbody td .action.del:hover {
  color: #A3A3A3;
}

.main-content table tbody td .action.add {
  font-weight: 700;
  color: #EE4266;
  display: none;
}

.main-content table tbody td .see-dtl {
  display: block;
  margin-top: 10px;
  color: #50C5B7;
  padding: 5px 10px;
  border: 1px solid #50C5B7;
  text-align: center;
  font-weight: 600;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
  max-width: 85%;
  font-size: 13px;
  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;
}

.main-content table tbody td .see-dtl:hover {
  color: #fff;
  background: #50C5B7;
  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;
}

.main-content table tbody td:nth-child(1) {
  border-left: 1px solid #f2f2f2;
}

.main-content table tbody td:last-child {
  border-right: 1px solid #f2f2f2;
}

.main-content table tbody td input[type="checkbox"] {
  width: 22px;
  height: 22px;
  background: url("../images/material/ck_box.png") no-repeat top center;
  margin-left: 20px;
  cursor: pointer;
}

.main-content table tbody td input[type="checkbox"]:checked {
  background-position: bottom center;
}

.main-content table tbody td select {
  background-color: transparent !important;
}

.main-content table tbody tr:nth-child(even) td {
  background: #f2f2f2;
}

.main-content table tbody tr:nth-child(even) td .flag:after {
  border-bottom-color: #f2f2f2;
}

.main-content table tbody tr:last-child td .action.add {
  display: inline-block;
}

.main-content table tbody tr:last-child td:nth-child(1) {
  border-radius: 0 0 0 10px;
  -webkit-border-radius: 0 0 0 10px;
  -moz-border-radius: 0 0 0 10px;
  -ms-border-radius: 0 0 0 10px;
  -o-border-radius: 0 0 0 10px;
  overflow: hidden;
}

.main-content table tbody tr:last-child td:last-child {
  border-radius: 0 0 10px 0;
  -webkit-border-radius: 0 0 10px 0;
  -moz-border-radius: 0 0 10px 0;
  -ms-border-radius: 0 0 10px 0;
  -o-border-radius: 0 0 10px 0;
  overflow: hidden;
}

.main-content table tbody tr.title td {
  background: #FFD93D;
  text-align: left;
}

.main-content table tbody tr.sum td {
  background: #3B454B;
  color: #BBBDBE;
}

.main-content table tbody tr.sum td input {
  color: #BBBDBE !important;
}

.main-content table.main-project thead {
  background: #3B454B;
  color: #BBBDBE;
  text-transform: uppercase;
}

.main-content table.main-project thead th {
  padding: 35px 15px 15px;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

.main-content table.main-project thead th:nth-child(1) {
  padding-left: 45px;
}

.main-content table.main-project thead th:last-child {
  width: 150px;
}

.main-content table.main-project tbody td {
  padding: 20px 15px;
  line-height: 16px;
}

.main-content table.main-project.auto thead th:last-child {
  width: auto;
}

.main-content table.main-project.perihal thead th:last-child {
  width: 300px;
}

.main-content table.nilai {
  width: 1500px;
}

.main-content table.nilai thead th {
  min-width: 100px;
  text-align: center;
  vertical-align: middle;
  padding: 12px 20px;
  font-size: 14px;
}

.main-content table.nilai thead th span {
  display: block;
}

.main-content table.nilai thead th:first-child {
  width: 200px !important;
  text-align: left;
  padding-left: 35px;
}

.main-content table.nilai tbody td {
  text-align: center;
  padding: 10px 20px;
}

.main-content table.nilai tbody td select {
  text-align: center;
  display: inline-block;
  padding: 5px 25px 5px 10px;
  background-color: transparent;
}

.main-content table.nilai tbody td:first-child {
  width: 200px !important;
  text-align: left;
  padding-left: 30px;
}

.main-content table.evaluasi thead th {
  text-align: center;
  vertical-align: middle;
  padding: 15px 25px;
}

.main-content table.evaluasi thead th:first-child {
  width: 300px;
  text-align: left;
  padding-left: 40px;
}

.main-content table.evaluasi tbody td {
  text-align: center;
  padding: 15px 25px;
}

.main-content table.evaluasi tbody td:first-child {
  text-align: left;
  width: 300px;
  padding-left: 35px;
}

.main-content table.peralatan {
  min-width: 1200px;
}

.main-content table.peralatan thead th:first-child {
  width: 300px;
}

.main-content table.peralatan thead th:last-child {
  width: 200px;
}

.main-content table.peserta {
  min-width: 2000px;
}

.main-content table.peserta thead th:first-child {
  width: 150px;
}

.main-content table.peserta thead th:last-child {
  width: 160px;
}

.main-content table.peserta thead th:last-child(2) {
  width: 300px;
}

.main-content table.peserta tbody td {
  line-height: 18px;
}

.main-content table.psikotes {
  min-width: 2300px;
}

.main-content .scroll-tbl {
  overflow: auto;
}

.pagging {
  padding: 35px 0;
  background: #3B454B;
  text-align: center;
  border-radius: 0 0 15px 15px;
  -webkit-border-radius: 0 0 15px 15px;
  -moz-border-radius: 0 0 15px 15px;
  -ms-border-radius: 0 0 15px 15px;
  -o-border-radius: 0 0 15px 15px;
  border-top: 2px solid #FFD93D;
}

.pagging ul {
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
}

.pagging ul li {
  display: inline-block;
  vertical-align: middle;
}

.pagging ul li a, .pagging ul li span {
  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;
  height: 30px;
  width: 30px;
  display: block;
  line-height: 30px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.2);
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  position: relative;
  margin: -1px -1.5px;
}

.pagging ul li a:hover, .pagging ul li a.active, .pagging ul li span:hover, .pagging ul li span.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
  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;
}

.pagging ul li .prev:after, .pagging ul li .next:after {
  content: "";
  width: 6px;
  height: 9px;
  background: url("../images/material/arr_pagging.png") no-repeat right center;
  background-size: 14px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  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;
}

.pagging ul li .prev:hover:after, .pagging ul li .next:hover: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;
  background-position: left center;
}

.pagging ul li .next {
  margin-right: 0;
  border-radius: 0 3px 3px 0;
  -webkit-border-radius: 0 3px 3px 0;
  -moz-border-radius: 0 3px 3px 0;
  -ms-border-radius: 0 3px 3px 0;
  -o-border-radius: 0 3px 3px 0;
}

.pagging ul li .prev {
  margin-left: 0;
  border-radius: 3px 0 0 3px;
  -webkit-border-radius: 3px 0 0 3px;
  -moz-border-radius: 3px 0 0 3px;
  -ms-border-radius: 3px 0 0 3px;
  -o-border-radius: 3px 0 0 3px;
}

.pagging ul li .prev:after {
  transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  -o-transform: rotate(-180deg);
}

.pagging ul li:last-child a {
  border-right: none;
}

.pagging.white {
  background: #fff;
  border-top: none;
  padding-top: 30px;
  margin-bottom: 30px;
}

.pagging.white ul {
  border-color: #d8d8d8;
}

.pagging.white ul li a, .pagging.white ul li span {
  color: #8b8b8b;
  border-color: #d8d8d8;
}

.pagging.white ul li a:hover, .pagging.white ul li a.active, .pagging.white ul li span:hover, .pagging.white ul li span.active {
  color: #fff;
  background: #455057;
  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;
}

.inner-wrap {
  padding: 65px 100px;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -webkit-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -ms-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -o-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  background: #fff;
}

.inner-wrap.no-pt {
  padding-top: 0;
  background: #fff;
}

.form-std h2 {
  font-size: 24px;
  font-weight: 700;
  color: #333;
  margin-bottom: 25px;
}

.form-std h5 {
  color: #555977;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
}

.form-std h3 {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 30px;
}

.form-std hr {
  border: none;
  height: 1px;
  background: #d8d8d8;
  display: block;
  margin: 40px 0;
}

.form-std hr.doted {
  border-bottom: 1px dashed #d8d8d8;
  background: transparent;
  margin: 30px 0;
}

.form-std ol, .form-std ul {
  margin: 5px 0 10px;
}

.form-std ol li, .form-std ul li {
  font-size: 16px;
  line-height: 24px;
}

.form-std .box-grey {
  padding: 65px 100px 0;
  margin: -65px -100px 70px;
  background: #3B454B;
  border-radius: 20px 20px 0 0;
  -webkit-border-radius: 20px 20px 0 0;
  -moz-border-radius: 20px 20px 0 0;
  -ms-border-radius: 20px 20px 0 0;
  -o-border-radius: 20px 20px 0 0;
  height: 370px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  top: 0px;
  position: relative;
}

.form-std .box-grey h2 {
  color: #fff;
}

.form-std .box-grey .row {
  margin-bottom: 25px;
}

.form-std .box-grey .row label {
  color: #B0B4B7;
}

.form-std .box-grey .row .lbel {
  font-size: 20px;
  color: #fff;
}

.form-std .box-grey:before {
  content: "";
  height: 107px;
  width: 39px;
  background: url("../images/material/bg-bx-grey.png") no-repeat;
  position: absolute;
  left: 20px;
  bottom: 10px;
}

.form-std .row {
  margin-bottom: 22px;
}

.form-std .row label {
  font-size: 15px;
  font-weight: 600;
  color: #9C9DA5;
  display: block;
  margin-bottom: 10px;
}

.form-std .row label.ck-label {
  display: none;
}

.form-std .row ::-webkit-input-placeholder {
  color: #333;
}

.form-std .row :-moz-placeholder {
  color: #333;
}

.form-std .row ::-moz-placeholder {
  color: #333;
}

.form-std .row :-ms-input-placeholder {
  color: #333;
}

.form-std .row input[type="text"], .form-std .row input[type="email"], .form-std .row input[type="number"], .form-std .row input[type="password"], .form-std .row select, .form-std .row textarea {
  font-size: 14px;
  color: #333;
  padding: 13px 20px;
  border-color: #D8D8D8;
  width: 100%;
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  background: #fff;
}

.form-std .row input[type="text"]:disabled, .form-std .row input[type="email"]:disabled, .form-std .row input[type="number"]:disabled, .form-std .row input[type="password"]:disabled, .form-std .row select:disabled, .form-std .row textarea:disabled {
  background-color: #F2F2F2;
}

.form-std .row textarea {
  resize: none;
  height: 100px;
}

.form-std .row select {
  background: #fff url("../images/material/arr-select.png") no-repeat 95%;
  padding-right: 40px;
  background-position: right 15px center;
}

.form-std .row input[type="text"].datepick {
  padding-right: 30px;
  background: #fff url("../images/material/ico-date.png") no-repeat right 12px center;
}

.form-std .row .input_file {
  padding: 13px 20px;
  border: 1px solid #D8D8D8;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  display: block;
  position: relative;
  height: 44px !important;
}

.form-std .row .input_file input {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.form-std .row .input_file > span {
  font-size: 14px;
  color: #333;
  display: block;
  padding-right: 80px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.form-std .row .input_file:before {
  content: "Browse";
  padding: 0 15px;
  color: #333;
  font-size: 14px;
  display: inline-block;
  position: absolute;
  right: 15px;
  background: #E8E8E8;
  line-height: 26px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  height: 26px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.form-std .row .input_file.disabled input {
  visibility: hidden;
}

.form-std .row .btn {
  cursor: pointer;
  display: block;
  border: none;
  width: 100%;
  font-weight: 700;
  line-height: 44px;
}

.form-std .row .ck.ck-editor__main > .ck-editor__editable {
  padding: 0 20px;
  height: 100px;
  font-size: 14px;
  color: #333;
  border-color: #d8d8d8;
  border-radius: 0 0 8px 8px;
  -webkit-border-radius: 0 0 8px 8px;
  -moz-border-radius: 0 0 8px 8px;
  -ms-border-radius: 0 0 8px 8px;
  -o-border-radius: 0 0 8px 8px;
}

.form-std .row .ck.ck-editor__main > .ck-editor__editable:focus {
  border-color: #d8d8d8;
}

.form-std .row .ck.ck-editor__main > .ck-editor__editable ol li, .form-std .row .ck.ck-editor__main > .ck-editor__editable ul li {
  font-size: 14px;
  line-height: 20px;
}

.form-std .row .ck.ck-editor__main > .ck-editor__editable ol {
  list-style: decimal;
  padding-left: 20px;
}

.form-std .row .ck.ck-editor__main > .ck-editor__editable ul {
  list-style: disc;
  padding-left: 20px;
}

.form-std .row .ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
  border-radius: 8px 8px 0 0;
  -webkit-border-radius: 8px 8px 0 0;
  -moz-border-radius: 8px 8px 0 0;
  -ms-border-radius: 8px 8px 0 0;
  -o-border-radius: 8px 8px 0 0;
}

.form-std .row .lbel {
  color: #333;
  font-size: 16px;
  display: block;
  font-weight: 600;
}

.form-std .row .lbel.ttd {
  width: 200px;
  text-align: center;
  margin: auto;
  margin-top: 70px;
}

.form-std .row .lbel.ttd small {
  display: block;
  font-size: 14px;
  line-height: 18px;
  margin-top: 8px;
}

.form-std .row .col {
  float: left;
  width: 100%;
}

.form-std .row .col.col2 {
  width: 46.875%;
  margin-right: 6.25%;
}

.form-std .row .col.col2:last-child {
  margin-right: 0;
}

.form-std .row .select2-container {
  vertical-align: bottom;
}

.form-std .row .select2-container .select2-selection--single {
  height: 44px;
  border-color: #D8D8D8;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
}

.form-std .row .select2-container--default .select2-selection--single .select2-selection__arrow {
  width: 18px;
  height: 18px;
  background: url("../images/material/arr-select.png") no-repeat;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 20px;
}

.form-std .row .select2-container--default .select2-selection--single .select2-selection__arrow b {
  display: none;
}

.form-std .row .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 13px 20px;
  line-height: normal;
  font-family: 'Source Sans Pro';
  font-size: 14px;
  color: #333;
  padding-right: 40px;
}

.form-std .row table td select {
  padding: 10px 35px 10px 10px;
  background-color: transparent !important;
  border: none;
}

.form-std .row table td input[type="text"], .form-std .row table td input[type="number"] {
  padding: 10px 2px;
  border: none;
  background-color: transparent !important;
}

.form-std .row .ntf {
  font-style: italic;
  color: #666;
  font-size: 13px;
  margin-top: 7px;
  display: block;
}

.form-std .row.signature {
  text-align: center;
}

.form-std .select-payment .dt-select {
  display: none;
}

.form-std .select-payment #cash {
  display: block;
}

.ls-program {
  margin-bottom: 30px;
}

.ls-program h5 {
  color: #555977;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
  line-height: 24px;
}

.ls-program hr {
  border: none;
  height: 1px;
  background: #d8d8d8;
  display: block;
  margin: 30px 0;
}

.ls-program hr.doted {
  border-bottom: 1px dashed #d8d8d8;
  background: transparent;
}

.ls-program table {
  margin-top: 0;
}

.ls-program table thead th {
  text-transform: none;
}

.ls-program table thead th:last-child {
  width: 120px;
}

.ls-program table tbody td select {
  background-color: transparent;
  border: none;
  margin-left: -20px;
}

.ls-program .ls {
  font-size: 16px;
  color: #333;
}

.ls-program .ls p {
  font-size: 16px;
  color: #333;
  line-height: 30px;
}

.ls-program .ls ol li, .ls-program .ls ul li {
  font-size: 16px;
  color: #333;
  line-height: 30px;
}

.top_nav {
  padding: 40px 100px 0;
  margin: 0 -100px;
  background: #3B454B;
  border-radius: 15px 15px 0 0;
  -webkit-border-radius: 15px 15px 0 0;
  -moz-border-radius: 15px 15px 0 0;
  -ms-border-radius: 15px 15px 0 0;
  -o-border-radius: 15px 15px 0 0;
}

.top_nav ul li {
  display: table;
  padding: 0 15px;
  width: auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  max-width: 85px;
  vertical-align: bottom;
  height: 60px;
  float: left;
  border-right: 1px solid #455057;
}

.top_nav ul li:first-child {
  padding-left: 0;
}

.top_nav ul li:last-child {
  padding-right: 0;
  border-right: none;
}

.top_nav ul li a {
  color: #716b6b;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
  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;
  position: relative;
  line-height: 16px;
}

.top_nav ul li a:after {
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  height: 0;
  background: #FFD93D;
  display: block;
  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;
  bottom: 0;
  top: auto;
  position: absolute;
}

.top_nav ul li a:hover, .top_nav ul li a.active {
  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;
  color: #FFD93D;
}

.top_nav ul li a:hover:after, .top_nav ul li a.active: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;
  height: 3px;
}

.top_nav .mnu-top-mob {
  display: none;
}

.detail-wrp {
  position: relative;
  padding-top: 85px;
}

.text-content h2 {
  font-size: 24px;
  font-weight: 700;
  color: #333;
  margin-bottom: 25px;
}

.text-content p {
  font-size: 16px;
  color: #333;
  line-height: 30px;
}

.text-content .lbel {
  line-height: 24px;
}

.text-content .form-std .row label {
  font-size: 14px;
}

.text-content ol li {
  padding-left: 25px;
  counter-increment: count;
  position: relative;
}

.text-content ol li:before {
  content: counter(count) ").";
  position: absolute;
  left: 0;
  top: 0;
}

.text-content ul li {
  padding-left: 25px;
  counter-increment: list;
  position: relative;
}

.text-content ul li:before {
  content: counter(list, lower-alpha) ".";
  position: absolute;
  left: 0;
  top: 0;
}

.text-content ul li ol li {
  counter-increment: count;
}

.text-content ul li ol li:before {
  content: counter(count) ").";
  position: absolute;
  left: 0;
  top: 0;
}

.head-view {
  padding-bottom: 70px;
  margin-bottom: 40px;
  border-bottom: 1px solid #d8d8d8;
}

.head-view .ic {
  width: 96px;
  height: 96px;
  float: left;
  margin-top: -20px;
}

.head-view .info-view {
  margin-left: 120px;
}

.head-view .info-view h2 {
  font-size: 40px;
  color: #000000;
  margin-bottom: 4px;
}

.head-view .info-view h6 {
  font-size: 21px;
  color: #EE4266;
  margin-bottom: 20px;
}

.accordion .acc {
  margin-bottom: 30px;
}

.accordion .acc .top {
  padding: 0 40px;
  background: #f2f2f2;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  position: relative;
  cursor: pointer;
}

.accordion .acc .top h4 {
  font-size: 18px;
  font-weight: 700;
  color: #555977;
  padding: 17px 0;
}

.accordion .acc .top:after, .accordion .acc .top:before {
  content: "";
  right: 20px;
  width: 30px;
  height: 30px;
  background: #3B454B;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  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;
}

.accordion .acc .top:after {
  background: url("../images/material/acc-arr.png") no-repeat center;
  z-index: 3;
}

.accordion .acc .top.act {
  border-radius: 8px 8px 0 0;
  -webkit-border-radius: 8px 8px 0 0;
  -moz-border-radius: 8px 8px 0 0;
  -ms-border-radius: 8px 8px 0 0;
  -o-border-radius: 8px 8px 0 0;
}

.accordion .acc .top.act:after {
  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: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  -o-transform: rotate(-180deg);
  z-index: 3;
}

.accordion .acc .content-acc {
  padding: 25px 70px;
  border: 1px solid #f2f2f2;
  border-top: none;
  border-radius: 0 0 8px 8px;
  -webkit-border-radius: 0 0 8px 8px;
  -moz-border-radius: 0 0 8px 8px;
  -ms-border-radius: 0 0 8px 8px;
  -o-border-radius: 0 0 8px 8px;
  margin-top: -2px;
  display: none;
}

.list-doc {
  margin: 40px 0 20px;
}

.list-doc.view {
  margin-top: 20px;
}

.list-doc .doc {
  background: #3B454B;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  width: 300px;
  height: 70px;
  position: relative;
  margin-bottom: 15px;
}

.list-doc .doc .ic {
  background: #222527 url("../images/material/ic-doc.png") no-repeat center;
  width: 70px;
  height: 70px;
  display: block;
  float: left;
  border-radius: 8px 0 0 8px;
  -webkit-border-radius: 8px 0 0 8px;
  -moz-border-radius: 8px 0 0 8px;
  -ms-border-radius: 8px 0 0 8px;
  -o-border-radius: 8px 0 0 8px;
  float: left;
}

.list-doc .doc .desc-doc {
  margin-left: 95px;
  padding: 17px 0;
  padding-right: 20px;
}

.list-doc .doc .desc-doc h6 {
  font-size: 16px;
  font-weight: 700;
  color: #A6ABAE;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.list-doc .doc .desc-doc span {
  display: block;
  font-size: 15px;
  color: #E8E9EA;
  margin-top: 5px;
}

.list-doc .doc .close {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  background: #222527;
  position: absolute;
  right: -7px;
  top: -5px;
  display: block;
  cursor: pointer;
}

.list-doc .doc .close: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: "";
  width: 10px;
  height: 10px;
  background: url("../images/material/ico-x.png") no-repeat;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}

.list-doc .doc .close:hover: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;
  transform: scale(0.85);
  -webkit-transform: scale(0.85);
  -moz-transform: scale(0.85);
  -ms-transform: scale(0.85);
  -o-transform: scale(0.85);
}

.box-cloning {
  margin-bottom: 40px;
}

.wrp-radio {
  margin-top: 20px;
}

.wrp-radio .ck_radio {
  display: inline-block;
  position: relative;
  padding-left: 30px;
  margin-right: 30px;
  margin-bottom: 10px;
}

.wrp-radio .ck_radio input {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 4;
  cursor: pointer;
}

.wrp-radio .ck_radio input:checked + span + i:after {
  opacity: 1;
}

.wrp-radio .ck_radio span {
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  position: relative;
  z-index: 2;
}

.wrp-radio .ck_radio i {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #d8d8d8;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
}

.wrp-radio .ck_radio i:after {
  content: "";
  left: 3px;
  top: 3px;
  right: 3px;
  bottom: 3px;
  display: block;
  position: absolute;
  background: #FFD93D;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  opacity: 0;
}

.field-box {
  position: relative;
  padding: 45px 60px 30px;
  background: #F8F8F8;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -ms-border-radius: 15px;
  -o-border-radius: 15px;
  margin-bottom: 30px;
}

.field-box:last-child {
  margin-bottom: 0;
}

.field-box .trigger-clone {
  position: absolute;
  right: 60px;
  top: 45px;
}

.field-box .trigger-clone a {
  width: 30px;
  height: 30px;
  display: inline-block;
  text-align: center;
  line-height: 26px;
  font-size: 24px;
  background: #AFAFAF;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
  color: #fff;
  vertical-align: middle;
  margin-left: 5px;
}

.field-box .trigger-clone a.add {
  font-size: 20px;
  line-height: 30px;
  background: #686868;
}

.field-box .trigger-clone a:hover {
  color: #FFD93D;
}

.menu-sub {
  padding-bottom: 20px;
  margin-bottom: 40px;
}

.menu-sub ul li {
  padding: 0 20px;
  display: inline-block;
  border-left: 1px solid #d8d8d8;
}

.menu-sub ul li a {
  color: #333;
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  display: block;
  position: relative;
  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: 10px 0 15px;
}

.menu-sub ul li a:after {
  content: "";
  width: 0;
  height: 3px;
  background: #FFD93D;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  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;
}

.menu-sub ul li a:hover, .menu-sub ul li a.active {
  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;
}

.menu-sub ul li a:hover:after, .menu-sub ul li a.active:after {
  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;
  width: 40px;
}

.menu-sub ul li:before {
  display: none;
}

.menu-sub ul li:first-child {
  padding-left: 0;
  border-left: none;
}

.ui-datepicker .ui-datepicker-prev {
  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);
}

.ui-datepicker .ui-datepicker-next {
  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);
}

#ui-datepicker-div {
  z-index: 999 !important;
}

/* pop
----------------------------------------------------------------------------------------------*/
.wrap_pop {
  position: fixed;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.7);
  z-index: 99;
  display: none;
  overflow-y: auto;
}

.wrap_pop .pop_inner {
  position: absolute;
  display: table;
  height: 100%;
  width: 100%;
}

.wrap_pop .pop_inner .overlay_pop {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 7;
}

.wrap_pop .pop_inner .box_pop {
  display: table-cell;
  vertical-align: middle;
}

.wrap_pop .pop_inner .content_pop {
  width: 600px;
  margin: 5% auto;
  background: #f2f2f2;
  position: relative;
  z-index: 8;
  padding: 35px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
}

.wrap_pop .pop_inner .content_pop .close {
  width: 40px;
  height: 40px;
  background: transparent;
  display: inline-block;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  position: absolute;
  top: -45px;
  right: 5px;
  z-index: 10;
  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;
}

.wrap_pop .pop_inner .content_pop .close:after, .wrap_pop .pop_inner .content_pop .close:before {
  content: '';
  width: 30px;
  height: 2px;
  background: #ccc;
  position: absolute;
  display: block;
  top: 16px;
  left: 0;
  right: 0;
  margin: auto;
}

.wrap_pop .pop_inner .content_pop .close:before {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}

.wrap_pop .pop_inner .content_pop .close:after {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

.wrap_pop .pop_inner .content_pop .close:hover {
  transform: scale(0.8);
  -webkit-transform: scale(0.8);
  -moz-transform: scale(0.8);
  -ms-transform: scale(0.8);
  -o-transform: scale(0.8);
  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;
}

.wrap_pop .pop_inner .content_pop .close:hover:after, .wrap_pop .pop_inner .content_pop .close:hover:before {
  background: #f4bd40;
}

.wrap_pop .pop_inner .content_pop .form-std .row:last-child {
  margin-bottom: 0;
}

#filter .pop_inner .content_pop {
  width: auto;
  margin: 0 90px 0 390px;
}

.mCSB_scrollTools {
  opacity: 1;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail {
  height: 10px;
  background: #F4F9FC;
}

.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
  height: 8px;
  margin: 6px 0;
  background: #DCE4E8;
}

.mCSB_inside > .mCSB_container {
  margin-right: 0;
}

.mCSB_scrollTools .mCSB_dragger {
  opacity: 1;
}

.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
  background: #ccc;
}

.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
  width: 3px;
  background: #ccc !important;
  opacity: 1;
}

.mCSB_scrollTools .mCSB_draggerRail {
  background: #f2f2f2;
  width: 3px;
}

.mCSB_scrollTools.mCSB_scrollTools_vertical .mCSB_dragger.mCSB_dragger_bar {
  opacity: 1;
  background: #ccc;
}

#pop-detail-step .pop_inner .content_pop {
  width: 980px;
}

/* Safari */
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes spin {
  0% {
    transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -ms-transform: scale(1.1);
    -o-transform: scale(1.1);
  }
  25% {
    transform: scale(0.7);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -ms-transform: scale(0.7);
    -o-transform: scale(0.7);
  }
  50% {
    transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -ms-transform: scale(1.1);
    -o-transform: scale(1.1);
  }
  75% {
    transform: scale(0.7);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -ms-transform: scale(0.7);
    -o-transform: scale(0.7);
  }
  100% {
    transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -ms-transform: scale(1.1);
    -o-transform: scale(1.1);
  }
}

.step-list {
  position: relative;
}

.step-list .step {
  width: 150px;
  position: relative;
  padding-top: 30px;
}

.step-list .step h3 {
  font-size: 17px;
  text-align: center;
  margin-bottom: 15px;
  height: 35px;
  top: 50%;
}

.step-list .step.act .dot-line i {
  background: #50C5B7;
  cursor: pointer;
}

.step-list .step.act .dot-line i:before {
  opacity: 0.35;
  -webkit-animation: spin 5s linear infinite;
  /*Safari*/
  animation: spin 5s linear infinite;
}

.step-list .step.exp > .dot-line i {
  background: #EE4266;
  cursor: pointer;
}

.step-list .step.exp > .dot-line i:before {
  opacity: 0.35;
  background: #EE4266;
  -webkit-animation: none;
  /*Safari*/
  animation: none;
}

.step-list .step.expand .dot-line i {
  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;
}

.step-list .step:first-child .dot-line:before {
  opacity: 0;
}

.step-list .step:first-child .drop {
  left: 0;
  transform: translateX(0);
  -webkit-transform: translateX(0);
  -moz-transform: translateX(0);
  -ms-transform: translateX(0);
  -o-transform: translateX(0);
}

.step-list .step:last-child .dot-line:after {
  opacity: 0;
}

.step-list .step:last-child .drop {
  left: -70%;
  transform: translateX(0);
  -webkit-transform: translateX(0);
  -moz-transform: translateX(0);
  -ms-transform: translateX(0);
  -o-transform: translateX(0);
}

.step-list .step:nth-last-child(2) .drop.hv-sub, .step-list .step:last-child .drop.hv-sub {
  right: auto;
  transform: translateX(0);
  -webkit-transform: translateX(0);
  -moz-transform: translateX(0);
  -ms-transform: translateX(0);
  -o-transform: translateX(0);
  margin-top: -20px;
  left: -136%;
}

.step-list .step:nth-last-child(2) .drop .sub-step:before, .step-list .step:last-child .drop .sub-step:before {
  right: 0;
  left: auto;
}

.step-list .step:nth-last-child(2) .drop .sub-step .step .dot-line, .step-list .step:last-child .drop .sub-step .step .dot-line {
  left: auto;
  right: -11px;
}

.step-list .step:nth-last-child(2) .drop .sub-step .step h3, .step-list .step:last-child .drop .sub-step .step h3 {
  margin-right: 30px;
  text-align: right;
}

.step-list .step:nth-last-child(2) .drop .sub-step .step .drop, .step-list .step:last-child .drop .sub-step .step .drop {
  margin-left: 0;
  margin-right: 15px;
  right: 20px;
  left: auto;
}

.step-list .step:nth-last-child(2) .drop .sub-step .step:last-child .drop, .step-list .step:last-child .drop .sub-step .step:last-child .drop {
  right: 20px;
  left: auto;
}

.step-list .step .dot-line {
  position: relative;
  left: 0;
  right: 0;
  display: block;
  margin-bottom: 20px;
}

.step-list .step .dot-line i {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  background: #ccc;
  content: "";
  position: relative;
  left: 0;
  right: 0;
  top: 0;
  margin: auto;
  display: block;
  z-index: 4;
  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;
}

.step-list .step .dot-line i:before {
  width: 30px;
  height: 30px;
  background: #50C5B7;
  opacity: 0;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  content: "";
  position: absolute;
  left: -6px;
  right: 0;
  top: -6px;
  margin: auto;
}

.step-list .step .dot-line:before, .step-list .step .dot-line:after {
  content: "";
  height: 3px;
  background: #ccc;
  position: absolute;
  width: 50%;
  top: 0;
  bottom: 0;
  margin: auto;
}

.step-list .step .dot-line:before {
  left: 0;
  right: auto;
}

.step-list .step .dot-line:after {
  right: 0;
  left: auto;
}

.step-list .step .drop {
  position: relative;
  width: 280px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  display: none;
}

.step-list .step .drop.hv-sub {
  left: 60%;
  transform: translateX(0);
  -webkit-transform: translateX(0);
  -moz-transform: translateX(0);
  -ms-transform: translateX(0);
  -o-transform: translateX(0);
  margin-top: -20px;
}

.step-list .step .drop table {
  width: 100%;
  padding: 20px;
  background: #ccc;
  overflow: hidden;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
}

.step-list .step .drop table tr:first-child td {
  padding-top: 20px;
}

.step-list .step .drop table tr:last-child td {
  padding-bottom: 20px;
}

.step-list .step .drop table td {
  padding: 8px 10px;
  font-size: 15px;
}

.step-list .step .drop table td:first-child {
  padding-left: 15px;
}

.step-list .step .drop table td:last-child {
  font-weight: 600;
  padding-left: 10px;
}

.step-list .step .drop table td:nth-child(2) {
  padding: 0;
}

.step-list .step .drop .sub-step {
  position: relative;
}

.step-list .step .drop .sub-step:before {
  content: "";
  left: -16px;
  width: 3px;
  background: #ccc;
  position: absolute;
  height: 70%;
}

.step-list .step .drop .sub-step .step {
  width: 100%;
}

.step-list .step .drop .sub-step .step h3 {
  text-align: left;
  margin-left: 15px;
  height: auto;
  font-size: 16px;
}

.step-list .step .drop .sub-step .step:first-child {
  padding-top: 50px;
}

.step-list .step .drop .sub-step .step:first-child .dot-line:before {
  opacity: 1;
  height: 50%;
}

.step-list .step .drop .sub-step .step:first-child .dot-line:after {
  height: 50%;
}

.step-list .step .drop .sub-step .step:first-child .dot-line i {
  top: 70px;
}

.step-list .step .drop .sub-step .step:first-child.expand {
  padding-top: 30px;
}

.step-list .step .drop .sub-step .step:first-child.expand .dot-line:after {
  height: 100%;
}

.step-list .step .drop .sub-step .step:last-child .drop {
  left: 0;
  right: auto;
}

.step-list .step .drop .sub-step .step:last-child .dot-line:before {
  height: 70%;
}

.step-list .step .drop .sub-step .step .dot-line {
  position: absolute;
  left: -20px;
  height: auto;
  width: 18px;
  top: 0;
  bottom: 0;
}

.step-list .step .drop .sub-step .step .dot-line:before, .step-list .step .drop .sub-step .step .dot-line:after {
  left: 4px;
  right: auto;
}

.step-list .step .drop .sub-step .step .dot-line:before {
  width: 3px;
  height: 110%;
  top: 0;
  bottom: auto;
}

.step-list .step .drop .sub-step .step .dot-line:after {
  width: 3px;
  height: 180%;
  top: auto;
  bottom: -70px;
}

.step-list .step .drop .sub-step .step .dot-line i {
  position: absolute;
  left: -2px;
  right: auto;
  top: 50px;
  bottom: 0;
  margin: auto;
  background: #ccc;
  width: 14px;
  height: 14px;
}

.step-list .step .drop .sub-step .step .dot-line i:before {
  opacity: 0;
  top: -5px;
  left: -5.5111px;
  width: 25px;
  height: 25px;
}

.step-list .step .drop .sub-step .step .drop {
  margin-left: 15px;
  display: none;
}

.step-list .step .drop .sub-step .step.act .dot-line i {
  background: #50C5B7;
}

.step-list .step .drop .sub-step .step.act .dot-line i:before {
  opacity: 0.4;
}

.info-project {
  margin-bottom: 55px;
}

.wrap-dashboard {
  padding: 20px 0 30px;
  margin-bottom: 20px;
  box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -webkit-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -ms-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -o-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  border-radius: 0 0 20 20px;
  -webkit-border-radius: 0 0 20 20px;
  -moz-border-radius: 0 0 20 20px;
  -ms-border-radius: 0 0 20 20px;
  -o-border-radius: 0 0 20 20px;
  overflow: hidden;
}

.wrap-dashboard .ls-info {
  justify-content: center;
}

.wrap-dashboard .ls-info .col {
  padding: 0 45px;
}

.wrap-dashboard .ls-info .col label {
  font-size: 14px;
  font-weight: 600;
  color: #B0B4B7;
  display: block;
  line-height: 18px;
}

.wrap-dashboard .ls-info .col h4 {
  font-size: 18px;
  color: #2B2B2B;
  line-height: 24px;
}

.wrap-dashboard .ls-info .col.main {
  position: relative;
  border-right: 1px solid #EBEBEB;
  padding-left: 55px;
}

.wrap-dashboard .ls-info .col.main:before {
  content: "";
  width: 45px;
  height: 42px;
  position: absolute;
  left: 0px;
  top: 0;
  background: url("../images/material/ico-mnu-1.png") no-repeat bottom center;
  background-size: 100%;
}

.tab-progress {
  justify-content: space-between;
}

.tab-progress .lf-tab {
  width: 27%;
  background: #3B454B;
  padding: 55px 20px 55px 50px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 20px 0 0 20px;
  -webkit-border-radius: 20px 0 0 20px;
  -moz-border-radius: 20px 0 0 20px;
  -ms-border-radius: 20px 0 0 20px;
  -o-border-radius: 20px 0 0 20px;
  overflow: hidden;
}

.tab-progress .lf-tab h3 {
  font-size: 20px;
  color: #fff;
  font-weight: 700;
  margin-bottom: 32px;
}

.tab-progress .lf-tab nav {
  margin: 0 -20px 0 -50px;
}

.tab-progress .lf-tab nav ul li a {
  padding: 10px 20px 10px 50px;
  display: block;
  color: #fff;
  position: relative;
  border-bottom: 1px solid transparent;
}

.tab-progress .lf-tab nav ul li a:before {
  content: "";
  left: 0;
  right: 0;
  background: #1F2122;
  display: block;
  position: absolute;
  top: 0;
  height: 0;
  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;
  z-index: 1;
}

.tab-progress .lf-tab nav ul li a label {
  color: #B0B4B7;
  display: block;
  margin-bottom: 5px;
  line-height: 16px;
  font-weight: 600;
  position: relative;
  z-index: 2;
}

.tab-progress .lf-tab nav ul li a h5 {
  font-size: 18px;
  line-height: 24px;
  position: relative;
  z-index: 2;
}

.tab-progress .lf-tab nav ul li a.active:before, .tab-progress .lf-tab nav ul li a:hover:before {
  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;
  height: 100%;
}

.tab-progress .rh-tab {
  width: 70%;
  padding-top: 10px;
  padding-right: 40px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.wrap-item-chart .item-chart {
  width: calc(49%);
  box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -webkit-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -ms-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  -o-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.05);
  border-radius: 0 0 20 20px;
  -webkit-border-radius: 0 0 20 20px;
  -moz-border-radius: 0 0 20 20px;
  -ms-border-radius: 0 0 20 20px;
  -o-border-radius: 0 0 20 20px;
  padding: 25px 40px;
  overflow: hidden;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin-right: 2%;
  margin-bottom: 20px;
}

.wrap-item-chart .item-chart:nth-child(2n) {
  margin-right: 0;
}

.wrap-item-chart .item-chart h4 {
  font-size: 18px;
  color: #2B2B2B;
  font-weight: 600;
  margin-bottom: 15px;
}

.highcharts-subtitle {
  font-size: 14px;
  margin-top: -10px;
  position: relative;
}

.highcharts-a11y-proxy-button {
  display: none !important;
}

.gm-style .gm-style-iw-c {
  padding: 0;
  background: #1F2122;
}

.gm-style .gm-style-iw-t::after {
  background: #1F2122;
}

.gm-style .gm-style-iw-d {
  background: #1F2122;
  overflow: hidden !important;
}

.gm-ui-hover-effect {
  background: url("../images/material/ico-x.png") no-repeat center !important;
  opacity: 1 !important;
  top: 4px !important;
  right: 4px !important;
}

.gm-ui-hover-effect img {
  display: none !important;
}

.map_content {
  background: #1F2122;
  color: #fff;
  padding: 20px 30px 0 20px;
}

.map_content table {
  background: none;
  margin-top: 0;
}

.map_content table td {
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  text-align: left !important;
  padding: 6px 0 !important;
  min-width: 100px;
}

.map_content table td:last-child {
  text-align: right !important;
  color: #EE4266 !important;
}

.wrap-profile {
  padding: 40px;
  background: #fff;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  margin-bottom: 50px;
  box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -webkit-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -ms-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  -o-box-shadow: 3px 3px 15px -2px rgba(0, 0, 0, 0.05);
  width: 420px;
  margin: 0 auto;
}

.wrap-profile .figure-photo {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: 6px solid #50C5B7;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  margin: 40px auto;
}

.wrap-profile .figure-photo img {
  height: 100%;
  width: 100%;
  max-width: none;
  object-fit: cover;
  display: block;
  position: relative;
}

.photo-profile {
  width: 150px;
  position: relative;
  text-align: center;
  margin: 0 auto 40px;
}

.photo-profile .photo-edit {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: 6px solid #50C5B7;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  margin: 40px 0 15px;
}

.photo-profile .photo-edit img {
  height: 100%;
  width: 100%;
  max-width: none;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 2;
}

.photo-profile .photo-edit input {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  opacity: 0;
  background: none;
  width: auto;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.photo-profile .photo-edit .deleted {
  width: 16px;
  height: 16px;
  background: url("../images/material/icon-remove.png") no-repeat center;
  position: absolute;
  bottom: 10px;
  right: 0px;
  display: block;
  background-size: 100%;
  cursor: pointer;
  visibility: hidden;
  z-index: 4;
  left: 0;
  margin: 0 auto;
}

.photo-profile .photo-edit.sucess .deleted {
  visibility: visible;
}

.photo-profile .trigger-edit {
  font-size: 12px;
  padding: 0px 20px;
  line-height: 30px;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
}

.form-std.setting {
  width: 420px;
}

.form-std.setting > h2 {
  text-align: center;
}

.form-std.setting form > h2 {
  text-align: center;
}

/* Media 1366
----------------------------------------------------------------------------------------------*/
@media all and (max-width: 1400px) {
  .btn {
    line-height: 42px;
    font-size: 13px;
  }
  .btn.plus:after {
    width: 26px;
    height: 26px;
    background-size: 26px;
  }
  .btn-ico {
    line-height: 34px;
    font-size: 13px;
    background-size: 22px !important;
  }
  .small-btn {
    font-size: 12px;
    line-height: 24px;
  }
  .login .wrapper {
    width: 1170px;
  }
  .login .txt {
    width: 570px;
  }
  .login .txt h3 {
    font-size: 36px;
    line-height: 42px;
  }
  .login .txt p {
    font-size: 20px;
  }
  .login .form-std {
    width: 480px;
    padding: 35px 40px;
  }
  .btn-ico.export {
    line-height: 42px;
  }
  header {
    padding: 30px 20px;
    padding-right: 20px;
    width: 80px;
  }
  header.mnu-text {
    width: 260px;
    padding-right: 30px;
  }
  header.mnu-text + .middle-content {
    padding-left: 260px;
  }
  header.mnu-text .mnu-asside nav ul li a i {
    left: 20px;
  }
  header .mnu-asside .logo {
    margin-bottom: 30px;
    margin-left: 0;
  }
  header .mnu-asside h5 {
    margin-left: 2px;
  }
  header .mnu-asside nav ul li a {
    padding: 8px 20px 8px 50px;
    margin-left: -20px;
  }
  header .mnu-asside nav ul li a i {
    width: 24px;
    height: 24px;
    left: 28px;
  }
  header .mnu-asside nav ul li a:hover:before, header .mnu-asside nav ul li a.active:before {
    width: 5px;
  }
  header .wrp-head {
    margin: 0 -30px;
    height: calc(100vh - 135px);
    position: relative;
    padding: 0 30px;
    overflow: auto;
    padding-left: -20px;
  }
  header .wrp-head .mCustomScrollBox {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    max-width: none;
    padding: 0 30px;
    margin: 0 -30px;
  }
  header .wrp-head .mCSB_inside > .mCSB_container {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    max-width: none;
    padding: 0 30px;
    margin: 0 -30px;
  }
  .middle-content {
    padding-left: 80px;
  }
  .middle-content .main-content {
    padding: 30px 60px;
  }
  .middle-content .main-content .top-content .lf h2 {
    font-size: 28px;
    margin-bottom: 10px;
  }
  .middle-content .main-content .top-content .lf p {
    font-size: 14px;
  }
  .middle-content .main-content.dashboard .bg-yllow {
    height: 538px;
  }
  .middle-content table tbody td h5 {
    padding-left: 25px;
  }
  .middle-content .src input[type="text"] {
    padding: 12px 20px;
    padding-left: 40px;
    font-size: 13px;
  }
  .middle-content .src input[type="submit"] {
    width: 26px;
    height: 26px;
    background-size: 26px;
  }
  .middle-content .ttgl-filt {
    line-height: 26px;
    padding: 7px 20px;
    padding-left: 42px;
    background-size: 26px;
  }
  .inner-wrap {
    padding: 45px 70px;
  }
  .field-box {
    padding: 35px 45px 20px;
  }
  .top_nav {
    padding: 30px 70px 0;
    margin: 0 -70px;
  }
  .head-view .ic {
    width: 86px;
    height: 86px;
    background-size: 86px;
    margin-top: -10px;
  }
  .head-view .info-view h2 {
    font-size: 36px;
    margin-bottom: 8px;
  }
  .head-view .info-view h6 {
    font-size: 18px;
  }
  .menu-sub ul li a {
    font-size: 15px;
  }
  .form-std .box-grey {
    padding: 50px 70px 0;
    margin: -50px -70px 50px;
  }
  #filter .pop_inner .content_pop {
    margin: 0 60px 0 320px;
  }
}

@media all and (min-width: 1280px) {
  .top_nav .mnu-top-mob {
    display: none !important;
  }
}

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