@charset "UTF-8";
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Your Name
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
body {
  color: #333;
  font-size: 12px;
  font-family: "Open Sans";
  position: relative;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

figure {
  margin: 0;
  padding: 0;
}

figure img {
  vertical-align: middle;
}

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

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

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

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

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  opacity: 0;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

h1 {
  font-size: 32px;
}

h2 {
  font-size: 28px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

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

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

.after_clear:after, header:after, header .wrapper:after, header .wrapper .rh_head:after, .about-us .wrapper:after, .visi-misi .block:after, .core-values .intro:after, .core-values .core:after, .our-project .wrapper:after, .contact-us .wrapper:after, .key-person .intro:after, .std-content .content:after, .under-maintenance:after, footer:after, footer .lf-foot:after, footer .rh-foot .top:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

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

.flex, .visi-misi .block {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.transitionAll, .pagination a.arr, .pagination a.arr:hover {
  transition: all ease-out 0.2s;
  -webkit-transition: all ease-out 0.2s;
  -moz-transition: all ease-out 0.2s;
  -ms-transition: all ease-out 0.2s;
  -o-transition: all ease-out 0.2s;
}

.transitionColor {
  transition: color ease-out 0.2s;
  -webkit-transition: color ease-out 0.2s;
  -moz-transition: color ease-out 0.2s;
  -ms-transition: color ease-out 0.2s;
  -o-transition: color ease-out 0.2s;
}

.trigger {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  height: .5px;
}

/* header
----------------------------------------------------------------------------------------------*/
header {
  position: fixed;
  left: 0;
  right: 0;
  display: block;
  z-index: 9;
  transition: padding 0.3s ease-out;
  -webkit-transition: padding 0.3s ease-out;
  -moz-transition: padding 0.3s ease-out;
  -ms-transition: padding 0.3s ease-out;
  -o-transition: padding 0.3s ease-out;
  background: #fff;
  height: 120px;
  padding: 5px 0;
  box-sizing: border-box;
  top: 0;
}

header .wrapper {
  width: 1741px;
  position: relative;
}

header .wrapper .logo {
  width: 400px;
  float: left;
  padding: 15px 0;
  box-sizing: border-box;
}

header .wrapper .logo img {
  width: 226px;
}

header .wrapper .rh_head {
  float: right;
  position: relative;
  z-index: 3;
  width: auto;
  margin-top: 20px;
}

header .wrapper .rh_head .burg_nav {
  display: none;
}

header .wrapper .rh_head nav {
  float: left;
}

header .wrapper .rh_head nav a {
  font-size: 18px;
  color: #999999;
  margin-left: 0px;
  padding: 10px 30px;
  box-sizing: border-box;
  border-radius: 35px;
  font-weight: 600;
  line-height: 45px;
  letter-spacing: 0.8px;
  padding-bottom: 0;
  text-transform: uppercase;
  font-family: 'proxima_novasemibold';
  transition: 0.3s linear all;
  -webkit-transition: 0.3s linear all;
  -moz-transition: 0.3s linear all;
  -ms-transition: 0.3s linear all;
  -o-transition: 0.3s linear all;
}

header .wrapper .rh_head nav a:after {
  content: "";
  position: absolute;
  display: block;
  height: 3px;
  width: 0px;
  background: #2458b0;
  bottom: 0px;
}

header .wrapper .rh_head nav a.active {
  color: #2458b0;
  position: relative;
}

header .wrapper .rh_head nav a.active:after {
  content: "";
  position: absolute;
  display: block;
  height: 3px;
  width: 20px;
  background: #2458b0;
  bottom: 0px;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

header .wrapper .rh_head nav a:hover {
  color: #2458b0;
  position: relative;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

header .wrapper .rh_head nav a:hover:after {
  content: "";
  position: absolute;
  display: block;
  height: 3px;
  width: 20px;
  background: #2458b0;
  bottom: 0px;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

header .wrapper .rh_head nav ul li {
  display: inline-block;
  position: relative;
}

header .wrapper .rh_head nav ul li a {
  display: block;
}

header .wrapper .rh_head .box-search {
  position: relative;
  float: left;
  margin: 24px 0 0 40px;
}

header .wrapper .rh_head .box-search .ico-search {
  width: 24px;
  height: 24px;
  border-radius: 37px;
  -webkit-border-radius: 37px;
  -moz-border-radius: 37px;
  -ms-border-radius: 37px;
  -o-border-radius: 37px;
  display: block;
  text-indent: -9999999px;
  position: relative;
  background: url(../images/material/ic-search.png) no-repeat center;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
  z-index: 2;
  display: block;
  cursor: pointer;
}

header .wrapper .blockSearch {
  position: absolute;
  width: 390px;
  height: 60px;
  background: #eaeaea;
  top: 100%;
  right: 0px;
  margin-top: -70px;
  opacity: 0;
  z-index: 2;
}

header .wrapper .blockSearch ::-webkit-input-placeholder {
  color: #eaeaea;
}

header .wrapper .blockSearch :-moz-placeholder {
  color: #eaeaea;
}

header .wrapper .blockSearch ::-moz-placeholder {
  color: #eaeaea;
}

header .wrapper .blockSearch :-ms-input-placeholder {
  color: #eaeaea;
}

header .wrapper .blockSearch input[type="text"] {
  float: left;
  width: 320px;
  height: 40px;
  background: #fff;
  padding: 0;
  border: 0;
  color: #000;
  padding: 0 15px;
  font-size: 14px;
  font-weight: 400;
  margin: 10px 0 0 10px;
  font-style: italic;
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

header .wrapper .blockSearch input[type="submit"] {
  float: left;
  margin: 10px 0 0 15px;
  width: 30px;
  height: 40px;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: url("../images/material/ic-search.png") no-repeat 50% 50%;
}

/* middle
----------------------------------------------------------------------------------------------*/
.banner {
  margin-top: 120px;
  padding: 0 90px 20px 0;
  position: relative;
  z-index: 1;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow: hidden;
}

.banner .slide {
  position: relative;
}

.banner .slide:after {
  display: block;
  content: "";
  background: rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.banner .slick-slider {
  box-shadow: 0 0 20px 0 #000;
  -webkit-box-shadow: 0 0 20px 0 #000;
  -moz-box-shadow: 0 0 20px 0 #000;
  -ms-box-shadow: 0 0 20px 0 #000;
  -o-box-shadow: 0 0 20px 0 #000;
}

.banner .slick-dots {
  position: absolute;
  right: 70px;
  top: 35%;
}

.banner .slick-dots button {
  border: none;
  background: none;
  color: #FFF;
  font-size: 18px;
  font-weight: 700;
  padding: 0 2px;
  position: relative;
  margin: 0 0 40px 0;
  padding: 0 0 5px 0;
  cursor: pointer;
  font-family: 'proxima_novalight';
}

.banner .slick-dots button:before {
  content: '0';
}

.banner .slick-dots button:after {
  content: "";
  position: absolute;
  width: 0%;
  background: #fff;
  height: 3px;
  right: -40px;
  bottom: 40px;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
}

.banner .slick-dots .slick-active button {
  right: 40px;
  font-family: 'proxima_novabold';
  font-size: 60px;
  line-height: 65px;
}

.banner .slick-dots .slick-active button:after {
  width: 20px;
}

.banner img {
  display: block;
  position: relative;
  z-index: 0;
  width: 100%;
}

.banner .caption {
  position: absolute;
  margin-left: 285px;
  color: #2c98a2;
  bottom: 17%;
  top: auto;
  width: 860px;
  z-index: 3;
}

.banner .caption h2 {
  font-size: 50px;
  color: #fff;
  margin-bottom: 15px;
  font-family: 'proxima_novabold';
  line-height: 65px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  max-height: 180px;
  overflow: hidden;
}

.banner .caption p {
  font-size: 18px;
  line-height: 28px;
  color: #fff;
  margin-bottom: 40px;
  font-family: 'proxima_novaregular';
  max-height: 50px;
  overflow: hidden;
}

.static-banner {
  margin-top: 120px;
  padding: 0 90px 0 0;
  position: relative;
  z-index: 1;
}

.static-banner .images {
  position: relative;
}

.static-banner .images:after {
  display: block;
  content: "";
  background: rgba(0, 0, 0, 0.15);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.static-banner .images img {
  display: block;
  position: relative;
  z-index: 0;
  width: 100%;
  -webkit-box-shadow: 15px 14px 20px -4px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 15px 14px 20px -4px rgba(0, 0, 0, 0.25);
  box-shadow: 15px 14px 20px -4px rgba(0, 0, 0, 0.25);
}

.static-banner .images img:after {
  display: block;
  content: "";
  background: rgba(0, 0, 0, 0.4);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.static-banner .title {
  position: absolute;
  top: 275px;
  left: 375px;
  font-family: 'proxima_novabold';
  color: #fff;
  z-index: 3;
}

.static-banner .title h2 {
  font-size: 50px;
  line-height: 65px;
  letter-spacing: 0.8px;
}

.static-banner.errorpage {
  padding-bottom: 68px;
}

.static-banner.errorpage:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: #2458b0 url("../images/material/shape.png") no-repeat right;
}

.static-banner.errorpage .title {
  text-align: center;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}

.static-banner.errorpage .title h1 {
  font-size: 280px;
  font-family: 'Raleway', sans-serif;
  margin-bottom: 50px;
  font-weight: 700;
}

.static-banner.errorpage .title h1.mid {
  font-size: 100px;
  margin-bottom: 30px;
}

.static-banner.errorpage .title p {
  font-size: 24px;
  line-height: 30px;
  font-family: 'proxima_novaregular';
  margin-bottom: 30px;
}

.static-banner.errorpage .title .link-un {
  color: #fff;
  font-size: 25px;
  position: relative;
}

.static-banner.errorpage .title .link-un:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: #fff;
}

.static-banner.befblue {
  padding-bottom: 50px;
}

.static-banner.befblue:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: #2458b0 url("../images/material/shape.png") no-repeat right;
}

.link {
  font-family: 'proxima_novabold';
  font-size: 20px;
  line-height: 28px;
  letter-spacing: 0.2px;
  position: relative;
  text-transform: uppercase;
}

.link:after {
  height: 3px;
  width: 55px;
  content: "";
  display: block;
  position: absolute;
  bottom: -15px;
  left: 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;
}

.link.white {
  color: #fff;
}

.link.white:after {
  background: #fff;
}

.link.blue {
  color: #2458b0;
}

.link.blue:after {
  background: #2458b0;
}

.link:hover:after {
  width: 0px;
  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;
}

.scroll-down {
  line-height: 65px;
  letter-spacing: 2px;
  color: #fff;
  font-family: 'proxima_novaregular';
  text-transform: uppercase;
  position: absolute;
  font-size: 18px;
  right: -215px;
  bottom: 295px;
  transform: translate(0, 100%) rotate(90deg);
  -webkit-transform: translate(0, 100%) rotate(90deg);
  -moz-transform: translate(0, 100%) rotate(90deg);
  -ms-transform: translate(0, 100%) rotate(90deg);
  -o-transform: translate(0, 100%) rotate(90deg);
  transform-origin: 0 0;
  transition: 0.25s ease-out all;
  -webkit-transition: 0.25s ease-out all;
  -moz-transition: 0.25s ease-out all;
  -ms-transition: 0.25s ease-out all;
  -o-transition: 0.25s ease-out all;
}

.scroll-down:hover {
  color: #fff;
}

.scroll-down span {
  height: 4px;
  width: 70px;
  background: #fff;
  display: inline-block;
  margin-bottom: 3px;
}

.scroll-down span:after {
  content: "";
  position: absolute;
  display: block;
  height: 4px;
  width: 45px;
  background: #000;
}

.about-us {
  min-height: 1030px;
  background: #2458b0 url(../images/material/shape.png) no-repeat right;
  margin-top: -405px;
  z-index: 0;
  padding-top: 495px;
  box-sizing: border-box;
  position: relative;
  padding-bottom: 300px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.about-us .wrapper {
  width: 1350px;
}

.about-us .left, .about-us .right {
  width: 50%;
}

.about-us .left {
  text-align: right;
  padding-right: 100px;
  box-sizing: border-box;
}

.about-us .right {
  color: #fff;
  margin-top: 80px;
  padding-bottom: 50px;
}

.about-us .right p {
  font-family: 'proxima_novaregular';
  font-size: 18px;
  line-height: 28px;
  text-align: justify;
}

.about-us .right .link {
  font-size: 18px;
}

.about-us:after {
  position: absolute;
  display: block;
  content: "";
  width: 1090px;
  height: 260px;
  background: #fff;
  bottom: 0;
  left: 0px;
}

.about-us .filter-news {
  position: absolute;
  top: 40%;
}

.about-us .filter-news select {
  width: 350px;
  height: 55px;
  padding: 0 25px;
  box-sizing: border-box;
  font-family: 'proxima_novalight';
  font-size: 16px;
  line-height: 28px;
  color: #ccc;
  background: transparent url("../images/material/a-down.png") no-repeat center right;
  border: 1px solid #fff;
  cursor: pointer;
}

.about-us .filter-news select option {
  color: #333;
}

.about-us .bcrumb.white {
  position: relative;
}

.about-us .bcrumb.white h2:after, .about-us .bcrumb.white h1:after {
  display: none;
}

.about-us .bcrumb.white:after {
  position: absolute;
  display: block;
  content: "";
  width: 45px;
  height: 5px;
  background: #fff;
  bottom: -20px;
  left: 0px;
}

.about-us.no-limit .bcrumb.white {
  margin-bottom: 100px;
}

.about-us.no-limit .bcrumb.white h2 {
  max-height: unset;
  overflow: unset;
}

.about-us.no-limit .right p {
  height: auto;
  overflow: unset;
}

.home-content .about-us .bcrumb.white {
  position: relative;
}

.home-content .about-us .bcrumb.white:after {
  right: 0px;
  left: unset;
}

.our-service {
  margin-top: -85px;
  z-index: 1;
  position: relative;
  background: url(../images/material/bg-service.png) no-repeat;
  background-position: center left;
  padding-bottom: 110px;
}

.our-service .wrapper {
  width: 1350px;
}

.our-service .left {
  width: 35%;
  margin-left: 40px;
}

.our-service .right {
  width: 58%;
  position: relative;
}

.our-service .service-img .slick-slide img {
  height: 525px;
  width: 100%;
  object-fit: cover;
  overflow: hidden;
}

.our-service .service-img .slide {
  position: relative;
}

.our-service .service-img img {
  display: block;
  position: relative;
  z-index: 0;
}

.our-service .service-capt {
  position: relative;
  z-index: 3;
  margin-top: 0px;
}

.our-service .service-capt .slick-slide {
  height: 230px;
  position: relative;
  width: 230px;
}

.our-service .service-capt .caption {
  position: absolute;
  bottom: 0;
  right: 0px;
  background: rgba(4, 4, 4, 0.68);
  color: #fff;
  padding: 45px;
  box-sizing: border-box;
  z-index: 3;
  display: block;
  height: 230px;
  width: 100%;
}

.our-service .service-capt .caption h4 {
  font-size: 31px;
  font-family: 'proxima_novabold';
  margin-bottom: 25px;
  overflow: hidden;
  max-height: 62px;
}

.our-service .service-capt .caption p {
  font-size: 16px;
  font-style: italic;
  font-family: 'proxima_novalight';
  line-height: 25px;
  overflow: hidden;
  max-height: 70px;
}

.our-service .service-capt .slick-list {
  /*overflow: visible; */
  width: 230px;
  position: absolute;
  top: -180px;
  padding: 0 !important;
  right: 45px;
}

.our-service .service-capt .slick-arrow {
  position: absolute;
  top: 20px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  background-color: #ccc;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  border: none;
  color: transparent;
  z-index: 2;
  padding: 0;
}

.our-service .service-capt .slick-prev {
  background: none;
  border: none;
  font-size: 0;
  width: 20px;
  height: 20px;
  background: url(../images/material/a-left-blue.png) no-repeat;
  left: 0px;
}

.our-service .service-capt .slick-next {
  background: none;
  border: none;
  font-size: 0;
  width: 20px;
  height: 20px;
  background: url(../images/material/a-right-blue.png) no-repeat;
  left: 50px;
}

.our-service .service-capt .slick-disabled.slick-prev {
  background: url(../images/material/a-left-grey.png) no-repeat;
  cursor: default;
}

.our-service .service-capt .slick-disabled.slick-next {
  background: url(../images/material/a-right-grey.png) no-repeat;
  cursor: default;
}

.our-service .service-capt .slick-dots {
  position: absolute;
  left: 0px;
  top: 35px;
}

.our-service .service-capt .slick-dots li {
  display: inline-block;
}

.our-service .service-capt .slick-dots button {
  border: none;
  background: none;
  color: #cecece;
  font-size: 16px;
  font-weight: 700;
  position: relative;
  cursor: pointer;
  font-family: 'proxima_novalight';
  line-height: 45px;
  margin-right: 20px;
}

.our-service .service-capt .slick-dots button:before {
  content: '0';
}

.our-service .service-capt .slick-dots button:after {
  content: "";
  position: absolute;
  width: 0%;
  height: 3px;
  left: 0px;
  bottom: 0px;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
  width: 35px;
  background: #cecece;
}

.our-service .service-capt .slick-dots .slick-active button {
  left: 0;
  font-family: 'proxima_novabold';
  font-size: 25px;
  line-height: 50px;
  color: #2458b0;
}

.our-service .service-capt .slick-dots .slick-active button:after {
  background: linear-gradient(to right, #2458b0 0%, #2458b0 50%, #2458b0 50%, #cecece 50%, #cecece 100%);
}

.company-overview {
  margin-top: -100px;
}

.company-overview .wrapper {
  width: 1170px;
}

.company-overview .col {
  width: 370px;
  float: left;
  position: relative;
  margin-right: 30px;
  margin-bottom: 45px;
}

.company-overview .col:nth-child(3n+3) {
  margin-right: 0;
}

.company-overview .col .images-content {
  width: 370px;
  height: 210px;
  background: #ebebeb;
  position: relative;
  border: 1px solid #c2c2c2;
  padding-left: 3px;
  box-sizing: border-box;
}

.company-overview .col .images-content img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.company-overview .col .images-content:hover {
  background: #2458b0;
  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;
  border: 1px solid #2458b0;
}

.company-overview .col .images-content:hover img {
  -webkit-filter: brightness(0) invert(1);
  filter: brightness(0) invert(1);
}

.company-overview .col .content .title {
  font-size: 24px;
  letter-spacing: 0.5;
  color: #333;
  height: 90px;
  padding: 31px 0 0 30px;
  box-sizing: border-box;
  position: relative;
  font-family: 'proxima_novabold';
  line-height: 24px;
}

.company-overview .col .content .title h4 {
  overflow: hidden;
  max-height: 23px;
}

.company-overview .col .content .title:after {
  content: "";
  position: absolute;
  display: block;
  height: 5px;
  width: 45px;
  background: #040404;
  bottom: 0;
  left: 0;
}

.company-overview .col .content p {
  padding: 20px 0 0 30px;
  /*box-sizing: border-box; */
  font-size: 18px;
  line-height: 28px;
  color: #333;
  font-family: 'proxima_novaregular';
  overflow: hidden;
  text-align: justify;
}

.visi-misi {
  margin-bottom: 120px;
}

.visi-misi .wrapper {
  width: 1170px;
}

.visi-misi .block {
  margin: 65px 0;
  justify-content: space-between;
}

.visi-misi .block .col {
  position: relative;
  display: table;
  height: 320px;
  box-sizing: border-box;
  width: 50%;
}

.visi-misi .block .lf {
  width: 40%;
  float: left;
}

.visi-misi .block .rh {
  padding-right: 20px;
  box-sizing: border-box;
  width: 40%;
  float: right;
}

.visi-misi .block .images img {
  display: block;
}

.visi-misi .block .content {
  display: table-cell;
  padding-top: 75px;
  box-sizing: border-box;
}

.visi-misi .block .content h3 {
  font-size: 35px;
  letter-spacing: 0.5;
  position: relative;
  padding-bottom: 40px;
  box-sizing: border-box;
  margin-bottom: 40px;
  font-family: 'proxima_novabold';
}

.visi-misi .block .content h3:after {
  content: "";
  position: absolute;
  display: block;
  height: 5px;
  width: 45px;
  background: #040404;
  bottom: 0;
  left: -40px;
}

.visi-misi .block .content p, .visi-misi .block .content ul li {
  font-size: 18px;
  line-height: 28px;
  font-family: 'proxima_novaregular';
}

.visi-misi .block .content ul li {
  list-style: disc;
  margin-left: 30px;
  margin-bottom: 30px;
}

.visi-misi .block:nth-of-type(2n) .col.lf {
  order: 2;
  -webkit-order: 2;
  -moz-order: 2;
  -ms-order: 2;
}

.visi-misi .block:nth-of-type(2n) .col.rh {
  order: 1;
  -webkit-order: 1;
  -moz-order: 1;
  -ms-order: 1;
  padding-left: 20px;
  padding-right: 0;
  text-align: right;
}

.visi-misi .block:nth-of-type(2n) .content h3:after {
  left: unset;
  right: -40px;
}

.visi-misi .block:nth-of-type(2n) .content ul li {
  margin-left: 0;
  margin-right: 30px;
}

.core-values .wrapper {
  width: 1170px;
}

.core-values .intro {
  height: auto;
  display: block;
  margin-bottom: 40px;
}

.core-values .intro .left {
  width: 400px;
}

.core-values .intro .left h3 {
  color: #303030;
  font-size: 35px;
  font-family: 'proxima_novabold';
  line-height: 48px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  position: relative;
}

.core-values .intro .left h3:after {
  position: absolute;
  display: block;
  content: "";
  width: 45px;
  height: 5px;
  background: #303030;
  bottom: -20px;
  left: 0px;
}

.core-values .intro .right {
  width: 700px;
  text-align: justify;
}

.core-values .intro .right p {
  font-family: 'proxima_novaregular';
  font-size: 18px;
  line-height: 28px;
  text-align: justify;
}

.core-values .core .col {
  width: 370px;
  float: left;
  position: relative;
  margin-right: 30px;
  margin-bottom: 45px;
}

.core-values .core .col:nth-child(3n+3) {
  margin-right: 0;
}

.core-values .core .col .images-content {
  width: 370px;
  height: 210px;
  background: #ebebeb;
  position: relative;
  border: 1px solid #c2c2c2;
  padding-left: 3px;
  box-sizing: border-box;
  transition: all ease-out 0.25s;
  -webkit-transition: all ease-out 0.25s;
  -moz-transition: all ease-out 0.25s;
  -ms-transition: all ease-out 0.25s;
  -o-transition: all ease-out 0.25s;
}

.core-values .core .col .images-content img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.core-values .core .col .content .title {
  font-size: 24px;
  letter-spacing: 0.5;
  color: #333;
  height: 90px;
  padding: 40px 0 0 30px;
  box-sizing: border-box;
  position: relative;
  font-family: 'proxima_novabold';
}

.core-values .core .col .content .title:after {
  content: "";
  position: absolute;
  display: block;
  height: 5px;
  width: 45px;
  background: #040404;
  bottom: 0;
  left: 0;
}

.core-values .core .col .content p {
  padding: 40px 0 40px 30px;
  font-size: 18px;
  line-height: 28px;
  color: #333;
  font-family: 'proxima_novaregular';
  text-align: justify;
}

.core-values .core .col:hover .images-content {
  background: #2458b0;
  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;
}

.core-values .core .col:hover .images-content img {
  -webkit-filter: brightness(0) invert(1);
  filter: brightness(0) invert(1);
}

.our-project {
  margin-bottom: 170px;
  padding-bottom: 105px;
  position: relative;
}

.our-project .wrapper {
  position: relative;
  width: 1350px;
}

.our-project .bcrumb {
  width: 790px;
  padding: 0px 100px 150px;
  box-sizing: border-box;
  background: #fff;
  z-index: 1;
  position: absolute;
  bottom: 400px;
  right: 0;
}

.our-project .bcrumb.blue h2, .our-project .bcrumb.blue h1 {
  font-size: 37px;
}

.our-project .link.white:after {
  background: #2458b0;
}

.our-project .projects {
  margin-top: 250px;
  padding-top: 80px;
  height: 475px;
  width: 100%;
  background: #303030;
}

.our-project .projects .link {
  margin: 0 130px;
}

.our-project .projects-slider {
  position: relative;
  z-index: 3;
  padding-right: 150px;
}

.our-project .projects-slider.slick-slider {
  padding: 0 90px;
  box-sizing: border-box;
  margin-top: 105px;
}

.our-project .projects-slider .slick-slide {
  position: relative;
  padding: 15px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.our-project .projects-slider .slick-slide img {
  position: relative;
  z-index: 0;
}

.our-project .projects-slider .slick-slide .images {
  position: relative;
  float: right;
  box-shadow: 0 0 20px 0 #000;
  -webkit-box-shadow: 0 0 20px 0 #000;
  -moz-box-shadow: 0 0 20px 0 #000;
  -ms-box-shadow: 0 0 20px 0 #000;
  -o-box-shadow: 0 0 20px 0 #000;
}

.our-project .projects-slider .slick-slide .images:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #2458b0;
  content: ' ';
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 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;
}

.our-project .projects-slider .slick-slide:hover .images:before {
  opacity: 1;
  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;
}

.our-project .projects-slider .slick-arrow {
  position: absolute;
  top: -135px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  background-color: #2458b0;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  border: none;
  color: transparent;
  z-index: 2;
  padding: 0;
}

.our-project .projects-slider .slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-white.png) no-repeat;
  left: 660px;
  box-sizing: border-box;
  background-position: center;
}

.our-project .projects-slider .slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-white.png) no-repeat;
  left: 705px;
  background-position: center;
}

.our-project .projects-slider .slick-disabled.slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-grey.png) no-repeat;
  left: 660px;
  box-sizing: border-box;
  background-position: center;
  cursor: default;
}

.our-project .projects-slider .slick-disabled.slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-grey.png) no-repeat;
  left: 705px;
  background-position: center;
  cursor: default;
}

.our-project .projects-slider .content {
  color: #fff;
  width: 270px;
  position: absolute;
  z-index: 1;
  bottom: 70px;
  left: 15px;
  text-shadow: 2px 2px #303030;
}

.our-project .projects-slider .content h4 {
  font-family: 'proxima_novabold';
  font-size: 24px;
  letter-spacing: 0.5px;
  overflow: hidden;
  max-height: 95px;
}

.our-project .projects-slider .content p {
  font-family: 'proxima_novasemibold';
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.5px;
  font-style: italic;
  overflow: hidden;
  max-height: 50px;
}

.contact-us .wrapper {
  width: 1350px;
  background: #2458b0 url("../images/material/bg-contact.png");
  padding: 0 20px;
  box-sizing: border-box;
  position: relative;
  margin-bottom: 140px;
}

.contact-us .content {
  position: absolute;
  margin-top: 55px;
  width: 350px;
  left: 40px;
  /*.link:after{ display: none; }*/
}

.contact-us .content .bcrumb.white h2:after {
  right: unset;
  left: 0;
}

.contact-us .content .bcrumb.white h1:after {
  right: unset;
  left: 0;
}

.contact-us .content .bcrumb.white p.desc {
  line-height: 28px;
  margin-top: 0px;
  font-size: 18px;
  letter-spacing: 0;
  font-family: 'proxima_novaregular';
  overflow: hidden;
  max-height: 165px;
}

.contact-us .images {
  margin-top: -70px;
  margin-bottom: 70px;
}

.news {
  padding-bottom: 115px;
  box-sizing: border-box;
}

.news .wrapper {
  width: 1170px;
}

.news .col {
  width: 370px;
  float: left;
  position: relative;
  margin-right: 30px;
  margin-bottom: 45px;
}

.news .col:nth-child(3n+3) {
  margin-right: 0;
}

.news .col .images-content {
  width: 370px;
  height: 210px;
  background: #ebebeb;
  position: relative;
  border: 1px solid #c2c2c2;
  padding-left: 3px;
  box-sizing: border-box;
}

.news .col .images-content img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.news .col .content .title {
  position: relative;
}

.news .col .content .title h4 {
  font-size: 24px;
  letter-spacing: 0.5;
  color: #333;
  height: 115px;
  padding: 40px 0 0 30px;
  box-sizing: border-box;
  font-family: 'proxima_novabold';
  overflow: hidden;
}

.news .col .content .title .info {
  font-size: 16px;
  font-family: 'proxima_novasemibold';
  line-height: 28px;
  color: #999999;
  height: 70px;
  padding: 20px 0 0 30px;
  box-sizing: border-box;
}

.news .col .content .title:after {
  content: "";
  position: absolute;
  display: block;
  height: 5px;
  width: 45px;
  background: #040404;
  bottom: 0;
  left: 0;
}

.news .col .content p {
  padding: 40px 0 40px 30px;
  box-sizing: border-box;
  font-size: 18px;
  line-height: 28px;
  color: #333;
  font-family: 'proxima_novaregular';
  overflow: hidden;
  max-height: 150px;
  text-align: justify;
}

.news .col .content span {
  padding: 40px 0 0px 30px;
  box-sizing: border-box;
}

.news .col .content span:after {
  left: 30px;
}

.key-person {
  padding-bottom: 100px;
}

.key-person .wrapper {
  width: 1170px;
}

.key-person .intro {
  margin-bottom: 40px;
}

.key-person .intro .left {
  width: 400px;
}

.key-person .intro .left h3 {
  color: #303030;
  font-size: 35px;
  font-family: 'proxima_novabold';
  line-height: 48px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  position: relative;
}

.key-person .intro .left h3:after {
  position: absolute;
  display: block;
  content: "";
  width: 45px;
  height: 5px;
  background: #303030;
  bottom: -20px;
  left: 0px;
}

.key-person .intro .right {
  width: 700px;
}

.key-person .intro .right p {
  font-family: 'proxima_novaregular';
  font-size: 18px;
  line-height: 28px;
}

.key-person .key .col {
  width: 270px;
  float: left;
  position: relative;
  margin-right: 30px;
  margin-bottom: 45px;
}

.key-person .key .col:nth-child(4n+4) {
  margin-right: 0;
}

.key-person .key .col .images-content {
  width: 270px;
  height: 270px;
  background: #ebebeb;
  position: relative;
  border: 1px solid #c2c2c2;
  padding-left: 3px;
  box-sizing: border-box;
}

.key-person .key .col .images-content img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.key-person .key .col .content .title {
  position: relative;
}

.key-person .key .col .content .title h4 {
  font-size: 24px;
  letter-spacing: 0.5;
  color: #333;
  height: 50px;
  padding: 40px 0 0 0px;
  font-family: 'proxima_novabold';
  overflow: hidden;
}

.key-person .key .col .content .title .info {
  font-size: 16px;
  font-family: 'proxima_novasemibold';
  line-height: 28px;
  color: #999999;
  height: 25px;
  padding: 0px 0 0 0px;
  box-sizing: border-box;
}

.key-person .key .col .content p {
  padding: 10px 0 20px 0px;
  box-sizing: border-box;
  font-size: 18px;
  line-height: 28px;
  color: #333;
  font-family: 'proxima_novaregular';
  overflow: hidden;
  height: 61px;
}

.bcrumb.white {
  color: #fff;
}

.bcrumb.white p {
  font-size: 16px;
  line-height: 65px;
  letter-spacing: 0.8px;
  font-family: 'proxima_novabold';
  overflow: hidden;
  max-height: 60px;
}

.bcrumb.white p span {
  font-family: 'proxima_novalight';
  margin-right: 40px;
  position: relative;
}

.bcrumb.white p span:after {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: 15px;
  background: #fff;
  top: 0;
  right: -23px;
}

.bcrumb.white h2, .bcrumb.white h1 {
  color: #fff;
  font-size: 37px;
  font-family: 'proxima_novabold';
  line-height: 45px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  position: relative;
  /*&:after{ position:absolute; display: block; content: ""; width: 45px; height: 5px; background:#fff; bottom:0px;right: 0px; }*/
}

.bcrumb.blue {
  color: #333333;
}

.bcrumb.blue p {
  font-size: 16px;
  line-height: 65px;
  letter-spacing: 0.8px;
  font-family: 'proxima_novabold';
  color: #2458b0;
  overflow: hidden;
  max-height: 60px;
}

.bcrumb.blue p span {
  font-family: 'proxima_novalight';
  margin-right: 40px;
  position: relative;
  color: #333;
}

.bcrumb.blue p span:after {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: 15px;
  background: #333;
  top: 0;
  right: -23px;
}

.bcrumb.blue h2 {
  color: #303030;
  font-size: 37px;
  font-family: 'proxima_novabold';
  line-height: 48px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  position: relative;
}

.bcrumb.blue h2:after {
  position: absolute;
  display: block;
  content: "";
  width: 45px;
  height: 5px;
  background: #303030;
  bottom: -20px;
  left: 0px;
}

.bcrumb.blue .desc {
  font-family: 'proxima_novaregular';
  font-size: 18px;
  line-height: 28px;
  margin-top: 50px;
  color: #333;
  letter-spacing: 0;
  overflow: hidden;
  max-height: 170px;
}

.bcrumb.nocrumb h2 {
  margin-top: 80px;
}

.bcrumb.nocrumb h2:after {
  left: 0;
}

.ctn-padd {
  margin-top: 120px;
}

.ctn-padd .about-page {
  min-height: 690px;
  margin-top: -345px;
  padding-top: 230px;
  padding-bottom: 160px;
}

.ctn-padd .about-page .wrapper {
  width: 1170px;
}

.ctn-padd .about-page .left {
  text-align: left;
}

.ctn-padd .about-page:after {
  height: 165px;
}

.ctn-padd .news .wrapper {
  width: 1170px;
}

.ctn-padd .news .col {
  width: 32%;
  margin-right: 1.33%;
}

.ctn-padd .news .col:nth-child(3n+3) {
  margin-right: 0;
}

.ctn-padd .news .pagination {
  margin-top: 50px;
}

.ctn-padd.minmarg {
  margin-top: 30px;
}

.bg-trans {
  background: url(../images/material/bg-news.png) no-repeat;
  background-position: right bottom -200px;
}

.list-services {
  margin-top: -75px;
}

.list-services .wrapper {
  width: 1030px;
}

.list-services .col {
  width: 310px;
  height: 400px;
  float: left;
  position: relative;
  margin-right: 50px;
  margin-bottom: 80px;
}

.list-services .col:nth-child(3n + 3) {
  margin-right: 0;
}

.list-services .col .images-content {
  width: 310px;
  height: 210px;
  position: relative;
  padding-left: 3px;
  box-sizing: border-box;
}

.list-services .col .images-content img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

.list-services .col .content .title {
  position: relative;
  margin-bottom: 30px;
}

.list-services .col .content .title h4 {
  font-size: 24px;
  letter-spacing: 0.5;
  color: #333;
  height: 65px;
  padding: 40px 0 0 30px;
  box-sizing: border-box;
  font-family: 'proxima_novabold';
  overflow: hidden;
}

.list-services .col .content .title .info {
  font-size: 16px;
  font-family: 'proxima_novasemibold';
  line-height: 28px;
  color: #999999;
  height: 80px;
  padding: 25px 0 0 30px;
  box-sizing: border-box;
}

.list-services .col .content .title:after {
  content: "";
  position: absolute;
  display: block;
  height: 5px;
  width: 45px;
  background: #040404;
  bottom: -15px;
  left: 0;
}

.list-services .col .content p {
  padding: 30px 0 30px 30px;
  box-sizing: border-box;
  font-size: 18px;
  line-height: 28px;
  color: #333;
  font-family: 'proxima_novaregular';
  margin-bottom: 0;
}

.list-services .col .content span {
  padding: 40px 0 0px 30px;
  box-sizing: border-box;
}

.list-services .col .content span:after {
  left: 30px;
}

.pagination {
  position: relative;
  text-align: center;
  padding-bottom: 130px;
  box-sizing: border-box;
}

.pagination a {
  position: relative;
  display: inline-block;
  font-size: 20px;
  color: #aeaeae;
  margin: 0 10px;
  vertical-align: middle;
  min-width: 15px;
  font-family: 'proxima_novabold';
  padding-bottom: 15px;
  vertical-align: bottom;
}

.pagination a:after {
  content: "";
  position: absolute;
  width: 0%;
  height: 3px;
  left: 0px;
  bottom: 0px;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
  width: 35px;
  background: linear-gradient(to right, #cecece 0%, #cecece 50%, #cecece 50%, #dfdfdf 50%, #dfdfdf 100%);
}

.pagination a.active {
  font-size: 25px;
  color: #2458b0;
  padding-bottom: 10px;
  vertical-align: top;
}

.pagination a.active:after {
  background: linear-gradient(to right, #2458b0 0%, #2458b0 50%, #2458b0 50%, #cecece 50%, #cecece 100%);
}

.pagination a.arr {
  width: 20px;
  height: 16px;
  background: url("../images/material/a-right-blue.png") no-repeat left center;
  margin: 0 20px;
  float: right;
}

.pagination a.arr:hover {
  background-position: right center !important;
}

.pagination a.arr:after {
  display: none;
}

.pagination a.arr.prev {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  float: left;
}

.pagination a.arr.disabled {
  background: url("../images/material/a-right-grey.png") no-repeat left center;
}

.std-content {
  margin-top: -310px;
  position: relative;
  z-index: 1;
  padding-bottom: 60px;
}

.std-content .wrapper {
  width: 1170px;
}

.std-content .left {
  width: 40%;
}

.std-content .right {
  width: 58%;
}

.std-content .content {
  margin-top: 60px;
}

.std-content .title {
  padding: 0 30px;
  box-sizing: border-box;
  margin-bottom: 10px;
}

.std-content .title span {
  font-family: 'proxima_novalight';
  font-size: 13px;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.std-content .title h3 {
  font-family: 'proxima_novabold';
  font-size: 25px;
  line-height: 35px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.std-content .title .company {
  font-family: 'proxima_novasemibold';
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.5px;
  color: #333333;
  font-style: italic;
  margin: 15px 0 35px 0;
}

.std-content .content {
  box-sizing: border-box;
}

.std-content .content p {
  font-family: 'proxima_novaregular';
  font-size: 18px;
  line-height: 28px;
  overflow: hidden;
  max-height: 230px;
  text-align: justify;
}

.std-content .content p a {
  font-family: 'proxima_novabold';
  color: #2458b0;
}

.std-content .content ul {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-bottom: 10px;
  font-family: 'proxima_novaregular';
}

.std-content .content ul li {
  padding-left: 30px;
  text-indent: 0px;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0.5px;
  position: relative;
  margin-bottom: 10px;
}

.std-content .content ul li:before {
  content: "• ";
  color: #2458b0;
  position: absolute;
  left: 0;
}

.std-content .content ol {
  list-style: decimal;
  margin-bottom: 10px;
  font-family: 'proxima_novaregular';
}

.std-content .content ol li {
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0.5px;
  color: #333;
  text-indent: 0px;
  padding-left: 15px;
  margin-left: 20px;
  margin-bottom: 10px;
}

.std-content .content .link-content {
  font-family: 'proxima_novabold';
  color: #333333;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0.2px;
}

.std-content .content .address {
  font-size: 16px;
  line-height: 28px;
  margin: 25px 0;
}

.std-content .content .info p {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
}

.std-content .content .info p span {
  font-family: 'proxima_novabold';
  color: #2458b0;
  font-size: 16px;
  line-height: 28px;
  margin-right: 25px;
}

.std-content .content .projectsearch input[type="text"] {
  width: 350px;
  height: 55px;
  padding: 0 25px;
  box-sizing: border-box;
  font-family: 'proxima_novalight';
  font-size: 16px;
  line-height: 28px;
  color: #ccc;
  background: transparent;
  border: 1px solid #fff;
}

.std-content .content .projectsearch input[type="text"]::-webkit-input-placeholder {
  color: #ccc;
}

.std-content .content .projectsearch input[type="text"]::-moz-placeholder {
  color: #ccc;
}

.std-content .content .projectsearch input[type="text"]:-ms-input-placeholder {
  color: #ccc;
}

.std-content .content .projectsearch input[type="text"]:-moz-placeholder {
  color: #ccc;
}

.std-content .content .projectsearch input[type="submit"] {
  background: none;
  background: url(../images/material/ic-search2.png) no-repeat center;
  margin-left: -30px;
  border: none;
}

.std-content.career-pg {
  margin-top: -100px;
}

.std-content.contact-pg {
  margin-top: -100px;
}

.std-content.key-pg .images {
  text-align: center;
}

.std-content.key-pg .content p {
  overflow: unset;
  max-height: unset;
}

.std-content.key-pg .content .left .images {
  padding: 0 30px 0 70px;
  text-align: left;
  margin-top: 20px;
}

.std-content.prodet .content p {
  overflow: unset;
  max-height: unset;
}

.std-content.newssc .title h3 {
  overflow: hidden;
  max-height: 110px;
}

.std-content.newssc .content p {
  overflow: hidden;
  max-height: 110px;
}

.slider-content {
  position: relative;
}

.slider-content .slick-arrow {
  position: absolute;
  bottom: -20px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  background-color: #2458b0;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  border: none;
  color: transparent;
  z-index: 2;
  padding: 0;
}

.slider-content .slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-white.png) no-repeat;
  right: 120px;
  box-sizing: border-box;
  background-position: center;
}

.slider-content .slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-white.png) no-repeat;
  right: 70px;
  background-position: center;
}

.slider-content .slick-disabled.slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-grey.png) no-repeat;
  right: 120px;
  box-sizing: border-box;
  background-position: center;
  cursor: default;
}

.slider-content .slick-disabled.slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-grey.png) no-repeat;
  right: 70px;
  background-position: center;
  cursor: default;
}

#map {
  width: 1170px;
  height: 470px;
}

#map iframe {
  width: 100%;
  height: 100%;
}

.form h4 {
  font-family: 'proxima_novabold';
  font-size: 16px;
  line-height: 65px;
  letter-spacing: 0.8px;
  color: #666666;
  text-transform: uppercase;
  text-align: center;
}

.form .col {
  margin-bottom: 20px;
}

.form .col input, .form .col textarea {
  height: 55px;
  padding: 0;
  width: 100%;
  padding: 20px 25px;
  box-sizing: border-box;
  font-family: 'proxima_novalight';
  color: #666;
  font-size: 16px;
  line-height: 28px;
}

.form .col input::-webkit-input-placeholder, .form .col textarea::-webkit-input-placeholder {
  color: #999999;
}

.form .col input::-moz-placeholder, .form .col textarea::-moz-placeholder {
  color: #999999;
}

.form .col input:-ms-input-placeholder, .form .col textarea:-ms-input-placeholder {
  color: #999999;
}

.form .col input:-moz-placeholder, .form .col textarea:-moz-placeholder {
  color: #999999;
}

.form .col textarea {
  height: 155px;
  resize: none;
}

.form .col input[type="submit"] {
  font-family: 'proxima_novabold';
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0.2px;
  background: transparent;
  border: none;
  color: #2458b0;
  position: relative;
  text-align: left;
  padding-left: 0;
  cursor: pointer;
}

.form .col .btn {
  position: relative;
  text-align: left;
  padding-left: 0;
}

.form .col .btn:after {
  content: "";
  position: absolute;
  width: 0%;
  height: 3px;
  left: 0px;
  bottom: 0px;
  transition: 0.2s ease-out all;
  -webkit-transition: 0.2s ease-out all;
  -moz-transition: 0.2s ease-out all;
  -ms-transition: 0.2s ease-out all;
  -o-transition: 0.2s ease-out all;
  width: 35px;
  background: linear-gradient(to right, #2458b0 0%, #2458b0 50%, #2458b0 50%, #cecece 50%, #cecece 100%);
}

.form .col.error input, .form .col.error textarea {
  border: 1px solid #da0000;
  margin-bottom: 10px;
}

.form .col.error span {
  color: #da0000;
}

.form .g-recaptcha {
  transform: scale(0.77);
  -webkit-transform: scale(0.77);
  transform-origin: 0 0;
  -webkit-transform-origin: 0 0;
}

.form .col_5 {
  width: 50%;
  padding-right: 10px;
  box-sizing: border-box;
  padding-left: 0;
}

.pgproject {
  margin-top: -90px;
  padding-bottom: 150px;
}

.slider-pg-project {
  position: relative;
}

.slider-pg-project .slick-arrow {
  position: absolute;
  bottom: -20px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  background-color: #2458b0;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  border: none;
  color: transparent;
  z-index: 2;
  padding: 0;
}

.slider-pg-project .slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-white.png) no-repeat;
  right: 120px;
  box-sizing: border-box;
  background-position: center;
}

.slider-pg-project .slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-white.png) no-repeat;
  right: 70px;
  background-position: center;
}

.slider-pg-project .slick-disabled.slick-prev {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-left-grey.png) no-repeat;
  right: 120px;
  box-sizing: border-box;
  background-position: center;
  cursor: default;
}

.slider-pg-project .slick-disabled.slick-next {
  border: none;
  font-size: 0;
  width: 50px;
  height: 40px;
  background: #2458b0 url(../images/material/a-right-grey.png) no-repeat;
  right: 70px;
  background-position: center;
  cursor: default;
}

.prother {
  margin-top: -425px;
}

.prother .wrapper {
  width: 1170px;
}

.prother .content {
  padding: 0;
}

.prother table {
  width: 100%;
  margin-top: 80px;
}

.prother table thead {
  background: #0eb8eb;
}

.prother table thead tr th {
  height: 50px;
  color: #fff;
  font-family: 'proxima_novabold';
  font-size: 16px;
  line-height: 65px;
  letter-spacing: 0.5px;
  padding-left: 20px;
  box-sizing: border-box;
  text-align: left;
}

.prother table tbody tr td {
  padding: 20px;
  font-family: 'proxima_novaregular';
  font-size: 15px;
  line-height: 22px;
  color: #333;
  text-align: left;
}

.prother table tbody tr td:nth-child(2) {
  width: 27%;
  text-align: left;
  padding: 20px;
  font-family: 'proxima_novabold';
}

.prother table tbody tr td:nth-child(3) {
  width: 20%;
}

.prother table tbody tr td:nth-child(4) {
  width: 27%;
}

.prother table tbody tr td:nth-child(5) {
  width: 20%;
}

.prother table tbody tr:nth-child(odd) {
  background: #efefef;
}

.prother table tbody tr:nth-child(even) {
  background: #e1e1e1;
}

.prother .pagination {
  padding: 65px 0;
}

.bg-other {
  margin-top: 35px;
  position: relative;
}

.bg-other .link {
  position: absolute;
  bottom: 50%;
  right: 60px;
}

.landscape-list {
  margin-bottom: 80px;
}

.landscape-list .ls-lands {
  color: #333333;
  padding-bottom: 25px;
  margin-bottom: 30px;
  border-bottom: 1px solid #c2c2c2;
  display: block;
}

.landscape-list .ls-lands p {
  padding-left: 20px;
  font-size: 13px;
  line-height: 18px;
  margin-bottom: 0;
}

.landscape-list .ls-lands .title {
  padding-left: 20px;
  position: relative;
  padding-bottom: 15px;
  margin-bottom: 20px;
}

.landscape-list .ls-lands .title:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  background: #333;
  width: 46px;
}

.landscape-list .ls-lands .title h5 {
  font-family: 'proxima_novabold';
  letter-spacing: .5px;
  font-size: 16px;
  line-height: 20px;
  margin-bottom: 15px;
}

.landscape-list .ls-lands .title span {
  font-size: 13px;
  color: #999999;
  font-family: 'proxima_novasemibold';
}

.search-box .wrapper {
  width: 1170px;
}

.alert {
  padding: 20px;
  background-color: #f44336;
  color: white;
  margin-bottom: 15px;
}

.success {
  padding: 20px;
  background-color: #4CAF50;
  color: white;
  margin-bottom: 15px;
}

.closebtn {
  margin-left: 15px;
  color: white;
  font-weight: bold;
  float: right;
  font-size: 22px;
  line-height: 20px;
  cursor: pointer;
  transition: 0.3s;
}

.closebtn:hover {
  color: black;
}

.under-maintenance .left {
  width: 70%;
  padding: 200px 305px;
  box-sizing: border-box;
  background: url(../images/content/bg-um.jpg) no-repeat;
  background-size: cover;
  height: 100vh;
}

.under-maintenance .left img {
  margin-bottom: 50px;
}

.under-maintenance .left h5 {
  font-weight: 700;
  font-size: 18px;
  line-height: 24px;
  color: #414141;
  margin-bottom: 30px;
}

.under-maintenance .left h1 {
  font-weight: 300;
  font-size: 72px;
  line-height: 98px;
  color: #414141;
  position: relative;
  margin-bottom: 60px;
}

.under-maintenance .left h1:after {
  position: absolute;
  display: block;
  content: "";
  width: 45px;
  height: 5px;
  background: #255BB6;
  bottom: -20px;
  left: 0px;
}

.under-maintenance .left p {
  font-size: 16px;
  line-height: 28px;
  margin-bottom: 0;
}

.under-maintenance .left .info .col {
  float: left;
  width: 50%;
}

.under-maintenance .right {
  width: 30%;
}

.under-maintenance .right .images {
  object-fit: cover;
  overflow: hidden;
  position: relative;
  display: block;
  height: 100vh;
}

.under-maintenance .right .images img {
  object-fit: cover;
  height: 100%;
  display: block;
}

/* footer
----------------------------------------------------------------------------------------------*/
footer {
  height: 245px;
  background: #ebebeb;
  padding-top: 80px;
  box-sizing: border-box;
}

footer .lf-foot {
  float: left;
}

footer .lf-foot .col {
  width: 385px;
  float: left;
  font-size: 16px;
  line-height: 28px;
  color: #666666;
}

footer .lf-foot .col p {
  color: #666666;
  line-height: 28px;
}

footer .lf-foot .col li span {
  text-transform: uppercase;
  font-weight: 600;
  margin-right: 15px;
}

footer .lf-foot .col .logo img {
  width: 215px;
}

footer .rh-foot {
  float: right;
}

footer .rh-foot .top ul li {
  float: left;
  margin-left: 40px;
  margin-bottom: 45px;
}

footer .rh-foot .top ul li a {
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  color: #666666;
}

footer .rh-foot .bottom {
  text-align: right;
}

footer .rh-foot .bottom p {
  font-weight: 400;
  color: #999999;
  font-size: 16px;
  line-height: 28px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwic2Fzcy1saWIuc2NzcyIsImJvdXJib24vX2JvdXJib24uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwiYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCJib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsImJvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsImJvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsImJvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsImJvdXJib24vYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsImJvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBZb3VyIE5hbWVcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbkBpbXBvcnQgXCJzYXNzLWxpYlwiO1xyXG5cclxuYm9keSB7ICBcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCI7IFxyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xyXG59XHJcbmZpZ3VyZXtcclxuICAgIG1hcmdpbjogMDsgcGFkZGluZzogMDtcclxuICAgIGltZ3t2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO31cclxufVxyXG5pbWd7IGJvcmRlcjowOyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH1cclxucCB7XHJcbiAgICBtYXJnaW46IDFweCAwIDE1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjBweDtcclxufVxyXG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRDhEOEQ4O1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiAjNjY2O1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5pbnB1dFt0eXBlPWNoZWNrYm94XSwgaW5wdXRbdHlwZT1yYWRpb10ge1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcclxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XHJcbiAgICBib3JkZXItbGVmdC1zdHlsZTogbm9uZTtcclxufVxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBcclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiAge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbn1cclxuaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcbmgxIHsgZm9udC1zaXplOiAzMnB4OyB9XHJcbmgyIHsgZm9udC1zaXplOiAyOHB4OyB9XHJcbmgzIHsgZm9udC1zaXplOiAyNHB4OyB9XHJcbmg0IHsgZm9udC1zaXplOiAyMHB4OyB9IFxyXG5oNSB7IGZvbnQtc2l6ZTogMTZweDsgfSBcclxuaDYgeyBmb250LXNpemU6IDE0cHg7IH1cclxuLyogc3RydWN0dXJlIFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuc2VjdGlvbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxyXG4ud3JhcHBlciB7d2lkdGg6IDE3NDFweDttYXJnaW46IDAgYXV0bzt9XHJcbi5hZnRlcl9jbGVhcjphZnRlciwud3JhcHBlcjphZnRlcixzZWN0aW9uOmFmdGVye2NsZWFyOmJvdGg7ZGlzcGxheTogYmxvY2s7Y29udGVudDpcIiBcIn1cclxuLmJlZm9yZV9jbGVhcjpiZWZvcmV7Y2xlYXI6Ym90aDtkaXNwbGF5OiBibG9jaztjb250ZW50OlwiIFwifVxyXG4uZmxleCB7ZGlzcGxheTogLXdlYmtpdC1ib3g7ZGlzcGxheTogLW1vei1ib3g7ZGlzcGxheTogLW1zLWZsZXhib3g7ZGlzcGxheTogLXdlYmtpdC1mbGV4OyBkaXNwbGF5OiBmbGV4O31cclxuLnRyYW5zaXRpb25BbGwge0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMnMpO31cclxuLnRyYW5zaXRpb25Db2xvciB7QGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciBlYXNlLW91dCAwLjJzKTt9XHJcbi50cmlnZ2Vye3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IGhlaWdodDogLjVweDsgfVxyXG4uYnRuLWJsdWV7fVxyXG5cclxuXHJcbi8qIGhlYWRlclxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuaGVhZGVye1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyByaWdodDogMDsgZGlzcGxheTogYmxvY2s7IHotaW5kZXg6IDk7IEBpbmNsdWRlIHRyYW5zaXRpb24ocGFkZGluZyAwLjNzIGVhc2Utb3V0KTsgYmFja2dyb3VuZDogI2ZmZjsgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IGhlaWdodDogMTIwcHg7IHBhZGRpbmc6IDVweCAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB0b3A6IDA7XHJcbiAgICAud3JhcHBlcnsgXHJcbiAgICAgICAgd2lkdGg6IDE3NDFweDsgcG9zaXRpb246IHJlbGF0aXZlOyBAZXh0ZW5kIC5hZnRlcl9jbGVhcjtcclxuICAgICAgICAubG9nb3sgXHJcbiAgICAgICAgICAgIHdpZHRoOiA0MDBweDsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDE1cHggMDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgaW1neyB3aWR0aDogMjI2cHg7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJoX2hlYWR7IFxyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMzsgd2lkdGg6IGF1dG87IG1hcmdpbi10b3A6IDIwcHg7IEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgICAgICAuYnVyZ19uYXZ7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgIG5hdntcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgYXsgXHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogIzk5OTk5OTsgbWFyZ2luLWxlZnQ6IDBweDsgcGFkZGluZzogMTBweCAzMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3JkZXItcmFkaXVzOiAzNXB4OyBmb250LXdlaWdodDogNjAwOyBsaW5lLWhlaWdodDogNDVweDtsZXR0ZXItc3BhY2luZzogMC44cHg7IHBhZGRpbmctYm90dG9tOiAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YXNlbWlib2xkJzsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjMwcyBsaW5lYXIgYWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogM3B4OyB3aWR0aDogMHB4OyBiYWNrZ3JvdW5kOiAjMjQ1OGIwOyBib3R0b206IDBweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmV7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzI0NThiMDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogM3B4OyB3aWR0aDogMjBweDsgYmFja2dyb3VuZDogIzI0NThiMDsgYm90dG9tOiAwcHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7IH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMyNDU4YjA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgQGluY2x1ZGUgdHJhbnNpdGlvbigwLjE1cyBsaW5lYXIgYWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlcnsgY29udGVudDpcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDNweDsgd2lkdGg6IDIwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjA7IGJvdHRvbTogMHB4OyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7IH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bCBsaXsgXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYXsgZGlzcGxheTogYmxvY2s7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYm94LXNlYXJjaCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMjRweCAwIDAgNDBweDsgICBcclxuICAgICAgICAgICAgICAgIC5pY28tc2VhcmNoIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtoZWlnaHQ6IDI0cHg7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDM3cHgpO2Rpc3BsYXk6IGJsb2NrO3RleHQtaW5kZW50OiAtOTk5OTk5OXB4O3Bvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9pYy1zZWFyY2gucG5nKSBuby1yZXBlYXQgY2VudGVyO0BpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7ei1pbmRleDoyO2Rpc3BsYXk6YmxvY2s7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYmxvY2tTZWFyY2ggeyBcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMzkwcHg7IGhlaWdodDogNjBweDsgYmFja2dyb3VuZDogI2VhZWFlYTsgdG9wOjEwMCU7IHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC03MHB4OyBvcGFjaXR5OiAwOyB6LWluZGV4OiAyOyAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge2NvbG9yOiAjZWFlYWVhO30gICAgXHJcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB3aWR0aDogMzIwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogI2ZmZjsgcGFkZGluZzogMDsgYm9yZGVyOjA7IFxyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7IHBhZGRpbmc6IDAgMTVweDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNDAwOyAgXHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMCAwIDEwcHg7IGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlclJhZGl1cygzcHgpOyAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHsgIFxyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMTBweCAwIDAgMTVweDsgd2lkdGg6IDMwcHg7IGhlaWdodDogNDBweDsgcGFkZGluZzogMDsgYm9yZGVyOjA7ICBcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1zZWFyY2gucG5nJykgbm8tcmVwZWF0IDUwJSA1MCU7ICAgXHJcbiAgICAgICAgICAgIH0gIFxyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIG1pZGRsZVxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLmJhbm5lcnsgXHJcbiAgICBtYXJnaW4tdG9wOiAxMjBweDsgcGFkZGluZzogMCA5MHB4IDIwcHggMDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxOyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAuc2xpZGV7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgXHJcbiAgICAgICAgJjphZnRlcnsgZGlzcGxheTpibG9jazsgY29udGVudDogXCJcIjsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpOyBwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2JvdHRvbTogMDtsZWZ0OiAwO3JpZ2h0OiAwOyB9XHJcbiAgICB9XHJcbiAgICAuc2xpY2stc2xpZGVyeyBAaW5jbHVkZSBib3hTaGFkb3coMCAwIDIwcHggMCAjMDAwKTsgfVxyXG4gICAgLnNsaWNrLWRvdHN7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3JpZ2h0OjcwcHg7dG9wOjM1JTtcclxuICAgICAgICBidXR0b257XHJcbiAgICAgICAgICAgIGJvcmRlcjpub25lO2JhY2tncm91bmQ6bm9uZTtjb2xvcjojRkZGO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjAgMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowIDAgNDBweCAwO3BhZGRpbmc6MCAwIDVweCAwO2N1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWxpZ2h0JztcclxuICAgICAgICAgICAgJjpiZWZvcmV7Y29udGVudDonMCd9XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO3dpZHRoOjAlO2JhY2tncm91bmQ6ICNmZmY7aGVpZ2h0OjNweDtyaWdodDotNDBweDtib3R0b206NDBweDtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgZWFzZS1vdXQgYWxsKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNsaWNrLWFjdGl2ZXtcclxuICAgICAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDQwcHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGZvbnQtc2l6ZTogNjBweDsgbGluZS1oZWlnaHQ6IDY1cHg7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVye3dpZHRoOjIwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGltZ3tcclxuICAgICAgICBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAwOyB3aWR0aDogMTAwJTsgXHJcbiAgICB9XHJcbiAgICAuY2FwdGlvbnsgXHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBtYXJnaW4tbGVmdDogMjg1cHg7IGNvbG9yOiAjMmM5OGEyOyBib3R0b206IDE3JTsgdG9wOiBhdXRvOyB3aWR0aDogODYwcHg7IHotaW5kZXg6IDM7XHJcbiAgICAgICAgaDJ7IFxyXG4gICAgICAgICAgICBmb250LXNpemU6IDUwcHg7IGNvbG9yOiAjZmZmOyBtYXJnaW4tYm90dG9tOiAxNXB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBsaW5lLWhlaWdodDogNjVweDsgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjhweDsgbWF4LWhlaWdodDogMTgwcHg7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHB7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGNvbG9yOiAjZmZmOyBtYXJnaW4tYm90dG9tOiA0MHB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YXJlZ3VsYXInOyBtYXgtaGVpZ2h0OiA1MHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcbiAgICB9XHJcbn1cclxuLnN0YXRpYy1iYW5uZXJ7XHJcbiAgICBtYXJnaW4tdG9wOiAxMjBweDsgcGFkZGluZzogMCA5MHB4IDAgMDsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xyXG4gICAgLmltYWdlc3tcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgJjphZnRlcnsgZGlzcGxheTpibG9jazsgY29udGVudDogXCJcIjsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTsgcG9zaXRpb246IGFic29sdXRlO3RvcDogMDtib3R0b206IDA7bGVmdDogMDtyaWdodDogMDsgfVxyXG4gICAgICAgIGltZ3tcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMDsgd2lkdGg6IDEwMCU7ICAtd2Via2l0LWJveC1zaGFkb3c6IDE1cHggMTRweCAyMHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjI1KTsgLW1vei1ib3gtc2hhZG93OiAxNXB4IDE0cHggMjBweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IGJveC1zaGFkb3c6IDE1cHggMTRweCAyMHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICAgICAgICAgICAgJjphZnRlcnsgZGlzcGxheTpibG9jazsgY29udGVudDogXCJcIjsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQwKTsgcG9zaXRpb246IGFic29sdXRlO3RvcDogMDtib3R0b206IDA7bGVmdDogMDtyaWdodDogMDsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC50aXRsZXsgXHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI3NXB4OyBsZWZ0OiAzNzVweDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJzsgY29sb3I6ICNmZmY7IHotaW5kZXg6IDM7IFxyXG4gICAgICAgIGgyeyBmb250LXNpemU6IDUwcHg7IGxpbmUtaGVpZ2h0OiA2NXB4OyBsZXR0ZXItc3BhY2luZzogMC44cHg7IH1cclxuICAgIH1cclxuXHJcbiAgICAmLmVycm9ycGFnZXtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjhweDtcclxuICAgICAgICAmOmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiAwO3JpZ2h0OiAwO2hlaWdodDogNTUlO2JhY2tncm91bmQ6IzI0NThiMCB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9zaGFwZS5wbmcnKW5vLXJlcGVhdCByaWdodDt9XHJcbiAgICAgICAgLnRpdGxle1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7bGVmdDogNTAlO0BpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcclxuICAgICAgICAgICAgaDF7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI4MHB4O2ZvbnQtZmFtaWx5OiAnUmFsZXdheScsIHNhbnMtc2VyaWY7bWFyZ2luLWJvdHRvbTogNTBweDtmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgJi5taWR7Zm9udC1zaXplOiAxMDBweDttYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwe2ZvbnQtc2l6ZTogMjRweDtsaW5lLWhlaWdodDogMzBweDtmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YXJlZ3VsYXInO21hcmdpbi1ib3R0b206IDMwcHg7fVxyXG4gICAgICAgICAgICAubGluay11bntcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO2ZvbnQtc2l6ZTogMjVweDtwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiAwO3JpZ2h0OiAwO2hlaWdodDogMnB4O2JhY2tncm91bmQ6ICNmZmY7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5iZWZibHVle1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG4gICAgICAgICY6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwO2xlZnQ6IDA7cmlnaHQ6IDA7aGVpZ2h0OiA1NSU7YmFja2dyb3VuZDojMjQ1OGIwIHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL3NoYXBlLnBuZycpbm8tcmVwZWF0IHJpZ2h0O31cclxuICAgIH1cclxufVxyXG4ubGlua3tcclxuICAgIGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAwLjJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgJjphZnRlcntcclxuICAgICAgICBoZWlnaHQ6M3B4OyB3aWR0aDogNTVweDsgY29udGVudDpcIlwiOyBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xNXB4OyBsZWZ0OiAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7XHJcbiAgICB9XHJcbiAgICAmLndoaXRle1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6I2ZmZjsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5ibHVle1xyXG4gICAgICAgIGNvbG9yOiAjMjQ1OGIwO1xyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IzI0NThiMDsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJjpob3ZlcntcclxuICAgICAgICAmOmFmdGVyeyB3aWR0aDowcHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMjVzKTsgfVxyXG4gICAgfVxyXG59XHJcbi5zY3JvbGwtZG93bnsgXHJcbiAgICBsaW5lLWhlaWdodDogNjVweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgY29sb3I6ICNmZmY7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZm9udC1zaXplOiAxOHB4OyByaWdodDogLTIxNXB4OyBib3R0b206IDI5NXB4OyAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLDEwMCUpIHJvdGF0ZSg5MGRlZykpO3RyYW5zZm9ybS1vcmlnaW46IDAgMDtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMjVzIGVhc2Utb3V0IGFsbCk7XHJcbiAgICAmOmhvdmVyeyBjb2xvcjojZmZmOyB9XHJcbiAgICBzcGFueyBcclxuICAgICAgICBoZWlnaHQ6IDRweDsgd2lkdGg6IDcwcHg7IGJhY2tncm91bmQ6ICNmZmY7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTogM3B4O1xyXG4gICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiA0cHg7IHdpZHRoOiA0NXB4OyBiYWNrZ3JvdW5kOiMwMDA7IH1cclxuICAgIH1cclxufVxyXG4uYWJvdXQtdXN7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDMwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9zaGFwZS5wbmcpIG5vLXJlcGVhdCByaWdodDsgbWFyZ2luLXRvcDogLTQwNXB4OyB6LWluZGV4OiAwOyBwYWRkaW5nLXRvcDogNDk1cHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgcGFkZGluZy1ib3R0b206IDMwMHB4OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAud3JhcHBlcnsgd2lkdGg6IDEzNTBweDsgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7fVxyXG4gICAgLmxlZnQsIC5yaWdodHsgd2lkdGg6IDUwJTsgfVxyXG4gICAgLmxlZnR7IFxyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiAxMDBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuICAgIC5yaWdodHtcclxuICAgICAgICBjb2xvcjogI2ZmZjsgbWFyZ2luLXRvcDogODBweDsgcGFkZGluZy1ib3R0b206IDUwcHg7XHJcbiAgICAgICAgcHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFyZWd1bGFyJzsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpbmt7IFxyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICY6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogXCJcIjsgd2lkdGg6IDEwOTBweDsgaGVpZ2h0OiAyNjBweDsgYmFja2dyb3VuZDojZmZmOyBib3R0b206IDA7bGVmdDogMHB4OyB9XHJcbiAgICAuZmlsdGVyLW5ld3N7IFxyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0MCU7IFxyXG4gICAgICAgIHNlbGVjdHtcclxuICAgICAgICAgICAgd2lkdGg6IDM1MHB4OyBoZWlnaHQ6IDU1cHg7IHBhZGRpbmc6IDAgMjVweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFsaWdodCc7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGNvbG9yOiAjY2NjOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hLWRvd24ucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDtib3JkZXI6MXB4IHNvbGlkICNmZmY7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgb3B0aW9ueyBjb2xvcjogIzMzMzsgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYmNydW1iLndoaXRle1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBoMixoMXtcclxuICAgICAgICAgICAgJjphZnRlcnsgZGlzcGxheTpub25lOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogXCJcIjsgd2lkdGg6IDQ1cHg7IGhlaWdodDogNXB4OyBiYWNrZ3JvdW5kOiNmZmY7IGJvdHRvbTotMjBweDtsZWZ0OiAwcHg7IH1cclxuICAgIH1cclxuICAgICYubm8tbGltaXR7XHJcbiAgICAgICAgLmJjcnVtYi53aGl0ZXtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgICAgICAgICAgIGgyeyAgbWF4LWhlaWdodDogdW5zZXQ7IG92ZXJmbG93OiB1bnNldDsgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0e1xyXG4gICAgICAgICAgICBweyBoZWlnaHQ6IGF1dG87IG92ZXJmbG93OiB1bnNldDsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSAgIFxyXG4uaG9tZS1jb250ZW50e1xyXG4gICAgLmFib3V0LXVze1xyXG4gICAgICAgIC5yaWdodHtcclxuICAgICAgICAgICAgcHsgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJjcnVtYi53aGl0ZXtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAmOmFmdGVyeyByaWdodDogMHB4OyBsZWZ0OiB1bnNldDsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ub3VyLXNlcnZpY2V7XHJcbiAgICBtYXJnaW4tdG9wOiAtODVweDsgei1pbmRleDogMTsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2JnLXNlcnZpY2UucG5nKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0OyBwYWRkaW5nLWJvdHRvbTogMTEwcHg7XHJcbiAgICBcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTM1MHB4OyB9XHJcbiAgICAubGVmdHsgd2lkdGg6IDM1JTsgbWFyZ2luLWxlZnQ6IDQwcHg7IH1cclxuICAgIC5yaWdodHsgd2lkdGg6IDU4JTsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbiAgICAuc2VydmljZS1pbWd7XHJcbiAgICAgICAgLnNsaWNrLXNsaWRle1xyXG4gICAgICAgICAgICBpbWd7IGhlaWdodDogNTI1cHg7IHdpZHRoOiAxMDAlOyBvYmplY3QtZml0OiBjb3Zlcjsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpZGV7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxyXG4gICAgICAgIGltZ3tcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAuc2VydmljZS1jYXB0e1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMzsgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICAgIC5zbGljay1zbGlkZXsgaGVpZ2h0OiAyMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMjMwcHg7fVxyXG4gICAgICAgIC5jYXB0aW9ue1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwOyByaWdodDogMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDQsIDQsIDQsIDAuNjgpOyBjb2xvcjogI2ZmZjsgcGFkZGluZzogNDVweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgei1pbmRleDogMzsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMjMwcHg7IHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoNHsgZm9udC1zaXplOiAzMXB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBtYXJnaW4tYm90dG9tOiAyNXB4OyBvdmVyZmxvdzogaGlkZGVuOyBtYXgtaGVpZ2h0OiA2MnB4O31cclxuICAgICAgICAgICAgcHsgZm9udC1zaXplOiAxNnB4OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhbGlnaHQnOyBsaW5lLWhlaWdodDogMjVweDsgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogNzBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1saXN0eyAvKm92ZXJmbG93OiB2aXNpYmxlOyAqL3dpZHRoOiAyMzBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xODBweDsgcGFkZGluZzogMCFpbXBvcnRhbnQ7IHJpZ2h0OiA0NXB4O31cclxuICAgICAgICAuc2xpY2stYXJyb3d7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAyMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6ICNjY2M7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgZm9udC1zaXplOiAwOyBib3JkZXI6IG5vbmU7IGNvbG9yOiB0cmFuc3BhcmVudDt6LWluZGV4OiAyOyBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpY2stcHJldntiYWNrZ3JvdW5kOm5vbmU7IGJvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLWxlZnQtYmx1ZS5wbmcpIG5vLXJlcGVhdDsgbGVmdDogMHB4O31cclxuICAgICAgICAuc2xpY2stbmV4dHtiYWNrZ3JvdW5kOm5vbmU7IGJvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLXJpZ2h0LWJsdWUucG5nKSBuby1yZXBlYXQ7IGxlZnQ6IDUwcHg7fVxyXG4gICAgICAgIC5zbGljay1kaXNhYmxlZHtcclxuICAgICAgICAgICAgJi5zbGljay1wcmV2e2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYS1sZWZ0LWdyZXkucG5nKSBuby1yZXBlYXQ7IGN1cnNvcjogZGVmYXVsdDt9XHJcbiAgICAgICAgICAgICYuc2xpY2stbmV4dHtiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtZ3JleS5wbmcpIG5vLXJlcGVhdDsgY3Vyc29yOiBkZWZhdWx0O31cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNsaWNrLWRvdHN7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MzVweDsgXHJcbiAgICAgICAgICAgIGxpeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cclxuICAgICAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO2NvbG9yOiNjZWNlY2U7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NzAwO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWxpZ2h0JztsaW5lLWhlaWdodDogNDVweDsgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7Y29udGVudDonMCd9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6MCU7aGVpZ2h0OjNweDtsZWZ0OjBweDtib3R0b206MHB4O0BpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBlYXNlLW91dCBhbGwpOyB3aWR0aDogMzVweDsgYmFja2dyb3VuZDogI2NlY2VjZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNsaWNrLWFjdGl2ZXtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbntcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBmb250LXNpemU6IDI1cHg7IGxpbmUtaGVpZ2h0OiA1MHB4OyBjb2xvcjogIzI0NThiMDtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVye2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzI0NThiMCAwJSwjMjQ1OGIwIDUwJSwjMjQ1OGIwIDUwJSwjY2VjZWNlIDUwJSwjY2VjZWNlIDEwMCUpO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uY29tcGFueS1vdmVydmlld3tcclxuICAgIG1hcmdpbi10b3A6IC0xMDBweDtcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4OyB9XHJcbiAgICAuY29se1xyXG4gICAgICAgIHdpZHRoOiAzNzBweDsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OiAzMHB4OyBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gICAgICAgICY6bnRoLWNoaWxkKDNuKzMpeyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAuaW1hZ2VzLWNvbnRlbnR7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzNzBweDsgaGVpZ2h0OiAyMTBweDsgYmFja2dyb3VuZDogI2ViZWJlYjsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyOyBwYWRkaW5nLWxlZnQ6IDNweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgaW1neyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgbGVmdDogMDsgbWFyZ2luOiBhdXRvOyB9XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzI0NThiMDsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpOyBib3JkZXI6IDFweCBzb2xpZCAjMjQ1OGIwO1xyXG4gICAgICAgICAgICAgICAgaW1ney13ZWJraXQtZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGVudHtcclxuICAgICAgICAgICAgLnRpdGxleyBcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IDAuNTsgY29sb3I6ICMzMzM7IGhlaWdodDogOTBweDsgcGFkZGluZzogMzFweCAwIDAgMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgcG9zaXRpb246IHJlbGF0aXZlOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBoNHsgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogMjNweDsgfVxyXG4gICAgICAgICAgICAgICAgJjphZnRlcnsgY29udGVudDpcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDVweDsgd2lkdGg6IDQ1cHg7IGJhY2tncm91bmQ6ICMwNDA0MDQ7IGJvdHRvbTogMDsgbGVmdDogMDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHsgXHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMCAzMHB4OyAvKmJveC1zaXppbmc6IGJvcmRlci1ib3g7ICovZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICMzMzM7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi52aXNpLW1pc2l7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMjBweDtcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4OyB9XHJcbiAgICAuYmxvY2t7XHJcbiAgICAgICAgbWFyZ2luOiA2NXB4IDA7IEBleHRlbmQgLmZsZXg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgIC5jb2x7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogdGFibGU7IGhlaWdodDogMzIwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHdpZHRoOiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZntcclxuICAgICAgICAgICAgd2lkdGg6IDQwJTsgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaHsgcGFkZGluZy1yaWdodDogMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd2lkdGg6IDQwJTsgZmxvYXQ6IHJpZ2h0O31cclxuICAgICAgICAuaW1hZ2Vze1xyXG4gICAgICAgICAgICBpbWd7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyBwYWRkaW5nLXRvcDogNzVweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgaDN7IFxyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzNXB4OyBsZXR0ZXItc3BhY2luZzogMC41OyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiA0MHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOiA0MHB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcnsgY29udGVudDpcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDVweDsgd2lkdGg6IDQ1cHg7IGJhY2tncm91bmQ6ICMwNDA0MDQ7IGJvdHRvbTogMDsgbGVmdDogLTQwcHg7fSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwLCB1bCBsaXtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwgbGl7IGxpc3Qtc3R5bGU6IGRpc2M7IG1hcmdpbi1sZWZ0OiAzMHB4OyBtYXJnaW4tYm90dG9tOiAzMHB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgICYubGYge29yZGVyOiAyOyAtd2Via2l0LW9yZGVyOiAyOyAtbW96LW9yZGVyOiAyOyAtbXMtb3JkZXI6IDI7fVxyXG4gICAgICAgICAgICAgICAgJi5yaCB7b3JkZXI6IDE7IC13ZWJraXQtb3JkZXI6IDE7IC1tb3otb3JkZXI6IDE7IC1tcy1vcmRlcjogMTsgcGFkZGluZy1sZWZ0OiAyMHB4OyBwYWRkaW5nLXJpZ2h0OiAwOyB0ZXh0LWFsaWduOiByaWdodDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbnRlbnR7XHJcbiAgICAgICAgICAgICAgICBoM3tcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyeyBsZWZ0OnVuc2V0OyByaWdodDogLTQwcHg7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHVsIGxpeyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmNvcmUtdmFsdWVze1xyXG4gICAgLndyYXBwZXJ7IHdpZHRoOiAxMTcwcHg7fVxyXG4gICAgLmludHJve1xyXG4gICAgICAgIGhlaWdodDogYXV0bzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7XHJcbiAgICAgICAgLmxlZnR7IFxyXG4gICAgICAgICAgICB3aWR0aDogNDAwcHg7IFxyXG4gICAgICAgICAgICBoM3sgXHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMwMzAzMDsgZm9udC1zaXplOiAzNXB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBsaW5lLWhlaWdodDogNDhweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6IFwiXCI7IHdpZHRoOiA0NXB4OyBoZWlnaHQ6IDVweDsgYmFja2dyb3VuZDojMzAzMDMwOyBib3R0b206IC0yMHB4O2xlZnQ6IDBweDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodHsgXHJcbiAgICAgICAgICAgIHdpZHRoOiA3MDBweDsgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgICAgICAgICAgIHB7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI4cHg7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29yZXtcclxuICAgICAgICBAZXh0ZW5kIC5hZnRlcl9jbGVhcjtcclxuICAgICAgICAuY29se1xyXG4gICAgICAgICAgICB3aWR0aDogMzcwcHg7IGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1yaWdodDogMzBweDsgbWFyZ2luLWJvdHRvbTogNDVweDtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMyl7IG1hcmdpbi1yaWdodDogMDsgfVxyXG4gICAgICAgICAgICAuaW1hZ2VzLWNvbnRlbnR7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzcwcHg7IGhlaWdodDogMjEwcHg7IGJhY2tncm91bmQ6ICNlYmViZWI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyOiAxcHggc29saWQgI2MyYzJjMjsgcGFkZGluZy1sZWZ0OiAzcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMjVzKTtcclxuICAgICAgICAgICAgICAgIGltZ3sgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgcmlnaHQ6IDA7IGxlZnQ6IDA7IG1hcmdpbjogYXV0bzsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICAgICAgLnRpdGxleyBcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7IGxldHRlci1zcGFjaW5nOiAwLjU7IGNvbG9yOiAjMzMzOyBoZWlnaHQ6IDkwcHg7IHBhZGRpbmc6IDQwcHggMCAwIDMwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJztcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogNXB4OyB3aWR0aDogNDVweDsgYmFja2dyb3VuZDogIzA0MDQwNDsgYm90dG9tOiAwOyBsZWZ0OiAwO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHB7IFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMCA0MHB4IDMwcHg7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGNvbG9yOiAjMzMzOyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YXJlZ3VsYXInOyAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgLmltYWdlcy1jb250ZW50e1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyNDU4YjA7IEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIGVhc2Utb3V0IDAuMjVzKTtcclxuICAgICAgICAgICAgICAgICAgICBpbWd7IC13ZWJraXQtZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLm91ci1wcm9qZWN0e1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTcwcHg7IHBhZGRpbmctYm90dG9tOiAxMDVweDsgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC53cmFwcGVye1xyXG4gICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMzUwcHg7XHJcbiAgICB9XHJcbiAgICAuYmNydW1ie1xyXG4gICAgICAgIHdpZHRoOiA3OTBweDsgcGFkZGluZzogMHB4IDEwMHB4IDE1MHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kOiAjZmZmOyAgei1pbmRleDogMTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNDAwcHg7IHJpZ2h0OiAwO1xyXG4gICAgICAgICYuYmx1ZXtcclxuICAgICAgICAgICAgaDIsaDF7IGZvbnQtc2l6ZTogMzdweDsgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubGluay53aGl0ZTphZnRlcnsgYmFja2dyb3VuZDogIzI0NThiMDsgfVxyXG4gICAgLnByb2plY3RzeyBcclxuICAgICAgIG1hcmdpbi10b3A6MjUwcHg7IHBhZGRpbmctdG9wOiA4MHB4OyBoZWlnaHQ6IDQ3NXB4OyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogIzMwMzAzMDtcclxuICAgICAgICAubGlua3sgbWFyZ2luOiAwIDEzMHB4OyB9XHJcbiAgICB9XHJcbiAgICAucHJvamVjdHMtc2xpZGVye1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMzsgcGFkZGluZy1yaWdodDogMTUwcHg7XHJcbiAgICAgICAgJi5zbGljay1zbGlkZXJ7IHBhZGRpbmc6IDAgOTBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgIG1hcmdpbi10b3A6IDEwNXB4O31cclxuICAgICAgICAuc2xpY2stc2xpZGV7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMTVweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICBpbWd7ICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAwO31cclxuICAgICAgICAgICAgLmltYWdlc3sgcG9zaXRpb246IHJlbGF0aXZlOyBmbG9hdDogcmlnaHQ7IEBpbmNsdWRlIGJveFNoYWRvdygwIDAgMjBweCAwICMwMDApO31cclxuICAgICAgICAgICAgLmltYWdlczpiZWZvcmV7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQ1OGIwOyAgY29udGVudDogJyAnOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiAxOyBvcGFjaXR5OiAwOyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCBlYXNlLW91dCAwLjI1cyk7fVxyXG4gICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgLmltYWdlczpiZWZvcmV7IFxyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6MTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgZWFzZS1vdXQgMC4yNXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1hcnJvd3tcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xMzVweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQ1OGIwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGZvbnQtc2l6ZTogMDsgYm9yZGVyOiBub25lOyBjb2xvcjogdHJhbnNwYXJlbnQ7ei1pbmRleDogMjsgcGFkZGluZzogMDsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zbGljay1wcmV2e2JvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtbGVmdC13aGl0ZS5wbmcpIG5vLXJlcGVhdDsgbGVmdDogNjYwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjt9XHJcbiAgICAgICAgLnNsaWNrLW5leHR7Ym9yZGVyOm5vbmU7IGZvbnQtc2l6ZTogMDt3aWR0aDogNTBweDsgaGVpZ2h0OiA0MHB4OyBiYWNrZ3JvdW5kOiAjMjQ1OGIwIHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYS1yaWdodC13aGl0ZS5wbmcpIG5vLXJlcGVhdDsgbGVmdDogNzA1cHg7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjt9XHJcbiAgICAgICAgLnNsaWNrLWRpc2FibGVke1xyXG4gICAgICAgICAgICAmLnNsaWNrLXByZXZ7Ym9yZGVyOm5vbmU7IGZvbnQtc2l6ZTogMDt3aWR0aDogNTBweDsgaGVpZ2h0OiA0MHB4OyBiYWNrZ3JvdW5kOiAjMjQ1OGIwIHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYS1sZWZ0LWdyZXkucG5nKSBuby1yZXBlYXQ7IGxlZnQ6IDY2MHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGN1cnNvcjogZGVmYXVsdDt9XHJcbiAgICAgICAgICAgICYuc2xpY2stbmV4dHtib3JkZXI6bm9uZTsgZm9udC1zaXplOiAwO3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLXJpZ2h0LWdyZXkucG5nKSBuby1yZXBlYXQ7IGxlZnQ6IDcwNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGN1cnNvcjogZGVmYXVsdDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjsgd2lkdGg6IDI3MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDE7IGJvdHRvbTogNzBweDsgbGVmdDogMTVweDsgdGV4dC1zaGFkb3c6IDJweCAycHggIzMwMzAzMDtcclxuICAgICAgICAgICAgaDR7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyBvdmVyZmxvdzogaGlkZGVuOyBtYXgtaGVpZ2h0OiA5NXB4O31cclxuICAgICAgICAgICAgcHsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFzZW1pYm9sZCc7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAwLjVweDsgZm9udC1zdHlsZTogaXRhbGljOyBvdmVyZmxvdzogaGlkZGVuOyBtYXgtaGVpZ2h0OiA1MHB4O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmNvbnRhY3QtdXN7XHJcbiAgICAud3JhcHBlcnsgd2lkdGg6IDEzNTBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9iZy1jb250YWN0LnBuZycpOyBAZXh0ZW5kIC5hZnRlcl9jbGVhcjsgcGFkZGluZzogMCAyMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDE0MHB4O30gXHJcbiAgICAuYmNydW1ie1xyXG4gICAgICAgICYud2hpdGV7XHJcbiAgICAgICAgICAgIGgyeyAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50eyBcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbi10b3A6IDU1cHg7IHdpZHRoOiAzNTBweDsgbGVmdDogNDBweDtcclxuICAgICAgICAuYmNydW1iLndoaXRlIGgyOmFmdGVyeyByaWdodDp1bnNldDsgbGVmdDogMDsgfVxyXG4gICAgICAgIC5iY3J1bWIud2hpdGUgaDE6YWZ0ZXJ7IHJpZ2h0OnVuc2V0OyBsZWZ0OiAwOyB9XHJcbiAgICAgICAgLmJjcnVtYi53aGl0ZSBwLmRlc2N7IGxpbmUtaGVpZ2h0OiAyOHB4OyBtYXJnaW4tdG9wOiAwcHg7IGZvbnQtc2l6ZTogMThweDsgbGV0dGVyLXNwYWNpbmc6IDA7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IG92ZXJmbG93OiBoaWRkZW47IG1heC1oZWlnaHQ6IDE2NXB4O31cclxuICAgICAgICAvKi5saW5rOmFmdGVyeyBkaXNwbGF5OiBub25lOyB9Ki9cclxuICAgIH1cclxuICAgIC5pbWFnZXN7IG1hcmdpbi10b3A6IC03MHB4OyBtYXJnaW4tYm90dG9tOiA3MHB4O31cclxufVxyXG4ubmV3c3tcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMTVweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4OyB9XHJcbiAgICAuY29se1xyXG4gICAgICAgIHdpZHRoOiAzNzBweDsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OiAzMHB4OyBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gICAgICAgICY6bnRoLWNoaWxkKDNuKzMpeyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAuaW1hZ2VzLWNvbnRlbnR7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzNzBweDsgaGVpZ2h0OiAyMTBweDsgYmFja2dyb3VuZDogI2ViZWJlYjsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyOyBwYWRkaW5nLWxlZnQ6IDNweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgaW1neyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgbGVmdDogMDsgbWFyZ2luOiBhdXRvOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICAudGl0bGV7IFxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgaDR7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IDAuNTsgY29sb3I6ICMzMzM7IGhlaWdodDogMTE1cHg7IHBhZGRpbmc6IDQwcHggMCAwIDMwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IG92ZXJmbG93OiBoaWRkZW47fVxyXG4gICAgICAgICAgICAgICAgLmluZm97IGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFzZW1pYm9sZCc7IGxpbmUtaGVpZ2h0OiAyOHB4OyBjb2xvcjogIzk5OTk5OTsgaGVpZ2h0OiA3MHB4OyBwYWRkaW5nOiAyMHB4IDAgMCAzMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogNXB4OyB3aWR0aDogNDVweDsgYmFja2dyb3VuZDogIzA0MDQwNDsgYm90dG9tOiAwOyBsZWZ0OiAwO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwe1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNDBweCAwIDQwcHggMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICMzMzM7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IG92ZXJmbG93OiBoaWRkZW47IG1heC1oZWlnaHQ6IDE1MHB4O1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzcGFueyBcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMCAwcHggMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBsZWZ0OjMwcHg7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ua2V5LXBlcnNvbntcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4O31cclxuICAgIC5pbnRyb3tcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyOyBcclxuICAgICAgICAubGVmdHsgXHJcbiAgICAgICAgICAgIHdpZHRoOiA0MDBweDsgXHJcbiAgICAgICAgICAgIGgzeyBcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzAzMDMwOyBmb250LXNpemU6IDM1cHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGxpbmUtaGVpZ2h0OiA0OHB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogXCJcIjsgd2lkdGg6IDQ1cHg7IGhlaWdodDogNXB4OyBiYWNrZ3JvdW5kOiMzMDMwMzA7IGJvdHRvbTogLTIwcHg7bGVmdDogMHB4OyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0eyBcclxuICAgICAgICAgICAgd2lkdGg6IDcwMHB4OyBcclxuICAgICAgICAgICAgcHsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFyZWd1bGFyJzsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5rZXl7XHJcbiAgICAgICAgLmNvbHtcclxuICAgICAgICAgICAgd2lkdGg6IDI3MHB4OyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6IDMwcHg7IG1hcmdpbi1ib3R0b206IDQ1cHg7XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDRuKzQpeyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAgICAgLmltYWdlcy1jb250ZW50e1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI3MHB4OyBoZWlnaHQ6IDI3MHB4OyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7IHBhZGRpbmctbGVmdDogM3B4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICAgICAgaW1neyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgbGVmdDogMDsgbWFyZ2luOiBhdXRvOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbnRlbnR7XHJcbiAgICAgICAgICAgICAgICAudGl0bGV7IFxyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICBoNHsgZm9udC1zaXplOiAyNHB4OyBsZXR0ZXItc3BhY2luZzogMC41OyBjb2xvcjogIzMzMzsgaGVpZ2h0OiA1MHB4OyBwYWRkaW5nOiA0MHB4IDAgMCAwcHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IG92ZXJmbG93OiBoaWRkZW47fVxyXG4gICAgICAgICAgICAgICAgICAgIC5pbmZveyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3Zhc2VtaWJvbGQnOyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICM5OTk5OTk7IGhlaWdodDogMjVweDsgcGFkZGluZzogMHB4IDAgMCAwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHB7IHBhZGRpbmc6IDEwcHggMCAyMHB4IDBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICMzMzM7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7ICBvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDYxcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5iY3J1bWJ7XHJcbiAgICAmLndoaXRle1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDY1cHg7IGxldHRlci1zcGFjaW5nOiAwLjhweDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJzsgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogNjBweDtcclxuICAgICAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhbGlnaHQnOyBtYXJnaW4tcmlnaHQ6IDQwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogXCJcIjsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kOiNmZmY7IHRvcDogMDtyaWdodDogLTIzcHg7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBoMixoMXsgXHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDM3cHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGxpbmUtaGVpZ2h0OiA0NXB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgLyomOmFmdGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6IFwiXCI7IHdpZHRoOiA0NXB4OyBoZWlnaHQ6IDVweDsgYmFja2dyb3VuZDojZmZmOyBib3R0b206MHB4O3JpZ2h0OiAwcHg7IH0qL1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuYmx1ZXtcclxuICAgICAgICBjb2xvcjogIzMzMzMzMztcclxuICAgICAgICBwe1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiA2NXB4OyBsZXR0ZXItc3BhY2luZzogMC44cHg7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGNvbG9yOiAjMjQ1OGIwOyAgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogNjBweDtcclxuICAgICAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhbGlnaHQnOyBtYXJnaW4tcmlnaHQ6IDQwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6IFwiXCI7IHdpZHRoOiAxcHg7IGhlaWdodDogMTVweDsgYmFja2dyb3VuZDojMzMzOyB0b3A6IDA7cmlnaHQ6IC0yM3B4OyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaDJ7IFxyXG4gICAgICAgICAgICBjb2xvcjogIzMwMzAzMDsgZm9udC1zaXplOiAzN3B4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBsaW5lLWhlaWdodDogNDhweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG4gICAgICAgICAgICAmOmFmdGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6IFwiXCI7IHdpZHRoOiA0NXB4OyBoZWlnaHQ6IDVweDsgYmFja2dyb3VuZDojMzAzMDMwOyBib3R0b206IC0yMHB4O2xlZnQ6IDBweDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZGVzY3tcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFyZWd1bGFyJzsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgbWFyZ2luLXRvcDogNTBweDsgY29sb3I6ICMzMzM7IGxldHRlci1zcGFjaW5nOiAwOyBvdmVyZmxvdzogaGlkZGVuO21heC1oZWlnaHQ6IDE3MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYubm9jcnVtYntcclxuICAgICAgICBoMnsgXHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDgwcHg7IFxyXG4gICAgICAgICAgICAmOmFmdGVyeyBsZWZ0OjA7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmN0bi1wYWRke1xyXG4gICAgbWFyZ2luLXRvcDogMTIwcHg7XHJcbiAgICAuYWJvdXQtcGFnZXsgXHJcbiAgICAgICAgbWluLWhlaWdodDogNjkwcHg7IG1hcmdpbi10b3A6IC0zNDVweDsgcGFkZGluZy10b3A6IDIzMHB4OyBwYWRkaW5nLWJvdHRvbTogMTYwcHg7XHJcbiAgICAgICAgLndyYXBwZXJ7IHdpZHRoOiAxMTcwcHg7IH1cclxuICAgICAgICAubGVmdHsgdGV4dC1hbGlnbjogbGVmdDsgfVxyXG4gICAgICAgICY6YWZ0ZXJ7IGhlaWdodDoxNjVweDsgfSBcclxuICAgIH1cclxuICAgIC5uZXdze1xyXG4gICAgICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4OyB9XHJcbiAgICAgICAgLmNvbHsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAzMiU7IG1hcmdpbi1yaWdodDoxLjMzJTtcclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoM24rMyl7IG1hcmdpbi1yaWdodDogMDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucGFnaW5hdGlvbnsgbWFyZ2luLXRvcDogNTBweDsgfVxyXG4gICAgfVxyXG5cclxuICAgICYubWlubWFyZ3ttYXJnaW4tdG9wOiAzMHB4O31cclxufVxyXG4uYmctdHJhbnN7XHJcbiAgICBiYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctbmV3cy5wbmcpIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b20gLTIwMHB4O1xyXG59XHJcbi5saXN0LXNlcnZpY2Vze1xyXG4gICAgbWFyZ2luLXRvcDogLTc1cHg7XHJcbiAgICAud3JhcHBlcnsgd2lkdGg6IDEwMzBweDsgfVxyXG4gICAgLmNvbHtcclxuICAgICAgICB3aWR0aDogMzEwcHg7IGhlaWdodDogNDAwcHg7IGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1yaWdodDogNTBweDsgbWFyZ2luLWJvdHRvbTogODBweDtcclxuICAgICAgICAmOm50aC1jaGlsZCgzbiArIDMpeyBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAuaW1hZ2VzLWNvbnRlbnR7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMTBweDsgaGVpZ2h0OiAyMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6IDNweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgaW1neyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgbGVmdDogMDsgbWFyZ2luOiBhdXRvOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICAudGl0bGV7IFxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgaDR7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IDAuNTsgY29sb3I6ICMzMzM7IGhlaWdodDogNjVweDsgcGFkZGluZzogNDBweCAwIDAgMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJzsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG4gICAgICAgICAgICAgICAgLmluZm97IGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFzZW1pYm9sZCc7IGxpbmUtaGVpZ2h0OiAyOHB4OyBjb2xvcjogIzk5OTk5OTsgaGVpZ2h0OiA4MHB4OyBwYWRkaW5nOiAyNXB4IDAgMCAzMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogNXB4OyB3aWR0aDogNDVweDsgYmFja2dyb3VuZDogIzA0MDQwNDsgYm90dG9tOiAtMTVweDsgbGVmdDogMDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHsgcGFkZGluZzogMzBweCAwIDMwcHggMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICMzMzM7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IG1hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgICAgICBzcGFueyBcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMCAwcHggMzBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyeyBsZWZ0OjMwcHg7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4ucGFnaW5hdGlvbntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nLWJvdHRvbTogMTMwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBhe1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDIwcHg7IGNvbG9yOiAjYWVhZWFlOyBtYXJnaW46IDAgMTBweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWluLXdpZHRoOiAxNXB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBwYWRkaW5nLWJvdHRvbTogMTVweDsgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICAgICAgICAmOmFmdGVyeyBjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO3dpZHRoOjAlO2hlaWdodDozcHg7bGVmdDowcHg7Ym90dG9tOjBweDtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgZWFzZS1vdXQgYWxsKTsgd2lkdGg6IDM1cHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2NlY2VjZSAwJSwjY2VjZWNlIDUwJSwjY2VjZWNlIDUwJSwjZGZkZmRmIDUwJSwjZGZkZmRmIDEwMCUpOyAgfVxyXG4gICAgICAgICYuYWN0aXZleyBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4OyBjb2xvcjojMjQ1OGIwOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgJjphZnRlcnsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMjQ1OGIwIDAlLCMyNDU4YjAgNTAlLCMyNDU4YjAgNTAlLCNjZWNlY2UgNTAlLCNjZWNlY2UgMTAwJSk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5hcnIge1xyXG4gICAgICAgICAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiAxNnB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hLXJpZ2h0LWJsdWUucG5nJykgbm8tcmVwZWF0IGxlZnQgY2VudGVyO0BleHRlbmQgLnRyYW5zaXRpb25BbGw7IG1hcmdpbjogMCAyMHB4OyBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyICFpbXBvcnRhbnQ7IEBleHRlbmQgLnRyYW5zaXRpb25BbGw7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgICAgICAgICAgJi5wcmV2IHtAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpOyBmbG9hdDogbGVmdDt9XHJcbiAgICAgICAgICAgICYuZGlzYWJsZWR7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtZ3JleS5wbmcnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnN0ZC1jb250ZW50e1xyXG4gICAgbWFyZ2luLXRvcDogLTMxMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gICAgLndyYXBwZXJ7IHdpZHRoOiAxMTcwcHg7IH1cclxuICAgIC5sZWZ0eyB3aWR0aDogNDAlOyB9XHJcbiAgICAucmlnaHR7IHdpZHRoOiA1OCU7IH1cclxuICAgIC5jb250ZW50eyBtYXJnaW4tdG9wOiA2MHB4OyB9XHJcbiAgICAudGl0bGV7XHJcbiAgICAgICAgcGFkZGluZzogMCAzMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIHNwYW57IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhbGlnaHQnOyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IH1tYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIGgzeyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBmb250LXNpemU6IDI1cHg7IGxpbmUtaGVpZ2h0OiAzNXB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cclxuICAgICAgICAuY29tcGFueXsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFzZW1pYm9sZCc7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAwLjVweDsgY29sb3I6ICMzMzMzMzM7IGZvbnQtc3R5bGU6IGl0YWxpYzsgbWFyZ2luOiAxNXB4IDAgMzVweCAwO31cclxuICAgIH1cclxuICAgIC5jb250ZW50e1xyXG4gICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyBAZXh0ZW5kIC5hZnRlcl9jbGVhcjsgXHJcbiAgICAgICAgcHsgXHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI4cHg7IG92ZXJmbG93OiBoaWRkZW47IG1heC1oZWlnaHQ6IDIzMHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG4gICAgICAgICAgICBheyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBjb2xvcjogIzI0NThiMDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB1bHtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAxMHB4O2ZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7XHJcbiAgICAgICAgICAgIGxpe1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4OyB0ZXh0LWluZGVudDogMHB4OyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JleyBjb250ZW50OiBcIuKAoiBcIjsgY29sb3I6ICMyNDU4YjA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9se1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOyBtYXJnaW4tYm90dG9tOiAxMHB4O2ZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhcmVndWxhcic7XHJcbiAgICAgICAgICAgIGxpeyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IGNvbG9yOiAjMzMzOyB0ZXh0LWluZGVudDogMHB4O3BhZGRpbmctbGVmdDogMTVweDsgbWFyZ2luLWxlZnQ6IDIwcHg7ICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saW5rLWNvbnRlbnR7IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGNvbG9yOiAjMzMzMzMzOyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBsZXR0ZXItc3BhY2luZzogMC4ycHg7IH1cclxuICAgICAgICAuYWRkcmVzc3sgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjhweDsgbWFyZ2luOiAyNXB4IDA7fVxyXG4gICAgICAgIC5pbmZve1xyXG4gICAgICAgICAgICBweyBcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgICAgICAgICAgIHNwYW57IGZvbnQtZmFtaWx5OiAncHJveGltYV9ub3ZhYm9sZCc7IGNvbG9yOiAjMjQ1OGIwOyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBtYXJnaW4tcmlnaHQ6IDI1cHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9qZWN0c2VhcmNoe1xyXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXXsgXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzUwcHg7IGhlaWdodDogNTVweDsgcGFkZGluZzogMCAyNXB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWxpZ2h0JzsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjhweDsgY29sb3I6ICNjY2M7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6MXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgIGNvbG9yOiAjY2NjOyB9XHJcbiAgICAgICAgICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHsgIGNvbG9yOiAjY2NjOyB9XHJcbiAgICAgICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7ICBjb2xvcjogI2NjYzsgfVxyXG4gICAgICAgICAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHsgIGNvbG9yOiAjY2NjOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvaWMtc2VhcmNoMi5wbmcpbm8tcmVwZWF0IGNlbnRlcjsgbWFyZ2luLWxlZnQ6IC0zMHB4OyBib3JkZXI6bm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuY2FyZWVyLXBneyBtYXJnaW4tdG9wOiAtMTAwcHg7IH1cclxuICAgICYuY29udGFjdC1wZ3sgbWFyZ2luLXRvcDogLTEwMHB4OyB9XHJcbiAgICAmLmtleS1wZ3tcclxuICAgICAgICAuaW1hZ2Vze1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250ZW50e1xyXG4gICAgICAgICAgICBweyBvdmVyZmxvdzogdW5zZXQ7IG1heC1oZWlnaHQ6IHVuc2V0OyB9XHJcbiAgICAgICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICAgICAgLmltYWdlc3tcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHggMCA3MHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5wcm9kZXR7XHJcbiAgICAgICAgLmNvbnRlbnR7XHJcbiAgICAgICAgICAgIHB7IG92ZXJmbG93OiB1bnNldDsgbWF4LWhlaWdodDogdW5zZXQ7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLm5ld3NzY3tcclxuICAgICAgICAudGl0bGV7XHJcbiAgICAgICAgICAgIGgzeyBvdmVyZmxvdzogaGlkZGVuOyBtYXgtaGVpZ2h0OiAxMTBweDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGVudHtcclxuICAgICAgICAgICAgcHsgb3ZlcmZsb3c6IGhpZGRlbjsgbWF4LWhlaWdodDogMTEwcHg7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLnNsaWRlci1jb250ZW50e1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLnNsaWNrLWFycm93e1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQ1OGIwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGZvbnQtc2l6ZTogMDsgYm9yZGVyOiBub25lOyBjb2xvcjogdHJhbnNwYXJlbnQ7ei1pbmRleDogMjsgcGFkZGluZzogMDsgXHJcbiAgICB9XHJcbiAgICAuc2xpY2stcHJldntib3JkZXI6bm9uZTsgZm9udC1zaXplOiAwO3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLWxlZnQtd2hpdGUucG5nKSBuby1yZXBlYXQ7IHJpZ2h0OiAxMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO31cclxuICAgIC5zbGljay1uZXh0e2JvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtd2hpdGUucG5nKSBuby1yZXBlYXQ7IHJpZ2h0OiA3MHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7fVxyXG4gICAgLnNsaWNrLWRpc2FibGVke1xyXG4gICAgICAgICYuc2xpY2stcHJldntib3JkZXI6bm9uZTsgZm9udC1zaXplOiAwO3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLWxlZnQtZ3JleS5wbmcpIG5vLXJlcGVhdDsgIHJpZ2h0OiAxMjBweDtib3gtc2l6aW5nOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGN1cnNvcjogZGVmYXVsdDt9XHJcbiAgICAgICAgJi5zbGljay1uZXh0e2JvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtZ3JleS5wbmcpIG5vLXJlcGVhdDsgcmlnaHQ6IDcwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgY3Vyc29yOiBkZWZhdWx0O31cclxuICAgIH1cclxufVxyXG4jbWFwe1xyXG4gICAgd2lkdGg6IDExNzBweDsgaGVpZ2h0OiA0NzBweDsgXHJcbiAgICBpZnJhbWV7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH1cclxufVxyXG4uZm9ybXtcclxuICAgIGg0eyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnOyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiA2NXB4OyBsZXR0ZXItc3BhY2luZzogMC44cHg7IGNvbG9yOiAjNjY2NjY2OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgLmNvbHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIGlucHV0LCB0ZXh0YXJlYXtcclxuICAgICAgICAgICAgaGVpZ2h0OiA1NXB4OyBwYWRkaW5nOiAwOyB3aWR0aDogMTAwJTsgcGFkZGluZzogMjBweCAyNXB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyAgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFsaWdodCc7IGNvbG9yOiAjNjY2OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgIGNvbG9yOiAjOTk5OTk5OyB9XHJcbiAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgeyAgY29sb3I6ICM5OTk5OTk7IH1cclxuICAgICAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAgY29sb3I6ICM5OTk5OTk7IH1cclxuICAgICAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHsgIGNvbG9yOiAjOTk5OTk5OyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRleHRhcmVheyBoZWlnaHQ6IDE1NXB4OyByZXNpemU6IG5vbmU7IH1cclxuICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdeyBcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJzsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjhweDsgbGV0dGVyLXNwYWNpbmc6IDAuMnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOm5vbmU7IGNvbG9yOiAjMjQ1OGIwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmctbGVmdDogMDsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRue1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgJjphZnRlcnsgY29udGVudDpcIlwiO3Bvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDowJTtoZWlnaHQ6M3B4O2xlZnQ6MHB4O2JvdHRvbTowcHg7QGluY2x1ZGUgdHJhbnNpdGlvbigwLjJzIGVhc2Utb3V0IGFsbCk7IHdpZHRoOiAzNXB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMyNDU4YjAgMCUsIzI0NThiMCA1MCUsIzI0NThiMCA1MCUsI2NlY2VjZSA1MCUsI2NlY2VjZSAxMDAlKTsgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5lcnJvcntcclxuICAgICAgICAgICAgaW5wdXQsdGV4dGFyZWF7IGJvcmRlcjogMXB4IHNvbGlkICNkYTAwMDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cclxuICAgICAgICAgICAgc3BhbnsgY29sb3I6ICNkYTAwMDA7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZy1yZWNhcHRjaGF7IHRyYW5zZm9ybTpzY2FsZSgwLjc3KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjc3KTt0cmFuc2Zvcm0tb3JpZ2luOjAgMDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwOyB9XHJcbiAgICAuY29sXzV7IHdpZHRoOiA1MCU7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMDt9XHJcbn1cclxuLnBncHJvamVjdHtcclxuICAgIG1hcmdpbi10b3A6IC05MHB4OyBwYWRkaW5nLWJvdHRvbTogMTUwcHg7XHJcbn1cclxuLnNsaWRlci1wZy1wcm9qZWN0e1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLnNsaWNrLWFycm93e1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMjBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQ1OGIwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGZvbnQtc2l6ZTogMDsgYm9yZGVyOiBub25lOyBjb2xvcjogdHJhbnNwYXJlbnQ7ei1pbmRleDogMjsgcGFkZGluZzogMDsgXHJcbiAgICB9XHJcbiAgICAuc2xpY2stcHJldntib3JkZXI6bm9uZTsgZm9udC1zaXplOiAwO3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLWxlZnQtd2hpdGUucG5nKSBuby1yZXBlYXQ7IHJpZ2h0OiAxMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO31cclxuICAgIC5zbGljay1uZXh0e2JvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtd2hpdGUucG5nKSBuby1yZXBlYXQ7IHJpZ2h0OiA3MHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7fVxyXG4gICAgLnNsaWNrLWRpc2FibGVke1xyXG4gICAgICAgICYuc2xpY2stcHJldntib3JkZXI6bm9uZTsgZm9udC1zaXplOiAwO3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6ICMyNDU4YjAgdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hLWxlZnQtZ3JleS5wbmcpIG5vLXJlcGVhdDsgIHJpZ2h0OiAxMjBweDtib3gtc2l6aW5nOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IGN1cnNvcjogZGVmYXVsdDt9XHJcbiAgICAgICAgJi5zbGljay1uZXh0e2JvcmRlcjpub25lOyBmb250LXNpemU6IDA7d2lkdGg6IDUwcHg7IGhlaWdodDogNDBweDsgYmFja2dyb3VuZDogIzI0NThiMCB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2EtcmlnaHQtZ3JleS5wbmcpIG5vLXJlcGVhdDsgcmlnaHQ6IDcwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgY3Vyc29yOiBkZWZhdWx0O31cclxuICAgIH1cclxufVxyXG4ucHJvdGhlcntcclxuICAgIG1hcmdpbi10b3A6IC00MjVweDtcclxuICAgIC53cmFwcGVyeyB3aWR0aDogMTE3MHB4OyB9XHJcbiAgICAuY29udGVudHsgcGFkZGluZzogMDsgfVxyXG4gICAgdGFibGV7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDgwcHg7XHJcbiAgICAgICAgdGhlYWR7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwZWI4ZWI7XHJcbiAgICAgICAgICAgIHRyIHRoe1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OyBjb2xvcjogI2ZmZjsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFib2xkJzsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogNjVweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyBwYWRkaW5nLWxlZnQ6IDIwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGJvZHl7ICBcclxuICAgICAgICAgICAgdHIgdGR7IFxyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDsgZm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFyZWd1bGFyJzsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMjJweDsgY29sb3I6ICMzMzM7ICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMil7IHdpZHRoOiAyNyU7ICB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAyMHB4OyBmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnO31cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpeyB3aWR0aDogMjAlOyB9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg0KXsgd2lkdGg6IDI3JTsgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNSl7IHdpZHRoOiAyMCU7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0cjpudGgtY2hpbGQob2RkKSB7YmFja2dyb3VuZDogI2VmZWZlZn1cclxuICAgICAgICAgICAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtiYWNrZ3JvdW5kOiAjZTFlMWUxfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5wYWdpbmF0aW9ueyBcclxuICAgICAgICBwYWRkaW5nOiA2NXB4IDA7XHJcbiAgICB9XHJcbn1cclxuLmJnLW90aGVye1xyXG4gICAgbWFyZ2luLXRvcDogMzVweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLmxpbmt7IHBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206IDUwJTsgcmlnaHQ6IDYwcHg7IH1cclxufVxyXG4ubGFuZHNjYXBlLWxpc3R7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG4gICAgLmxzLWxhbmRze1xyXG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO3BhZGRpbmctYm90dG9tOiAyNXB4O21hcmdpbi1ib3R0b206IDMwcHg7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMmMyYzI7ZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcHtwYWRkaW5nLWxlZnQ6IDIwcHg7Zm9udC1zaXplOiAxM3B4O2xpbmUtaGVpZ2h0OiAxOHB4O21hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgIC50aXRsZXtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtwYWRkaW5nLWJvdHRvbTogMTVweDttYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAmOmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiAwO2hlaWdodDogNHB4O2JhY2tncm91bmQ6ICMzMzM7d2lkdGg6IDQ2cHg7fVxyXG4gICAgICAgICAgICBoNXtmb250LWZhbWlseTogJ3Byb3hpbWFfbm92YWJvbGQnO2xldHRlci1zcGFjaW5nOiAuNXB4O2ZvbnQtc2l6ZTogMTZweDtsaW5lLWhlaWdodDogMjBweDttYXJnaW4tYm90dG9tOiAxNXB4O31cclxuICAgICAgICAgICAgc3Bhbntmb250LXNpemU6IDEzcHg7Y29sb3I6ICM5OTk5OTk7Zm9udC1mYW1pbHk6ICdwcm94aW1hX25vdmFzZW1pYm9sZCc7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uc2VhcmNoLWJveHtcclxuICAgIC53cmFwcGVye3dpZHRoOiAxMTcwcHg7fVxyXG59XHJcbi5hbGVydCB7XHJcbiAgICBwYWRkaW5nOiAyMHB4OyAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjsgY29sb3I6IHdoaXRlOyBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG59XHJcblxyXG4uc3VjY2VzcyB7XHJcbiAgICBwYWRkaW5nOiAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwOyBjb2xvcjogd2hpdGU7IG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuXHJcbi5jbG9zZWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDsgY29sb3I6IHdoaXRlOyBmb250LXdlaWdodDogYm9sZDsgZmxvYXQ6IHJpZ2h0OyBmb250LXNpemU6IDIycHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IDAuM3M7XHJcbn1cclxuXHJcbi5jbG9zZWJ0bjpob3ZlciB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbn1cclxuLnVuZGVyLW1haW50ZW5hbmNle1xyXG4gICAgQGV4dGVuZCAuYWZ0ZXJfY2xlYXI7IFxyXG4gICAgLmxlZnR7IFxyXG4gICAgICAgIHdpZHRoOjcwJTsgcGFkZGluZzogMjAwcHggMzA1cHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJhY2tncm91bmQ6IHVybCggLi4vaW1hZ2VzL2NvbnRlbnQvYmctdW0uanBnICkgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgICAgIGltZ3sgbWFyZ2luLWJvdHRvbTogNTBweDt9XHJcbiAgICAgICAgaDV7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGNvbG9yOiM0MTQxNDE7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cclxuICAgICAgICBoMXsgXHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IGZvbnQtc2l6ZTogNzJweDsgbGluZS1oZWlnaHQ6IDk4cHg7IGNvbG9yOiM0MTQxNDE7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICAgICAgJjphZnRlcnsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyBjb250ZW50OiBcIlwiOyB3aWR0aDogNDVweDsgaGVpZ2h0OiA1cHg7IGJhY2tncm91bmQ6IzI1NUJCNjsgYm90dG9tOiAtMjBweDtsZWZ0OiAwcHg7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcHsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjhweDsgbWFyZ2luLWJvdHRvbTogMDsgfVxyXG4gICAgICAgIC5pbmZve1xyXG4gICAgICAgICAgICAuY29seyBmbG9hdDpsZWZ0OyB3aWR0aDo1MCU7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5yaWdodHsgXHJcbiAgICAgICAgd2lkdGg6MzAlO1xyXG4gICAgICAgIC5pbWFnZXN7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOyBvdmVyZmxvdzogaGlkZGVuO3Bvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogYmxvY2s7ICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgICAgICAgICBpbWd7IG9iamVjdC1maXQ6IGNvdmVyOyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLyogZm9vdGVyXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5mb290ZXJ7XHJcbiAgICBAZXh0ZW5kIC5hZnRlcl9jbGVhcjsgaGVpZ2h0OiAyNDVweDsgYmFja2dyb3VuZDogI2ViZWJlYjsgcGFkZGluZy10b3A6IDgwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAubGYtZm9vdHsgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgIC5jb2x7IFxyXG4gICAgICAgICAgICB3aWR0aDogMzg1cHg7IGZsb2F0OiBsZWZ0OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBjb2xvcjogIzY2NjY2NjtcclxuICAgICAgICAgICAgcHsgY29sb3I6ICM2NjY2NjY7IGxpbmUtaGVpZ2h0OiAyOHB4O31cclxuICAgICAgICAgICAgbGl7XHJcbiAgICAgICAgICAgICAgICBzcGFueyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubG9nb3tcclxuICAgICAgICAgICAgICAgIGltZ3sgd2lkdGg6IDIxNXB4OyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IFxyXG4gICAgfVxyXG4gICAgLnJoLWZvb3R7IFxyXG4gICAgICAgIGZsb2F0OiByaWdodDsgXHJcbiAgICAgICAgLnRvcHtcclxuICAgICAgICAgICAgIEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgICAgICB1bCBsaXsgXHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDQwcHg7IG1hcmdpbi1ib3R0b206IDQ1cHg7XHJcbiAgICAgICAgICAgICAgICBheyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiAjNjY2NjY2OyB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3R0b217IFxyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgXHJcbiAgICAgICAgICAgIHB7IGZvbnQtd2VpZ2h0OiA0MDA7IGNvbG9yOiAjOTk5OTk5OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBGcm9udEVuZCBUZWFtICBcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKiBpbXBvcnQgYm91cmJvbiAtIGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MgKi9cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJGF0dHIpe1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm0oJGF0dHIpe1xyXG4gICAgdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm9yZGVyUmFkaXVzKCRhdHRyKXtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtby1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm94U2hhZG93KCRhdHRyKXtcclxuICAgIGJveC1zaGFkb3c6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNoYWRvdzogJGF0dHJcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIGJveC1zaXppbmc6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNpemluZzogJGF0dHJcclxufVxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cclxuICAgIDotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICBib3gtc2l6aW5nOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYWZ0ZXJib3Roe1xyXG4gICAgJjphZnRlcntjb250ZW50OlwiXCI7Y2xlYXI6IGJvdGg7ZGlzcGxheTogYmxvY2s7fVxyXG59XHJcblxyXG5cclxuLyogY29sb3IgZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4kY18xMTE6ICMxMTE7XHJcbiRjXzMzMzogIzMzMztcclxuJGNfNjY2OiAjNjY2O1xyXG4kY185OTk6ICM5OTk7XHJcbiRjX2VhOiAjZWFlYWVhO1xyXG5cclxuJGJsdWU6ICMyNDU4YjA7XHJcbiIsIi8vIEJvdXJib24gNC4yLjdcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xuXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xuXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O2dHQUlnRztBQ0poRzs7OztnR0FJZ0c7QUFFaEcsNkNBQTZDO0FBc0Q3QztnR0FDZ0c7QUR0RGhHLEFBQUEsSUFBSSxDQUFDO0VBQ0QsS0FBSyxFQUFFLElBQUs7RUFDWixTQUFTLEVBQUUsSUFBSztFQUNoQixXQUFXLEVBQUUsV0FBWTtFQUN6QixRQUFRLEVBQUUsUUFBUztFQUNuQixVQUFVLEVBQUUsTUFBTztFQUNuQix3QkFBd0IsRUFBRSxJQUFLO0NBQ2xDOztBQUNELEFBQUEsTUFBTSxDQUFBO0VBQ0YsTUFBTSxFQUFFLENBQUU7RUFBRSxPQUFPLEVBQUUsQ0FBRTtDQUUxQjs7QUFIRCxBQUVJLE1BRkUsQ0FFRixHQUFHLENBQUE7RUFBQyxjQUFjLEVBQUUsTUFBTztDQUFHOztBQUVsQyxBQUFBLEdBQUcsQ0FBQTtFQUFFLE1BQU0sRUFBQyxDQUFFO0VBQUUsU0FBUyxFQUFDLElBQUs7RUFBRSxNQUFNLEVBQUMsSUFBSztDQUFJOztBQUNqRCxBQUFBLENBQUMsQ0FBQztFQUNFLE1BQU0sRUFBRSxVQUFXO0VBQ25CLFdBQVcsRUFBRSxJQUFLO0NBQ3JCOztBQUNELEFBQUEsS0FBSyxFQUFFLEFBQUEsUUFBUSxFQUFFLEFBQUEsTUFBTSxDQUFDO0VBQ3BCLFNBQVMsRUFBRSxJQUFLO0VBQ2hCLE1BQU0sRUFBRSxJQUFLO0VBQ2IsTUFBTSxFQUFFLGlCQUFrQjtFQUMxQixPQUFPLEVBQUUsSUFBSztFQUNkLE1BQU0sRUFBRSxDQUFFO0VBQ1YsS0FBSyxFQUFFLElBQUs7RUFDWixVQUFVLEVBQUUsSUFBSztFQUNqQixrQkFBa0IsRUFBRSxJQUFLO0VBQ3pCLGVBQWUsRUFBRSxJQUFLO0NBQ3pCOztBQUNELEFBQW1CLEtBQWQsQ0FBQSxBQUFBLElBQUMsQ0FBRCxRQUFDLEFBQUEsR0FBZ0IsQUFBZ0IsS0FBWCxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxFQUFZO0VBQ3BDLGdCQUFnQixFQUFFLElBQUs7RUFDdkIsa0JBQWtCLEVBQUUsSUFBSztFQUN6QixtQkFBbUIsRUFBRSxJQUFLO0VBQzFCLGlCQUFpQixFQUFFLElBQUs7Q0FDM0I7O0FBQ0QsQUFBb0IsS0FBZixDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQUFjLDJCQUEyQjtBQUMvQyxBQUFvQixLQUFmLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBQWMsMkJBQTJCLENBQUU7RUFDN0MsVUFBVSxFQUFFLElBQUs7RUFDakIsa0JBQWtCLEVBQUUsSUFBSztFQUN6QixlQUFlLEVBQUUsSUFBSztFQUN0QixPQUFPLEVBQUUsQ0FBRTtDQUNkOztBQUNELEFBQWtCLEtBQWIsQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0FBWSwyQkFBMkI7QUFDN0MsQUFBa0IsS0FBYixDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxDQUFZLDJCQUEyQixDQUFDO0VBQzFDLGtCQUFrQixFQUFFLElBQUs7RUFDekIsTUFBTSxFQUFFLENBQUU7Q0FDYjs7QUFDRCxBQUFBLEVBQUUsQ0FBQztFQUFFLFNBQVMsRUFBRSxJQUFLO0NBQUk7O0FBQ3pCLEFBQUEsRUFBRSxDQUFDO0VBQUUsU0FBUyxFQUFFLElBQUs7Q0FBSTs7QUFDekIsQUFBQSxFQUFFLENBQUM7RUFBRSxTQUFTLEVBQUUsSUFBSztDQUFJOztBQUN6QixBQUFBLEVBQUUsQ0FBQztFQUFFLFNBQVMsRUFBRSxJQUFLO0NBQUk7O0FBQ3pCLEFBQUEsRUFBRSxDQUFDO0VBQUUsU0FBUyxFQUFFLElBQUs7Q0FBSTs7QUFDekIsQUFBQSxFQUFFLENBQUM7RUFBRSxTQUFTLEVBQUUsSUFBSztDQUFJOztBQUN6QjtnR0FDZ0c7QUFDaEcsQUFBQSxPQUFPLENBQUM7RUFBRSxRQUFRLEVBQUUsUUFBUztDQUFJOztBQUNqQyxBQUFBLFFBQVEsQ0FBQztFQUFDLEtBQUssRUFBRSxNQUFPO0VBQUMsTUFBTSxFQUFFLE1BQU87Q0FBRzs7QUFDM0MsQUFBWSxZQUFBLEFBQUEsTUFBTSxFQVdsQixBQVhBLE1BV00sQUFYTSxNQUFNLEVBV2xCLEFBWEEsTUFXTSxDQUVGLFFBQVEsQUFiQSxNQUFNLEVBV2xCLEFBWEEsTUFXTSxDQUVGLFFBQVEsQ0FNSixRQUFRLEFBbkJKLE1BQU0sRUE0S2xCLEFBNUtBLFNBNEtTLENBR0wsUUFBUSxBQS9LQSxNQUFNLEVBb1RsQixBQXBUQSxVQW9UVSxDQUdOLE1BQU0sQUF2VEUsTUFBTSxFQTZWbEIsQUE3VkEsWUE2VlksQ0FFUixNQUFNLEFBL1ZFLE1BQU0sRUE2VmxCLEFBN1ZBLFlBNlZZLENBaUJSLEtBQUssQUE5V0csTUFBTSxFQTBZbEIsQUExWUEsWUEwWVksQ0FFUixRQUFRLEFBNVlBLE1BQU0sRUF5YmxCLEFBemJBLFdBeWJXLENBQ1AsUUFBUSxBQTFiQSxNQUFNLEVBcWVsQixBQXJlQSxXQXFlVyxDQUdQLE1BQU0sQUF4ZUUsTUFBTSxFQW9uQmxCLEFBcG5CQSxZQW9uQlksQ0FZUixRQUFRLEFBaG9CQSxNQUFNLEVBNnpCbEIsQUE3ekJBLGtCQTZ6QmtCLEFBN3pCTixNQUFNLEVBczFCbEIsQUF0MUJBLE1BczFCTSxBQXQxQk0sTUFBTSxFQXMxQmxCLEFBdDFCQSxNQXMxQk0sQ0FFRixRQUFRLEFBeDFCQSxNQUFNLEVBczFCbEIsQUF0MUJBLE1BczFCTSxDQWVGLFFBQVEsQ0FFSixJQUFJLEFBdjJCQSxNQUFNLEVBQUMsQUFBUSxRQUFBLEFBQUEsTUFBTSxFQUFDLEFBQU8sT0FBQSxBQUFBLE1BQU0sQ0FBQTtFQUFDLEtBQUssRUFBQyxJQUFLO0VBQUMsT0FBTyxFQUFFLEtBQU07RUFBQyxPQUFPLEVBQUMsR0FBSTtDQUFFOztBQUMxRixBQUFhLGFBQUEsQUFBQSxPQUFPLENBQUE7RUFBQyxLQUFLLEVBQUMsSUFBSztFQUFDLE9BQU8sRUFBRSxLQUFNO0VBQUMsT0FBTyxFQUFDLEdBQUk7Q0FBRTs7QUFDL0QsQUFBQSxLQUFLLEVBa1RMLEFBbFRBLFVBa1RVLENBR04sTUFBTSxDQXJUSjtFQUFDLE9BQU8sRUFBRSxXQUFZO0VBQUMsT0FBTyxFQUFFLFFBQVM7RUFBQyxPQUFPLEVBQUUsV0FBWTtFQUFDLE9BQU8sRUFBRSxZQUFhO0VBQUUsT0FBTyxFQUFFLElBQUs7Q0FBRzs7QUFDL0csQUFBQSxjQUFjLEVBNmxCZCxBQTdsQkEsV0E2bEJXLENBRVAsQ0FBQyxBQU9JLElBQUksRUFUYixBQTdsQkEsV0E2bEJXLENBRVAsQ0FBQyxBQU9JLElBQUksQUFFQSxNQUFNLENBeG1CSjtFQ3hEWCxVQUFVLEVEd0RzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7RUN2RGpELGtCQUFrQixFRHVEYyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7RUN0RGpELGVBQWUsRURzRGlCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSTtFQ3JEakQsY0FBYyxFRHFEa0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0VDcERqRCxhQUFhLEVEb0RtQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7Q0FBSTs7QUFDekQsQUFBQSxnQkFBZ0IsQ0FBQztFQ3pEYixVQUFVLEVEeUR3QixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7RUN4RHJELGtCQUFrQixFRHdEZ0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0VDdkRyRCxlQUFlLEVEdURtQixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7RUN0RHJELGNBQWMsRURzRG9CLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtFQ3JEckQsYUFBYSxFRHFEcUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0NBQUk7O0FBQzdELEFBQUEsUUFBUSxDQUFBO0VBQUMsUUFBUSxFQUFFLFFBQVM7RUFBRSxHQUFHLEVBQUUsQ0FBRTtFQUFFLElBQUksRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7Q0FBSTs7QUFJeEc7Z0dBQ2dHO0FBQ2hHLEFBQUEsTUFBTSxDQUFBO0VBQ0YsUUFBUSxFQUFFLEtBQU07RUFBRSxJQUFJLEVBQUUsQ0FBRTtFQUFFLEtBQUssRUFBRSxDQUFFO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQ2pFbkUsVUFBVSxFRGlFK0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRO0VDaEU5RyxrQkFBa0IsRURnRXVFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUTtFQy9EOUcsZUFBZSxFRCtEMEUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRO0VDOUQ5RyxjQUFjLEVEOEQyRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVE7RUM3RDlHLGFBQWEsRUQ2RDRFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUTtFQUFHLFVBQVUsRUFBRSxJQUFLO0VBQXdCLE1BQU0sRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLEdBQUcsRUFBRSxDQUFFO0NBc0Q5Tjs7QUF2REQsQUFFSSxNQUZFLENBRUYsUUFBUSxDQUFBO0VBQ0osS0FBSyxFQUFFLE1BQU87RUFBRSxRQUFRLEVBQUUsUUFBUztDQW1EdEM7O0FBdERMLEFBSVEsTUFKRixDQUVGLFFBQVEsQ0FFSixLQUFLLENBQUE7RUFDRCxLQUFLLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsVUFBVztDQUV6RTs7QUFQVCxBQU1ZLE1BTk4sQ0FFRixRQUFRLENBRUosS0FBSyxDQUVELEdBQUcsQ0FBQTtFQUFFLEtBQUssRUFBRSxLQUFNO0NBQUk7O0FBTmxDLEFBUVEsTUFSRixDQUVGLFFBQVEsQ0FNSixRQUFRLENBQUE7RUFDSixLQUFLLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsT0FBTyxFQUFFLENBQUU7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxJQUFLO0NBMkJuRjs7QUFwQ1QsQUFVWSxNQVZOLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FFSixTQUFTLENBQUE7RUFBQyxPQUFPLEVBQUUsSUFBSztDQUFHOztBQVZ2QyxBQVdZLE1BWE4sQ0FFRixRQUFRLENBTUosUUFBUSxDQUdKLEdBQUcsQ0FBQTtFQUNDLEtBQUssRUFBRSxJQUFLO0NBaUJmOztBQTdCYixBQWFnQixNQWJWLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FHSixHQUFHLENBRUMsQ0FBQyxDQUFBO0VBQ0csU0FBUyxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsT0FBUTtFQUFFLFdBQVcsRUFBRSxHQUFJO0VBQUUsT0FBTyxFQUFFLFNBQVU7RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLGFBQWEsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLEdBQUk7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFDLGNBQWMsRUFBRSxLQUFNO0VBQUUsY0FBYyxFQUFFLENBQUU7RUFBRSxjQUFjLEVBQUUsU0FBVTtFQUFFLFdBQVcsRUFBRSxzQkFBdUI7RUM5RTVSLFVBQVUsRUQ4RXdTLElBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQzdFbFUsa0JBQWtCLEVENkVnUyxJQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7RUM1RWxVLGVBQWUsRUQ0RW1TLElBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQzNFbFUsY0FBYyxFRDJFb1MsSUFBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0VDMUVsVSxhQUFhLEVEMEVxUyxJQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7Q0FVclQ7O0FBeEJqQixBQWFnQixNQWJWLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FHSixHQUFHLENBRUMsQ0FBQyxBQUVJLE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxFQUFHO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLEdBQUk7RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLE1BQU0sRUFBRSxHQUFJO0NBQUc7O0FBZmhKLEFBYWdCLE1BYlYsQ0FFRixRQUFRLENBTUosUUFBUSxDQUdKLEdBQUcsQ0FFQyxDQUFDLEFBR0ksT0FBTyxDQUFBO0VBQ0osS0FBSyxFQUFFLE9BQVE7RUFBRSxRQUFRLEVBQUUsUUFBUztDQUV2Qzs7QUFuQnJCLEFBYWdCLE1BYlYsQ0FFRixRQUFRLENBTUosUUFBUSxDQUdKLEdBQUcsQ0FFQyxDQUFDLEFBR0ksT0FBTyxBQUVILE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxFQUFHO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLE1BQU0sRUFBRSxHQUFJO0VDbEY5SSxVQUFVLEVEa0YwSixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7RUNqRnBMLGtCQUFrQixFRGlGa0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0VDaEZwTCxlQUFlLEVEZ0ZxSixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7RUMvRXBMLGNBQWMsRUQrRXNKLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQzlFcEwsYUFBYSxFRDhFdUosS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0NBQUs7O0FBbEI3TCxBQWFnQixNQWJWLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FHSixHQUFHLENBRUMsQ0FBQyxBQU9JLE1BQU0sQ0FBQTtFQUNILEtBQUssRUFBRSxPQUFRO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUNyRnhELFVBQVUsRURxRm9FLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQ3BGOUYsa0JBQWtCLEVEb0Y0RCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7RUNuRjlGLGVBQWUsRURtRitELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQ2xGOUYsY0FBYyxFRGtGZ0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0VDakY5RixhQUFhLEVEaUZpRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7Q0FFN0U7O0FBdkJyQixBQWFnQixNQWJWLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FHSixHQUFHLENBRUMsQ0FBQyxBQU9JLE1BQU0sQUFFRixNQUFNLENBQUE7RUFBRSxPQUFPLEVBQUMsRUFBRztFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsR0FBSTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLE9BQVE7RUFBRSxNQUFNLEVBQUUsR0FBSTtFQ3RGOUksVUFBVSxFRHNGMEosR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDckZ0TCxrQkFBa0IsRURxRmtKLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3BGdEwsZUFBZSxFRG9GcUosR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDbkZ0TCxjQUFjLEVEbUZzSixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNsRnRMLGFBQWEsRURrRnVKLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztDQUFLOztBQXRCL0wsQUF5Qm1CLE1BekJiLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FHSixHQUFHLENBY0MsRUFBRSxDQUFDLEVBQUUsQ0FBQTtFQUNELE9BQU8sRUFBRSxZQUFhO0VBQUUsUUFBUSxFQUFFLFFBQVM7Q0FFOUM7O0FBNUJqQixBQTJCb0IsTUEzQmQsQ0FFRixRQUFRLENBTUosUUFBUSxDQUdKLEdBQUcsQ0FjQyxFQUFFLENBQUMsRUFBRSxDQUVELENBQUMsQ0FBQTtFQUFFLE9BQU8sRUFBRSxLQUFNO0NBQUk7O0FBM0IxQyxBQThCWSxNQTlCTixDQUVGLFFBQVEsQ0FNSixRQUFRLENBc0JKLFdBQVcsQ0FBQztFQUNSLFFBQVEsRUFBQyxRQUFTO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsYUFBYztDQUkzRDs7QUFuQ2IsQUFnQ2dCLE1BaENWLENBRUYsUUFBUSxDQU1KLFFBQVEsQ0FzQkosV0FBVyxDQUVQLFdBQVcsQ0FBQztFQUNSLEtBQUssRUFBRSxJQUFLO0VBQUMsTUFBTSxFQUFFLElBQUs7RUNuRjFDLGFBQWEsRURtRm9ELElBQUk7RUNsRnJFLHFCQUFxQixFRGtGNEMsSUFBSTtFQ2pGckUsa0JBQWtCLEVEaUYrQyxJQUFJO0VDaEZyRSxpQkFBaUIsRURnRmdELElBQUk7RUMvRXJFLGdCQUFnQixFRCtFaUQsSUFBSTtFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUMsV0FBVyxFQUFFLFVBQVc7RUFBQyxRQUFRLEVBQUUsUUFBUztFQUFFLFVBQVUsRUFBc0MscUNBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTTtFQ2pHdk0sVUFBVSxFRGlHa04sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0VDaEc1TyxrQkFBa0IsRURnRzBNLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQy9GNU8sZUFBZSxFRCtGNk0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0VDOUY1TyxjQUFjLEVEOEY4TSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7RUM3RjVPLGFBQWEsRUQ2RitNLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRztFQUFFLE9BQU8sRUFBQyxDQUFFO0VBQUMsT0FBTyxFQUFDLEtBQU07RUFBRSxNQUFNLEVBQUUsT0FBUTtDQUM1UTs7QUFsQ2pCLEFBcUNRLE1BckNGLENBRUYsUUFBUSxDQW1DSixZQUFZLENBQUM7RUFDVCxRQUFRLEVBQUUsUUFBUztFQUFFLEtBQUssRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLEdBQUcsRUFBQyxJQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUk7RUFDL0YsVUFBVSxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLE9BQU8sRUFBRSxDQUFFO0NBYy9DOztBQXJEVCxBQzdCSSxNRDZCRSxDQUVGLFFBQVEsQ0FtQ0osWUFBWSxDQ2xFaEIsMkJBQTJCLENBQUM7RURxRUUsS0FBSyxFQUFFLE9BQVE7Q0NyRU47O0FENkIzQyxBQzVCSSxNRDRCRSxDQUVGLFFBQVEsQ0FtQ0osWUFBWSxDQ2pFaEIsaUJBQWlCLENBQVc7RURvRUUsS0FBSyxFQUFFLE9BQVE7Q0NwRU47O0FENEIzQyxBQzNCSSxNRDJCRSxDQUVGLFFBQVEsQ0FtQ0osWUFBWSxDQ2hFaEIsa0JBQWtCLENBQVU7RURtRUUsS0FBSyxFQUFFLE9BQVE7Q0NuRU47O0FEMkIzQyxBQzFCSSxNRDBCRSxDQUVGLFFBQVEsQ0FtQ0osWUFBWSxDQy9EaEIsc0JBQXNCLENBQU07RURrRUUsS0FBSyxFQUFFLE9BQVE7Q0NsRU47O0FEMEIzQyxBQXlDNkIsTUF6Q3ZCLENBRUYsUUFBUSxDQW1DSixZQUFZLENBSVIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO0VBQ2YsS0FBSyxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBQyxDQUFFO0VBQ3JGLEtBQUssRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxHQUFJO0VBQ25FLE1BQU0sRUFBRSxhQUFjO0VBQUUsVUFBVSxFQUFFLE1BQU87RUM5RnZELGFBQWEsRUQrRnFCLEdBQUc7RUM5RnJDLHFCQUFxQixFRDhGYSxHQUFHO0VDN0ZyQyxrQkFBa0IsRUQ2RmdCLEdBQUc7RUM1RnJDLGlCQUFpQixFRDRGaUIsR0FBRztFQzNGckMsZ0JBQWdCLEVEMkZrQixHQUFHO0VDcEVyQyxrQkFBa0IsRURxRWEsVUFBVTtFQ3BFekMsZUFBZSxFRG9FZ0IsVUFBVTtFQ25FekMsVUFBVSxFRG1FcUIsVUFBVTtDQUNoQzs7QUEvQ2IsQUFnRCtCLE1BaER6QixDQUVGLFFBQVEsQ0FtQ0osWUFBWSxDQVdSLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsRUFBZTtFQUNqQixLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxhQUFjO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFDLENBQUU7RUFDekYsTUFBTSxFQUFFLE9BQVE7RUFDaEIsVUFBVSxFQUFFLHVDQUFHLENBQXFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRztDQUN4RTs7QUFLYjtnR0FDZ0c7QUFDaEcsQUFBQSxPQUFPLENBQUE7RUFDSCxVQUFVLEVBQUUsS0FBTTtFQUFFLE9BQU8sRUFBRSxhQUFjO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQ25GN0Usa0JBQWtCLEVEbUZnRixVQUFVO0VDbEY1RyxlQUFlLEVEa0ZtRixVQUFVO0VDakY1RyxVQUFVLEVEaUZ3RixVQUFVO0VBQUcsUUFBUSxFQUFFLE1BQU87Q0FrQ25JOztBQW5DRCxBQUVJLE9BRkcsQ0FFSCxNQUFNLENBQUE7RUFDRixRQUFRLEVBQUUsUUFBUztDQUV0Qjs7QUFMTCxBQUVJLE9BRkcsQ0FFSCxNQUFNLEFBRUQsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLFVBQVUsRUFBRSxrQkFBSTtFQUFnQixRQUFRLEVBQUUsUUFBUztFQUFDLEdBQUcsRUFBRSxDQUFFO0VBQUMsTUFBTSxFQUFFLENBQUU7RUFBQyxJQUFJLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxDQUFFO0NBQUk7O0FBSjVJLEFBTUksT0FORyxDQU1ILGFBQWEsQ0FBQTtFQzVHYixVQUFVLEVENEd3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtFQzNHakQsa0JBQWtCLEVEMkdnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtFQzFHakQsZUFBZSxFRDBHbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7RUN6R2pELGNBQWMsRUR5R29CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO0VDeEdqRCxhQUFhLEVEd0dxQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtDQUFLOztBQU4xRCxBQU9JLE9BUEcsQ0FPSCxXQUFXLENBQUE7RUFDUCxRQUFRLEVBQUUsUUFBUztFQUFDLEtBQUssRUFBQyxJQUFLO0VBQUMsR0FBRyxFQUFDLEdBQUk7Q0FnQjNDOztBQXhCTCxBQVNRLE9BVEQsQ0FPSCxXQUFXLENBRVAsTUFBTSxDQUFBO0VBQ0YsTUFBTSxFQUFDLElBQUs7RUFBQyxVQUFVLEVBQUMsSUFBSztFQUFDLEtBQUssRUFBQyxJQUFLO0VBQUMsU0FBUyxFQUFDLElBQUs7RUFBQyxXQUFXLEVBQUMsR0FBSTtFQUFDLE9BQU8sRUFBQyxLQUFNO0VBQUMsUUFBUSxFQUFDLFFBQVM7RUFBQyxNQUFNLEVBQUMsVUFBVztFQUFDLE9BQU8sRUFBQyxTQUFVO0VBQUMsTUFBTSxFQUFDLE9BQVE7RUFBRSxXQUFXLEVBQUUsbUJBQW9CO0NBTXhNOztBQWhCVCxBQVNRLE9BVEQsQ0FPSCxXQUFXLENBRVAsTUFBTSxBQUVELE9BQU8sQ0FBQTtFQUFDLE9BQU8sRUFBQyxHQUFJO0NBQUU7O0FBWG5DLEFBU1EsT0FURCxDQU9ILFdBQVcsQ0FFUCxNQUFNLEFBR0QsTUFBTSxDQUFBO0VBQ0gsT0FBTyxFQUFDLEVBQUc7RUFBQyxRQUFRLEVBQUUsUUFBUztFQUFDLEtBQUssRUFBQyxFQUFHO0VBQUMsVUFBVSxFQUFFLElBQUs7RUFBQyxNQUFNLEVBQUMsR0FBSTtFQUFDLEtBQUssRUFBQyxLQUFNO0VBQUMsTUFBTSxFQUFDLElBQUs7RUN4STdHLFVBQVUsRUR3SXdILElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQ3ZJbkosa0JBQWtCLEVEdUlnSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUN0SW5KLGVBQWUsRURzSW1ILElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQ3JJbkosY0FBYyxFRHFJb0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDcEluSixhQUFhLEVEb0lxSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7Q0FDMUk7O0FBZGIsQUFrQlksT0FsQkwsQ0FPSCxXQUFXLENBVVAsYUFBYSxDQUNULE1BQU0sQ0FBQTtFQUNGLEtBQUssRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7Q0FFdkY7O0FBckJiLEFBa0JZLE9BbEJMLENBT0gsV0FBVyxDQVVQLGFBQWEsQ0FDVCxNQUFNLEFBRUQsTUFBTSxDQUFBO0VBQUMsS0FBSyxFQUFDLElBQUs7Q0FBRzs7QUFwQnRDLEFBeUJJLE9BekJHLENBeUJILEdBQUcsQ0FBQTtFQUNDLE9BQU8sRUFBRSxLQUFNO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLEtBQUssRUFBRSxJQUFLO0NBQ2xFOztBQTNCTCxBQTRCSSxPQTVCRyxDQTRCSCxRQUFRLENBQUE7RUFDSixRQUFRLEVBQUUsUUFBUztFQUFFLFdBQVcsRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxNQUFNLEVBQUUsR0FBSTtFQUFFLEdBQUcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsQ0FBRTtDQUtsSDs7QUFsQ0wsQUE4QlEsT0E5QkQsQ0E0QkgsUUFBUSxDQUVKLEVBQUUsQ0FBQTtFQUNFLFNBQVMsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxhQUFhLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFHLGNBQWMsRUFBRSxTQUFVO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxNQUFPO0NBQ3pNOztBQWhDVCxBQWlDUSxPQWpDRCxDQTRCSCxRQUFRLENBS0osQ0FBQyxDQUFBO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsYUFBYSxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQUUsVUFBVSxFQUFFLElBQUs7RUFBRSxRQUFRLEVBQUUsTUFBTztDQUFJOztBQUdsSyxBQUFBLGNBQWMsQ0FBQTtFQUNWLFVBQVUsRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLFVBQVc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxDQUFFO0NBa0M3RTs7QUFuQ0QsQUFFSSxjQUZVLENBRVYsT0FBTyxDQUFBO0VBQ0gsUUFBUSxFQUFFLFFBQVM7Q0FNdEI7O0FBVEwsQUFFSSxjQUZVLENBRVYsT0FBTyxBQUVGLE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxLQUFNO0VBQUUsT0FBTyxFQUFFLEVBQUc7RUFBRSxVQUFVLEVBQUUsbUJBQUk7RUFBaUIsUUFBUSxFQUFFLFFBQVM7RUFBQyxHQUFHLEVBQUUsQ0FBRTtFQUFDLE1BQU0sRUFBRSxDQUFFO0VBQUMsSUFBSSxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsQ0FBRTtDQUFJOztBQUo3SSxBQUtRLGNBTE0sQ0FFVixPQUFPLENBR0gsR0FBRyxDQUFBO0VBQ0MsT0FBTyxFQUFFLEtBQU07RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxJQUFHLENBQUMsbUJBQUk7RUFBaUIsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUcsQ0FBQyxtQkFBSTtFQUFpQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsSUFBRyxDQUFDLG1CQUFJO0NBRWhPOztBQVJULEFBS1EsY0FMTSxDQUVWLE9BQU8sQ0FHSCxHQUFHLEFBRUUsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLFVBQVUsRUFBRSxrQkFBSTtFQUFpQixRQUFRLEVBQUUsUUFBUztFQUFDLEdBQUcsRUFBRSxDQUFFO0VBQUMsTUFBTSxFQUFFLENBQUU7RUFBQyxJQUFJLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxDQUFFO0NBQUk7O0FBUGpKLEFBVUksY0FWVSxDQVVWLE1BQU0sQ0FBQTtFQUNGLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLEtBQU07RUFBRSxJQUFJLEVBQUUsS0FBTTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxDQUFFO0NBRTlHOztBQWJMLEFBWVEsY0FaTSxDQVVWLE1BQU0sQ0FFRixFQUFFLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07Q0FBSTs7QUFaNUUsQUFBQSxjQUFjLEFBZVQsVUFBVSxDQUFBO0VBQ1AsY0FBYyxFQUFFLElBQUs7Q0FjeEI7O0FBOUJMLEFBQUEsY0FBYyxBQWVULFVBQVUsQUFFTixPQUFPLENBQUE7RUFBQyxPQUFPLEVBQUMsRUFBRztFQUFDLFFBQVEsRUFBRSxRQUFTO0VBQUMsTUFBTSxFQUFFLENBQUU7RUFBQyxJQUFJLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxDQUFFO0VBQUMsTUFBTSxFQUFFLEdBQUk7RUFBQyxVQUFVLEVBQUMsT0FBTyxDQUFDLG1DQUFHLENBQWdDLFNBQVMsQ0FBQyxLQUFLO0NBQUc7O0FBakJwSyxBQWtCUSxjQWxCTSxBQWVULFVBQVUsQ0FHUCxNQUFNLENBQUE7RUFDRixVQUFVLEVBQUUsTUFBTztFQUFDLElBQUksRUFBRSxHQUFJO0VDM0t0QyxTQUFTLEVEMktpRCxnQkFBVTtFQzFLcEUsaUJBQWlCLEVEMEt5QyxnQkFBVTtFQ3pLcEUsY0FBYyxFRHlLNEMsZ0JBQVU7RUN4S3BFLGFBQWEsRUR3SzZDLGdCQUFVO0VDdktwRSxZQUFZLEVEdUs4QyxnQkFBVTtDQVUvRDs7QUE3QlQsQUFvQlksY0FwQkUsQUFlVCxVQUFVLENBR1AsTUFBTSxDQUVGLEVBQUUsQ0FBQTtFQUNFLFNBQVMsRUFBRSxLQUFNO0VBQUMsV0FBVyxFQUFFLHFCQUFzQjtFQUFDLGFBQWEsRUFBRSxJQUFLO0VBQUMsV0FBVyxFQUFFLEdBQUk7Q0FFL0Y7O0FBdkJiLEFBb0JZLGNBcEJFLEFBZVQsVUFBVSxDQUdQLE1BQU0sQ0FFRixFQUFFLEFBRUcsSUFBSSxDQUFBO0VBQUMsU0FBUyxFQUFFLEtBQU07RUFBQyxhQUFhLEVBQUUsSUFBSztDQUFHOztBQXRCL0QsQUF3QlksY0F4QkUsQUFlVCxVQUFVLENBR1AsTUFBTSxDQU1GLENBQUMsQ0FBQTtFQUFDLFNBQVMsRUFBRSxJQUFLO0VBQUMsV0FBVyxFQUFFLElBQUs7RUFBQyxXQUFXLEVBQUUscUJBQXNCO0VBQUMsYUFBYSxFQUFFLElBQUs7Q0FBRzs7QUF4QjdHLEFBeUJZLGNBekJFLEFBZVQsVUFBVSxDQUdQLE1BQU0sQ0FPRixRQUFRLENBQUE7RUFDSixLQUFLLEVBQUUsSUFBSztFQUFDLFNBQVMsRUFBRSxJQUFLO0VBQUMsUUFBUSxFQUFFLFFBQVM7Q0FFcEQ7O0FBNUJiLEFBeUJZLGNBekJFLEFBZVQsVUFBVSxDQUdQLE1BQU0sQ0FPRixRQUFRLEFBRUgsT0FBTyxDQUFBO0VBQUMsT0FBTyxFQUFDLEVBQUc7RUFBQyxRQUFRLEVBQUUsUUFBUztFQUFDLE1BQU0sRUFBRSxDQUFFO0VBQUMsSUFBSSxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsQ0FBRTtFQUFDLE1BQU0sRUFBRSxHQUFJO0VBQUMsVUFBVSxFQUFFLElBQUs7Q0FBRzs7QUEzQnhILEFBQUEsY0FBYyxBQStCVCxRQUFRLENBQUE7RUFDTCxjQUFjLEVBQUUsSUFBSztDQUV4Qjs7QUFsQ0wsQUFBQSxjQUFjLEFBK0JULFFBQVEsQUFFSixPQUFPLENBQUE7RUFBQyxPQUFPLEVBQUMsRUFBRztFQUFDLFFBQVEsRUFBRSxRQUFTO0VBQUMsTUFBTSxFQUFFLENBQUU7RUFBQyxJQUFJLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxDQUFFO0VBQUMsTUFBTSxFQUFFLEdBQUk7RUFBQyxVQUFVLEVBQUMsT0FBTyxDQUFDLG1DQUFHLENBQWdDLFNBQVMsQ0FBQyxLQUFLO0NBQUc7O0FBR3BLLEFBQUEsS0FBSyxDQUFBO0VBQ0QsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsY0FBYyxFQUFFLFNBQVU7Q0FtQmxKOztBQXBCRCxBQUFBLEtBQUssQUFFQSxNQUFNLENBQUE7RUFDSCxNQUFNLEVBQUMsR0FBSTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFDLEVBQUc7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxJQUFJLEVBQUUsQ0FBRTtFQ3RNMUcsVUFBVSxFRHNNc0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDck1sSixrQkFBa0IsRURxTThHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3BNbEosZUFBZSxFRG9NaUgsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDbk1sSixjQUFjLEVEbU1rSCxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNsTWxKLGFBQWEsRURrTW1ILEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztDQUNqSjs7QUFKTCxBQUFBLEtBQUssQUFLQSxNQUFNLENBQUE7RUFDSCxLQUFLLEVBQUUsSUFBSztDQUlmOztBQVZMLEFBQUEsS0FBSyxBQUtBLE1BQU0sQUFFRixNQUFNLENBQUE7RUFDSCxVQUFVLEVBQUMsSUFBSztDQUNuQjs7QUFUVCxBQUFBLEtBQUssQUFXQSxLQUFLLENBQUE7RUFDRixLQUFLLEVBQUUsT0FBUTtDQUlsQjs7QUFoQkwsQUFBQSxLQUFLLEFBV0EsS0FBSyxBQUVELE1BQU0sQ0FBQTtFQUNILFVBQVUsRUFBQyxPQUFRO0NBQ3RCOztBQWZULEFBQUEsS0FBSyxBQWlCQSxNQUFNLEFBQ0YsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFDLEdBQUk7RUNyTnZCLFVBQVUsRURxTm1DLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3BOL0Qsa0JBQWtCLEVEb04yQixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNuTi9ELGVBQWUsRURtTjhCLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ2xOL0QsY0FBYyxFRGtOK0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDak4vRCxhQUFhLEVEaU5nQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7Q0FBSzs7QUFHeEUsQUFBQSxZQUFZLENBQUE7RUFDUixXQUFXLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQUUsY0FBYyxFQUFFLFNBQVU7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLE1BQU87RUFBRSxNQUFNLEVBQUUsS0FBTTtFQ2xOOUwsU0FBUyxFRG1OVSxrQkFBUyxDQUFTLGFBQU07RUNsTjNDLGlCQUFpQixFRGtORSxrQkFBUyxDQUFTLGFBQU07RUNqTjNDLGNBQWMsRURpTkssa0JBQVMsQ0FBUyxhQUFNO0VDaE4zQyxhQUFhLEVEZ05NLGtCQUFTLENBQVMsYUFBTTtFQy9NM0MsWUFBWSxFRCtNTyxrQkFBUyxDQUFTLGFBQU07RUFBUyxnQkFBZ0IsRUFBRSxHQUFJO0VDMU4xRSxVQUFVLEVEME5xRixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUc7RUN6TmpILGtCQUFrQixFRHlONkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDeE5qSCxlQUFlLEVEd05nRixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUc7RUN2TmpILGNBQWMsRUR1TmlGLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRztFQ3ROakgsYUFBYSxFRHNOa0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0NBTXBIOztBQVJELEFBQUEsWUFBWSxBQUdQLE1BQU0sQ0FBQTtFQUFFLEtBQUssRUFBQyxJQUFLO0NBQUk7O0FBSDVCLEFBSUksWUFKUSxDQUlSLElBQUksQ0FBQTtFQUNBLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxZQUFhO0VBQUUsYUFBYSxFQUFFLEdBQUk7Q0FFN0Y7O0FBUEwsQUFJSSxZQUpRLENBSVIsSUFBSSxBQUVDLE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxFQUFHO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUMsSUFBSztDQUFJOztBQUdwSCxBQUFBLFNBQVMsQ0FBQTtFQUNMLFVBQVUsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBaUMsaUNBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSztFQUFFLFVBQVUsRUFBRSxNQUFPO0VBQUUsT0FBTyxFQUFFLENBQUU7RUFBRSxXQUFXLEVBQUUsS0FBTTtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFDaE0sY0FBYyxFQUFFLEtBQU07RUMxTHJCLGtCQUFrQixFRDBMd0IsVUFBVTtFQ3pMcEQsZUFBZSxFRHlMMkIsVUFBVTtFQ3hMcEQsVUFBVSxFRHdMZ0MsVUFBVTtDQXlDdkQ7O0FBM0NELEFBR0ksU0FISyxDQUdMLFFBQVEsQ0FBQTtFQUFFLEtBQUssRUFBRSxNQUFPO0NBQXlCOztBQUhyRCxBQUlJLFNBSkssQ0FJTCxLQUFLLEVBSlQsQUFJVyxTQUpGLENBSUUsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7Q0FBSTs7QUFKbEMsQUFLSSxTQUxLLENBS0wsS0FBSyxDQUFBO0VBQ0QsVUFBVSxFQUFFLEtBQU07RUFBRSxhQUFhLEVBQUUsS0FBTTtFQUFFLFVBQVUsRUFBRSxVQUFXO0NBQ3JFOztBQVBMLEFBUUksU0FSSyxDQVFMLE1BQU0sQ0FBQTtFQUNGLEtBQUssRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsSUFBSztDQVF6RDs7QUFqQkwsQUFVUSxTQVZDLENBUUwsTUFBTSxDQUVGLENBQUMsQ0FBQTtFQUNHLFdBQVcsRUFBRSxxQkFBc0I7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQ3pFLFVBQVUsRUFBRSxPQUFRO0NBQ3ZCOztBQWJULEFBY1EsU0FkQyxDQVFMLE1BQU0sQ0FNRixLQUFLLENBQUE7RUFDRCxTQUFTLEVBQUUsSUFBSztDQUNuQjs7QUFoQlQsQUFBQSxTQUFTLEFBa0JKLE1BQU0sQ0FBQTtFQUFFLFFBQVEsRUFBQyxRQUFTO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLEtBQUssRUFBRSxNQUFPO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUMsSUFBSztFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUMsSUFBSSxFQUFFLEdBQUk7Q0FBSTs7QUFsQjNJLEFBbUJJLFNBbkJLLENBbUJMLFlBQVksQ0FBQTtFQUNSLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLEdBQUk7Q0FNakM7O0FBMUJMLEFBcUJRLFNBckJDLENBbUJMLFlBQVksQ0FFUixNQUFNLENBQUE7RUFDRixLQUFLLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLFdBQVcsRUFBRSxtQkFBb0I7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLG9DQUFHLENBQWtDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSztFQUFDLE1BQU0sRUFBQyxjQUFlO0VBQUUsTUFBTSxFQUFFLE9BQVE7Q0FHL1I7O0FBekJULEFBdUJZLFNBdkJILENBbUJMLFlBQVksQ0FFUixNQUFNLENBRUYsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFFLElBQUs7Q0FBSTs7QUF2QnBDLEFBMkJXLFNBM0JGLENBMkJMLE9BQU8sQUFBQSxNQUFNLENBQUE7RUFDVCxRQUFRLEVBQUUsUUFBUztDQUt0Qjs7QUFqQ0wsQUE2QlEsU0E3QkMsQ0EyQkwsT0FBTyxBQUFBLE1BQU0sQ0FFVCxFQUFFLEFBQ0csTUFBTSxFQTlCbkIsQUE2QlcsU0E3QkYsQ0EyQkwsT0FBTyxBQUFBLE1BQU0sQ0FFTixFQUFFLEFBQ0EsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLElBQUs7Q0FBSTs7QUE5QnRDLEFBMkJXLFNBM0JGLENBMkJMLE9BQU8sQUFBQSxNQUFNLEFBS1IsTUFBTSxDQUFBO0VBQUUsUUFBUSxFQUFDLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE9BQU8sRUFBRSxFQUFHO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsR0FBSTtFQUFFLFVBQVUsRUFBQyxJQUFLO0VBQUUsTUFBTSxFQUFDLEtBQU07RUFBQyxJQUFJLEVBQUUsR0FBSTtDQUFJOztBQWhDOUksQUFtQ2UsU0FuQ04sQUFrQ0osU0FBUyxDQUNOLE9BQU8sQUFBQSxNQUFNLENBQUE7RUFDVCxhQUFhLEVBQUUsS0FBTTtDQUV4Qjs7QUF0Q1QsQUFxQ1ksU0FyQ0gsQUFrQ0osU0FBUyxDQUNOLE9BQU8sQUFBQSxNQUFNLENBRVQsRUFBRSxDQUFBO0VBQUcsVUFBVSxFQUFFLEtBQU07RUFBRSxRQUFRLEVBQUUsS0FBTTtDQUFLOztBQXJDMUQsQUF3Q1ksU0F4Q0gsQUFrQ0osU0FBUyxDQUtOLE1BQU0sQ0FDRixDQUFDLENBQUE7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLFFBQVEsRUFBRSxLQUFNO0NBQUk7O0FBSWxELEFBS2UsYUFMRixDQUNULFNBQVMsQ0FJTCxPQUFPLEFBQUEsTUFBTSxDQUFBO0VBQ1QsUUFBUSxFQUFFLFFBQVM7Q0FFdEI7O0FBUlQsQUFLZSxhQUxGLENBQ1QsU0FBUyxDQUlMLE9BQU8sQUFBQSxNQUFNLEFBRVIsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7RUFBRSxJQUFJLEVBQUUsS0FBTTtDQUFJOztBQUlsRCxBQUFBLFlBQVksQ0FBQTtFQUNSLFVBQVUsRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLENBQUU7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLFVBQVUsRUFBdUMsc0NBQUMsQ0FBQyxTQUFTO0VBQUUsbUJBQW1CLEVBQUUsV0FBWTtFQUFFLGNBQWMsRUFBRSxLQUFNO0NBb0RoTDs7QUFyREQsQUFHSSxZQUhRLENBR1IsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBSTs7QUFIaEMsQUFJSSxZQUpRLENBSVIsS0FBSyxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7RUFBRSxXQUFXLEVBQUUsSUFBSztDQUFJOztBQUo5QyxBQUtJLFlBTFEsQ0FLUixNQUFNLENBQUE7RUFBRSxLQUFLLEVBQUUsR0FBSTtFQUFFLFFBQVEsRUFBRSxRQUFTO0NBQUk7O0FBTGhELEFBUVksWUFSQSxDQU1SLFlBQVksQ0FDUixZQUFZLENBQ1IsR0FBRyxDQUFBO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxLQUFNO0VBQUUsUUFBUSxFQUFFLE1BQU87Q0FBSTs7QUFSeEYsQUFVUSxZQVZJLENBTVIsWUFBWSxDQUlSLE1BQU0sQ0FBQTtFQUFFLFFBQVEsRUFBRSxRQUFTO0NBQUk7O0FBVnZDLEFBV1EsWUFYSSxDQU1SLFlBQVksQ0FLUixHQUFHLENBQUE7RUFDQyxPQUFPLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsT0FBTyxFQUFFLENBQUU7Q0FDcEQ7O0FBYlQsQUFnQkksWUFoQlEsQ0FnQlIsYUFBYSxDQUFBO0VBQ1QsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLFVBQVUsRUFBRSxHQUFJO0NBbUNyRDs7QUFwREwsQUFrQlEsWUFsQkksQ0FnQlIsYUFBYSxDQUVULFlBQVksQ0FBQTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxLQUFLLEVBQUUsS0FBTTtDQUFHOztBQWxCM0UsQUFtQlEsWUFuQkksQ0FnQlIsYUFBYSxDQUdULFFBQVEsQ0FBQTtFQUNKLFFBQVEsRUFBRSxRQUFTO0VBQUMsTUFBTSxFQUFFLENBQUU7RUFBRSxLQUFLLEVBQUUsR0FBSTtFQUFFLFVBQVUsRUFBRSxtQkFBSTtFQUFpQixLQUFLLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxLQUFLLEVBQUUsSUFBSztDQUdsTTs7QUF2QlQsQUFxQlksWUFyQkEsQ0FnQlIsYUFBYSxDQUdULFFBQVEsQ0FFSixFQUFFLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxhQUFhLEVBQUUsSUFBSztFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FBRzs7QUFyQmpJLEFBc0JZLFlBdEJBLENBZ0JSLGFBQWEsQ0FHVCxRQUFRLENBR0osQ0FBQyxDQUFBO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsTUFBTztFQUFFLFdBQVcsRUFBRSxtQkFBb0I7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FBRzs7QUF0QnBKLEFBd0JRLFlBeEJJLENBZ0JSLGFBQWEsQ0FRVCxXQUFXLENBQUE7RUFBRSx1QkFBdUI7RUFBQSxLQUFLLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLE1BQU87RUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBLFVBQVU7RUFBRSxLQUFLLEVBQUUsSUFBSztDQUFHOztBQXhCbkksQUF5QlEsWUF6QkksQ0FnQlIsYUFBYSxDQVNULFlBQVksQ0FBQTtFQUNSLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLE9BQVE7RUFBRSxnQkFBZ0IsRUFBRSxJQUFLO0VBQUUsaUJBQWlCLEVBQUUsU0FBVTtFQUFFLG1CQUFtQixFQUFFLE1BQU87RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLFdBQVk7RUFBQyxPQUFPLEVBQUUsQ0FBRTtFQUFFLE9BQU8sRUFBRSxDQUFFO0NBQ25QOztBQTNCVCxBQTRCUSxZQTVCSSxDQWdCUixhQUFhLENBWVQsV0FBVyxDQUFBO0VBQUMsVUFBVSxFQUFDLElBQUs7RUFBRSxNQUFNLEVBQUMsSUFBSztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBd0MsdUNBQUMsQ0FBQyxTQUFTO0VBQUUsSUFBSSxFQUFFLEdBQUk7Q0FBRzs7QUE1QjNLLEFBNkJRLFlBN0JJLENBZ0JSLGFBQWEsQ0FhVCxXQUFXLENBQUE7RUFBQyxVQUFVLEVBQUMsSUFBSztFQUFFLE1BQU0sRUFBQyxJQUFLO0VBQUUsU0FBUyxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUF5Qyx3Q0FBQyxDQUFDLFNBQVM7RUFBRSxJQUFJLEVBQUUsSUFBSztDQUFHOztBQTdCN0ssQUE4QlEsWUE5QkksQ0FnQlIsYUFBYSxDQWNULGVBQWUsQUFDVixXQUFXLENBQUE7RUFBQyxVQUFVLEVBQXdDLHVDQUFDLENBQUMsU0FBUztFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUc7O0FBL0IzRyxBQThCUSxZQTlCSSxDQWdCUixhQUFhLENBY1QsZUFBZSxBQUVWLFdBQVcsQ0FBQTtFQUFDLFVBQVUsRUFBeUMsd0NBQUMsQ0FBQyxTQUFTO0VBQUUsTUFBTSxFQUFFLE9BQVE7Q0FBRzs7QUFoQzVHLEFBa0NRLFlBbENJLENBZ0JSLGFBQWEsQ0FrQlQsV0FBVyxDQUFBO0VBQ1AsUUFBUSxFQUFFLFFBQVM7RUFBQyxJQUFJLEVBQUMsR0FBSTtFQUFDLEdBQUcsRUFBQyxJQUFLO0NBZ0IxQzs7QUFuRFQsQUFvQ1ksWUFwQ0EsQ0FnQlIsYUFBYSxDQWtCVCxXQUFXLENBRVAsRUFBRSxDQUFBO0VBQUUsT0FBTyxFQUFFLFlBQWE7Q0FBSTs7QUFwQzFDLEFBcUNZLFlBckNBLENBZ0JSLGFBQWEsQ0FrQlQsV0FBVyxDQUdQLE1BQU0sQ0FBQTtFQUNGLE1BQU0sRUFBQyxJQUFLO0VBQUMsVUFBVSxFQUFDLElBQUs7RUFBQyxLQUFLLEVBQUMsT0FBUTtFQUFDLFNBQVMsRUFBQyxJQUFLO0VBQUMsV0FBVyxFQUFDLEdBQUk7RUFBQyxRQUFRLEVBQUMsUUFBUztFQUFDLE1BQU0sRUFBQyxPQUFRO0VBQUUsV0FBVyxFQUFFLG1CQUFvQjtFQUFDLFdBQVcsRUFBRSxJQUFLO0VBQUUsWUFBWSxFQUFFLElBQUs7Q0FNOUw7O0FBNUNiLEFBcUNZLFlBckNBLENBZ0JSLGFBQWEsQ0FrQlQsV0FBVyxDQUdQLE1BQU0sQUFFRCxPQUFPLENBQUE7RUFBQyxPQUFPLEVBQUMsR0FBSTtDQUFFOztBQXZDdkMsQUFxQ1ksWUFyQ0EsQ0FnQlIsYUFBYSxDQWtCVCxXQUFXLENBR1AsTUFBTSxBQUdELE1BQU0sQ0FBQTtFQUNILE9BQU8sRUFBQyxFQUFHO0VBQUMsUUFBUSxFQUFFLFFBQVM7RUFBQyxLQUFLLEVBQUMsRUFBRztFQUFDLE1BQU0sRUFBQyxHQUFJO0VBQUMsSUFBSSxFQUFDLEdBQUk7RUFBQyxNQUFNLEVBQUMsR0FBSTtFQ2pVM0YsVUFBVSxFRGlVc0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDaFVqSSxrQkFBa0IsRURnVThGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQy9UakksZUFBZSxFRCtUaUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDOVRqSSxjQUFjLEVEOFRrRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUM3VGpJLGFBQWEsRUQ2VG1HLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQUFHLEtBQUssRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLE9BQVE7Q0FDeko7O0FBMUNqQixBQThDZ0IsWUE5Q0osQ0FnQlIsYUFBYSxDQWtCVCxXQUFXLENBV1AsYUFBYSxDQUNULE1BQU0sQ0FBQTtFQUNGLElBQUksRUFBRSxDQUFFO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsT0FBUTtDQUVwRzs7QUFqRGpCLEFBOENnQixZQTlDSixDQWdCUixhQUFhLENBa0JULFdBQVcsQ0FXUCxhQUFhLENBQ1QsTUFBTSxBQUVELE1BQU0sQ0FBQTtFQUFDLFVBQVUsRUFBRSwwRkFBZTtDQUEwRTs7QUFNakksQUFBQSxpQkFBaUIsQ0FBQTtFQUNiLFVBQVUsRUFBRSxNQUFPO0NBeUJ0Qjs7QUExQkQsQUFFSSxpQkFGYSxDQUViLFFBQVEsQ0FBQTtFQUFFLEtBQUssRUFBRSxNQUFPO0NBQUk7O0FBRmhDLEFBR0ksaUJBSGEsQ0FHYixJQUFJLENBQUE7RUFDQSxLQUFLLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxZQUFZLEVBQUUsSUFBSztFQUFFLGFBQWEsRUFBRSxJQUFLO0NBcUI5Rjs7QUF6QkwsQUFHSSxpQkFIYSxDQUdiLElBQUksQUFFQyxVQUFXLENBQUEsSUFBSSxFQUFDO0VBQUUsWUFBWSxFQUFFLENBQUU7Q0FBSTs7QUFML0MsQUFNUSxpQkFOUyxDQUdiLElBQUksQ0FHQSxlQUFlLENBQUE7RUFDWCxLQUFLLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLE9BQVE7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE1BQU0sRUFBRSxpQkFBa0I7RUFBRSxZQUFZLEVBQUUsR0FBSTtFQUFFLFVBQVUsRUFBRSxVQUFXO0NBTXBKOztBQWJULEFBUVksaUJBUkssQ0FHYixJQUFJLENBR0EsZUFBZSxDQUVYLEdBQUcsQ0FBQTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsQ0FBRTtFQUFFLEtBQUssRUFBRSxDQUFFO0VBQUUsSUFBSSxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFJOztBQVJqRyxBQU1RLGlCQU5TLENBR2IsSUFBSSxDQUdBLGVBQWUsQUFHVixNQUFNLENBQUM7RUFDSixVQUFVLEVBQUUsT0FBUTtFQ3hWaEMsVUFBVSxFRHdWNEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDdlZ4RSxrQkFBa0IsRUR1Vm9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3RWeEUsZUFBZSxFRHNWdUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDclZ4RSxjQUFjLEVEcVZ3QyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNwVnhFLGFBQWEsRURvVnlDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQUFHLE1BQU0sRUFBRSxpQkFBa0I7Q0FFNUY7O0FBWmIsQUFXZ0IsaUJBWEMsQ0FHYixJQUFJLENBR0EsZUFBZSxBQUdWLE1BQU0sQ0FFSCxHQUFHLENBQUE7RUFBQyxjQUFjLEVBQUUsYUFBVSxDQUFJLFNBQU07RUFBSSxNQUFNLEVBQUUsYUFBVSxDQUFJLFNBQU07Q0FBTTs7QUFYOUYsQUFlWSxpQkFmSyxDQUdiLElBQUksQ0FXQSxRQUFRLENBQ0osTUFBTSxDQUFBO0VBQ0YsU0FBUyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsR0FBSTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsYUFBYztFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUcsV0FBVyxFQUFFLElBQUs7Q0FHcE07O0FBbkJiLEFBaUJnQixpQkFqQkMsQ0FHYixJQUFJLENBV0EsUUFBUSxDQUNKLE1BQU0sQ0FFRixFQUFFLENBQUE7RUFBRSxRQUFRLEVBQUUsTUFBTztFQUFFLFVBQVUsRUFBRSxJQUFLO0NBQUk7O0FBakI1RCxBQWVZLGlCQWZLLENBR2IsSUFBSSxDQVdBLFFBQVEsQ0FDSixNQUFNLEFBR0QsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEVBQUc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLENBQUU7RUFBRSxJQUFJLEVBQUUsQ0FBRTtDQUFHOztBQWxCckosQUFvQlksaUJBcEJLLENBR2IsSUFBSSxDQVdBLFFBQVEsQ0FNSixDQUFDLENBQUE7RUFDRyxPQUFPLEVBQUUsYUFBYztFQUFFLDRCQUE0QjtFQUFBLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxxQkFBc0I7RUFBRSxRQUFRLEVBQUUsTUFBTztFQUMvSixVQUFVLEVBQUUsT0FBUTtDQUN2Qjs7QUFJYixBQUFBLFVBQVUsQ0FBQTtFQUNOLGFBQWEsRUFBRSxLQUFNO0NBdUN4Qjs7QUF4Q0QsQUFFSSxVQUZNLENBRU4sUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBSTs7QUFGaEMsQUFHSSxVQUhNLENBR04sTUFBTSxDQUFBO0VBQ0YsTUFBTSxFQUFFLE1BQU87RUFBZ0IsZUFBZSxFQUFFLGFBQWM7Q0FtQ2pFOztBQXZDTCxBQU1RLFVBTkUsQ0FHTixNQUFNLENBR0YsSUFBSSxDQUFBO0VBQ0EsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxLQUFLLEVBQUUsR0FBSTtDQUM3Rjs7QUFSVCxBQVNRLFVBVEUsQ0FHTixNQUFNLENBTUYsR0FBRyxDQUFBO0VBQ0MsS0FBSyxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztDQUM1Qjs7QUFYVCxBQVlRLFVBWkUsQ0FHTixNQUFNLENBU0YsR0FBRyxDQUFBO0VBQUUsYUFBYSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLEtBQUssRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLEtBQU07Q0FBRzs7QUFaekYsQUFjWSxVQWRGLENBR04sTUFBTSxDQVVGLE9BQU8sQ0FDSCxHQUFHLENBQUE7RUFBRSxPQUFPLEVBQUUsS0FBTTtDQUFJOztBQWRwQyxBQWdCUSxVQWhCRSxDQUdOLE1BQU0sQ0FhRixRQUFRLENBQUE7RUFDSixPQUFPLEVBQUUsVUFBVztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0FTcEU7O0FBMUJULEFBa0JZLFVBbEJGLENBR04sTUFBTSxDQWFGLFFBQVEsQ0FFSixFQUFFLENBQUE7RUFDRSxTQUFTLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxHQUFJO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxjQUFjLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsYUFBYSxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0NBRXRLOztBQXJCYixBQWtCWSxVQWxCRixDQUdOLE1BQU0sQ0FhRixRQUFRLENBRUosRUFBRSxBQUVHLE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxFQUFHO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUUsSUFBSSxFQUFFLEtBQU07Q0FBRzs7QUFwQnpKLEFBc0JZLFVBdEJGLENBR04sTUFBTSxDQWFGLFFBQVEsQ0FNSixDQUFDLEVBdEJiLEFBc0JrQixVQXRCUixDQUdOLE1BQU0sQ0FhRixRQUFRLENBTUQsRUFBRSxDQUFDLEVBQUUsQ0FBQTtFQUNKLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0NBQzVFOztBQXhCYixBQXlCZSxVQXpCTCxDQUdOLE1BQU0sQ0FhRixRQUFRLENBU0osRUFBRSxDQUFDLEVBQUUsQ0FBQTtFQUFFLFVBQVUsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxhQUFhLEVBQUUsSUFBSztDQUFHOztBQXpCakYsQUE0QlksVUE1QkYsQ0FHTixNQUFNLEFBd0JELFlBQWEsQ0FBQSxFQUFFLEVBQ1osSUFBSSxBQUNDLEdBQUcsQ0FBQztFQUFDLEtBQUssRUFBRSxDQUFFO0VBQUUsYUFBYSxFQUFFLENBQUU7RUFBRSxVQUFVLEVBQUUsQ0FBRTtFQUFFLFNBQVMsRUFBRSxDQUFFO0NBQUc7O0FBN0JwRixBQTRCWSxVQTVCRixDQUdOLE1BQU0sQUF3QkQsWUFBYSxDQUFBLEVBQUUsRUFDWixJQUFJLEFBRUMsR0FBRyxDQUFDO0VBQUMsS0FBSyxFQUFFLENBQUU7RUFBRSxhQUFhLEVBQUUsQ0FBRTtFQUFFLFVBQVUsRUFBRSxDQUFFO0VBQUUsU0FBUyxFQUFFLENBQUU7RUFBRSxZQUFZLEVBQUUsSUFBSztFQUFFLGFBQWEsRUFBRSxDQUFFO0VBQUUsVUFBVSxFQUFFLEtBQU07Q0FBRzs7QUE5QmhKLEFBaUNnQixVQWpDTixDQUdOLE1BQU0sQUF3QkQsWUFBYSxDQUFBLEVBQUUsRUFLWixRQUFRLENBQ0osRUFBRSxBQUNHLE1BQU0sQ0FBQTtFQUFFLElBQUksRUFBQyxLQUFNO0VBQUUsS0FBSyxFQUFFLEtBQU07Q0FBSTs7QUFsQzNELEFBb0NtQixVQXBDVCxDQUdOLE1BQU0sQUF3QkQsWUFBYSxDQUFBLEVBQUUsRUFLWixRQUFRLENBSUosRUFBRSxDQUFDLEVBQUUsQ0FBQTtFQUFFLFdBQVcsRUFBRSxDQUFFO0VBQUUsWUFBWSxFQUFFLElBQUs7Q0FBSTs7QUFLL0QsQUFDSSxZQURRLENBQ1IsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBRzs7QUFEL0IsQUFFSSxZQUZRLENBRVIsTUFBTSxDQUFBO0VBQ0YsTUFBTSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLGFBQWEsRUFBRSxJQUFLO0NBYXZEOztBQWhCTCxBQUtRLFlBTEksQ0FFUixNQUFNLENBR0YsS0FBSyxDQUFBO0VBQ0QsS0FBSyxFQUFFLEtBQU07Q0FLaEI7O0FBWFQsQUFPWSxZQVBBLENBRVIsTUFBTSxDQUdGLEtBQUssQ0FFRCxFQUFFLENBQUE7RUFDRSxLQUFLLEVBQUUsT0FBUTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxjQUFjLEVBQUUsU0FBVTtFQUFFLFFBQVEsRUFBRSxRQUFTO0NBRW5LOztBQVZiLEFBT1ksWUFQQSxDQUVSLE1BQU0sQ0FHRixLQUFLLENBRUQsRUFBRSxBQUVHLE1BQU0sQ0FBQTtFQUFFLFFBQVEsRUFBQyxRQUFTO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLEdBQUk7RUFBRSxVQUFVLEVBQUMsT0FBUTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUMsSUFBSSxFQUFFLEdBQUk7Q0FBSTs7QUFUMUosQUFZUSxZQVpJLENBRVIsTUFBTSxDQVVGLE1BQU0sQ0FBQTtFQUNGLEtBQUssRUFBRSxLQUFNO0VBQUcsVUFBVSxFQUFFLE9BQVE7Q0FFdkM7O0FBZlQsQUFjWSxZQWRBLENBRVIsTUFBTSxDQVVGLE1BQU0sQ0FFRixDQUFDLENBQUE7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFRO0NBQUk7O0FBZGxILEFBbUJRLFlBbkJJLENBaUJSLEtBQUssQ0FFRCxJQUFJLENBQUE7RUFDQSxLQUFLLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxZQUFZLEVBQUUsSUFBSztFQUFFLGFBQWEsRUFBRSxJQUFLO0NBc0I5Rjs7QUExQ1QsQUFtQlEsWUFuQkksQ0FpQlIsS0FBSyxDQUVELElBQUksQUFFQyxVQUFXLENBQUEsSUFBSSxFQUFDO0VBQUUsWUFBWSxFQUFFLENBQUU7Q0FBSTs7QUFyQm5ELEFBc0JZLFlBdEJBLENBaUJSLEtBQUssQ0FFRCxJQUFJLENBR0EsZUFBZSxDQUFBO0VBQ1gsS0FBSyxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLFVBQVUsRUFBRSxPQUFRO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxNQUFNLEVBQUUsaUJBQWtCO0VBQUUsWUFBWSxFQUFFLEdBQUk7RUFBRSxVQUFVLEVBQUUsVUFBVztFQ3phN0osVUFBVSxFRHlheUssR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDeGFyTSxrQkFBa0IsRUR3YWlLLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3Zhck0sZUFBZSxFRHVhb0ssR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDdGFyTSxjQUFjLEVEc2FxSyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNyYXJNLGFBQWEsRURxYXNLLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztDQUU1TDs7QUF6QmIsQUF3QmdCLFlBeEJKLENBaUJSLEtBQUssQ0FFRCxJQUFJLENBR0EsZUFBZSxDQUVYLEdBQUcsQ0FBQTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsQ0FBRTtFQUFFLEtBQUssRUFBRSxDQUFFO0VBQUUsSUFBSSxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFJOztBQXhCckcsQUEyQmdCLFlBM0JKLENBaUJSLEtBQUssQ0FFRCxJQUFJLENBT0EsUUFBUSxDQUNKLE1BQU0sQ0FBQTtFQUNGLFNBQVMsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLGFBQWM7RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtDQUUvSzs7QUE5QmpCLEFBMkJnQixZQTNCSixDQWlCUixLQUFLLENBRUQsSUFBSSxDQU9BLFFBQVEsQ0FDSixNQUFNLEFBRUQsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEVBQUc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLENBQUU7RUFBRSxJQUFJLEVBQUUsQ0FBRTtDQUFHOztBQTdCekosQUErQmdCLFlBL0JKLENBaUJSLEtBQUssQ0FFRCxJQUFJLENBT0EsUUFBUSxDQUtKLENBQUMsQ0FBQTtFQUNHLE9BQU8sRUFBRSxnQkFBaUI7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQ25ILFVBQVUsRUFBRSxPQUFRO0NBQ3ZCOztBQWxDakIsQUFxQ2dCLFlBckNKLENBaUJSLEtBQUssQ0FFRCxJQUFJLEFBaUJDLE1BQU0sQ0FDSCxlQUFlLENBQUE7RUFDWCxVQUFVLEVBQUUsT0FBUTtFQ3hicEMsVUFBVSxFRHdiZ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDdmI1RSxrQkFBa0IsRUR1YndDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3RiNUUsZUFBZSxFRHNiMkMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDcmI1RSxjQUFjLEVEcWI0QyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNwYjVFLGFBQWEsRURvYjZDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztDQUUvRDs7QUF4Q2pCLEFBdUNvQixZQXZDUixDQWlCUixLQUFLLENBRUQsSUFBSSxBQWlCQyxNQUFNLENBQ0gsZUFBZSxDQUVYLEdBQUcsQ0FBQTtFQUFFLGNBQWMsRUFBRSxhQUFVLENBQUksU0FBTTtFQUFJLE1BQU0sRUFBRSxhQUFVLENBQUksU0FBTTtDQUFPOztBQU1wRyxBQUFBLFlBQVksQ0FBQTtFQUNSLGFBQWEsRUFBRSxLQUFNO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRyxRQUFRLEVBQUUsUUFBUztDQTZDdEU7O0FBOUNELEFBRUksWUFGUSxDQUVSLFFBQVEsQ0FBQTtFQUNrQixRQUFRLEVBQUUsUUFBUztFQUFFLEtBQUssRUFBRSxNQUFPO0NBQzVEOztBQUpMLEFBS0ksWUFMUSxDQUtSLE9BQU8sQ0FBQTtFQUNILEtBQUssRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLGVBQWdCO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxVQUFVLEVBQUUsSUFBSztFQUFHLE9BQU8sRUFBRSxDQUFFO0VBQ2xHLFFBQVEsRUFBRSxRQUFTO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxLQUFLLEVBQUUsQ0FBRTtDQUlqRDs7QUFYTCxBQVNZLFlBVEEsQ0FLUixPQUFPLEFBR0YsS0FBSyxDQUNGLEVBQUUsRUFUZCxBQVNlLFlBVEgsQ0FLUixPQUFPLEFBR0YsS0FBSyxDQUNDLEVBQUUsQ0FBQTtFQUFFLFNBQVMsRUFBRSxJQUFLO0NBQUs7O0FBVHhDLEFBWWUsWUFaSCxDQVlSLEtBQUssQUFBQSxNQUFNLEFBQUEsTUFBTSxDQUFBO0VBQUUsVUFBVSxFQUFFLE9BQVE7Q0FBSTs7QUFaL0MsQUFhSSxZQWJRLENBYVIsU0FBUyxDQUFBO0VBQ04sVUFBVSxFQUFDLEtBQU07RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBUTtDQUUzRjs7QUFoQkwsQUFlUSxZQWZJLENBYVIsU0FBUyxDQUVMLEtBQUssQ0FBQTtFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUk7O0FBZm5DLEFBaUJJLFlBakJRLENBaUJSLGdCQUFnQixDQUFBO0VBQ1osUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLGFBQWEsRUFBRSxLQUFNO0NBMkIxRDs7QUE3Q0wsQUFpQkksWUFqQlEsQ0FpQlIsZ0JBQWdCLEFBRVgsYUFBYSxDQUFBO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFHLFVBQVUsRUFBRSxLQUFNO0NBQUc7O0FBbkJ6RixBQW9CUSxZQXBCSSxDQWlCUixnQkFBZ0IsQ0FHWixZQUFZLENBQUE7RUFDUixRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxJQUFLO0VDM2EzQyxrQkFBa0IsRUQyYThDLFVBQVU7RUMxYTFFLGVBQWUsRUQwYWlELFVBQVU7RUN6YTFFLFVBQVUsRUR5YXNELFVBQVU7Q0FTckU7O0FBOUJULEFBc0JZLFlBdEJBLENBaUJSLGdCQUFnQixDQUdaLFlBQVksQ0FFUixHQUFHLENBQUE7RUFBSSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxDQUFFO0NBQUc7O0FBdEJ0RCxBQXVCWSxZQXZCQSxDQWlCUixnQkFBZ0IsQ0FHWixZQUFZLENBR1IsT0FBTyxDQUFBO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxLQUFLLEVBQUUsS0FBTTtFQ2pjbkQsVUFBVSxFRGljOEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7RUNoY3ZGLGtCQUFrQixFRGdjc0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7RUMvYnZGLGVBQWUsRUQrYnlELENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO0VDOWJ2RixjQUFjLEVEOGIwRCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtFQzdidkYsYUFBYSxFRDZiMkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Q0FBSTs7QUF2Qi9GLEFBd0JtQixZQXhCUCxDQWlCUixnQkFBZ0IsQ0FHWixZQUFZLENBSVIsT0FBTyxBQUFBLE9BQU8sQ0FBQTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLENBQUU7RUFBRSxLQUFLLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUUsSUFBSSxFQUFFLENBQUU7RUFBRSxnQkFBZ0IsRUFBRSxPQUFRO0VBQUcsT0FBTyxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLENBQUU7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQ3ZkeEwsVUFBVSxFRHVkb00sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDdGRoTyxrQkFBa0IsRURzZDRMLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3JkaE8sZUFBZSxFRHFkK0wsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDcGRoTyxjQUFjLEVEb2RnTSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUNuZGhPLGFBQWEsRURtZGlNLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztDQUFJOztBQXhCeE8sQUEwQnVCLFlBMUJYLENBaUJSLGdCQUFnQixDQUdaLFlBQVksQUFLUCxNQUFNLENBQ0gsT0FBTyxBQUFBLE9BQU8sQ0FBQTtFQUNWLE9BQU8sRUFBQyxDQUFFO0VDMWQxQixVQUFVLEVEMGRzQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUN6ZGxFLGtCQUFrQixFRHlkOEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0VDeGRsRSxlQUFlLEVEd2RpQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7RUN2ZGxFLGNBQWMsRUR1ZGtDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSztFQ3RkbEUsYUFBYSxFRHNkbUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0NBQ3JEOztBQTVCakIsQUErQlEsWUEvQkksQ0FpQlIsZ0JBQWdCLENBY1osWUFBWSxDQUFBO0VBQ1IsUUFBUSxFQUFFLFFBQVM7RUFBRSxHQUFHLEVBQUUsTUFBTztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsT0FBUTtFQUFFLGdCQUFnQixFQUFFLE9BQVE7RUFBRSxpQkFBaUIsRUFBRSxTQUFVO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsV0FBWTtFQUFDLE9BQU8sRUFBRSxDQUFFO0VBQUUsT0FBTyxFQUFFLENBQUU7Q0FDeFA7O0FBakNULEFBa0NRLFlBbENJLENBaUJSLGdCQUFnQixDQWlCWixXQUFXLENBQUE7RUFBQyxNQUFNLEVBQUMsSUFBSztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFPLENBQXdDLHdDQUFDLENBQUMsU0FBUztFQUFFLElBQUksRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxtQkFBbUIsRUFBRSxNQUFPO0NBQUc7O0FBbEMzTixBQW1DUSxZQW5DSSxDQWlCUixnQkFBZ0IsQ0FrQlosV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF5Qyx5Q0FBQyxDQUFDLFNBQVM7RUFBRSxJQUFJLEVBQUUsS0FBTTtFQUFFLG1CQUFtQixFQUFFLE1BQU87Q0FBRzs7QUFuQ25NLEFBb0NRLFlBcENJLENBaUJSLGdCQUFnQixDQW1CWixlQUFlLEFBQ1YsV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF1Qyx1Q0FBQyxDQUFDLFNBQVM7RUFBRSxJQUFJLEVBQUUsS0FBTTtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUc7O0FBckNqUCxBQW9DUSxZQXBDSSxDQWlCUixnQkFBZ0IsQ0FtQlosZUFBZSxBQUVWLFdBQVcsQ0FBQTtFQUFDLE1BQU0sRUFBQyxJQUFLO0VBQUUsU0FBUyxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBd0Msd0NBQUMsQ0FBQyxTQUFTO0VBQUUsSUFBSSxFQUFFLEtBQU07RUFBRSxtQkFBbUIsRUFBRSxNQUFPO0VBQUUsTUFBTSxFQUFFLE9BQVE7Q0FBRzs7QUF0Q3pOLEFBd0NRLFlBeENJLENBaUJSLGdCQUFnQixDQXVCWixRQUFRLENBQUE7RUFDSixLQUFLLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxLQUFNO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsSUFBSSxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsZUFBZ0I7Q0FHM0g7O0FBNUNULEFBMENZLFlBMUNBLENBaUJSLGdCQUFnQixDQXVCWixRQUFRLENBRUosRUFBRSxDQUFBO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxRQUFRLEVBQUUsTUFBTztFQUFFLFVBQVUsRUFBRSxJQUFLO0NBQUc7O0FBMUNuSSxBQTJDWSxZQTNDQSxDQWlCUixnQkFBZ0IsQ0F1QlosUUFBUSxDQUdKLENBQUMsQ0FBQTtFQUFFLFdBQVcsRUFBRSxzQkFBdUI7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsTUFBTztFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FBRzs7QUFJL0ssQUFDSSxXQURPLENBQ1AsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLHdDQUFHO0VBQTZELE9BQU8sRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLGFBQWEsRUFBRSxLQUFNO0NBQUc7O0FBRDFNLEFBT0ksV0FQTyxDQU9QLFFBQVEsQ0FBQTtFQUNKLFFBQVEsRUFBRSxRQUFTO0VBQUUsVUFBVSxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsS0FBTTtFQUFFLElBQUksRUFBRSxJQUFLO0VBSWxFLGlDQUFpQztDQUNwQzs7QUFiTCxBQVN3QixXQVRiLENBT1AsUUFBUSxDQUVKLE9BQU8sQUFBQSxNQUFNLENBQUMsRUFBRSxBQUFBLE1BQU0sQ0FBQTtFQUFFLEtBQUssRUFBQyxLQUFNO0VBQUUsSUFBSSxFQUFFLENBQUU7Q0FBSTs7QUFUMUQsQUFVd0IsV0FWYixDQU9QLFFBQVEsQ0FHSixPQUFPLEFBQUEsTUFBTSxDQUFDLEVBQUUsQUFBQSxNQUFNLENBQUE7RUFBRSxLQUFLLEVBQUMsS0FBTTtFQUFFLElBQUksRUFBRSxDQUFFO0NBQUk7O0FBVjFELEFBV3VCLFdBWFosQ0FPUCxRQUFRLENBSUosT0FBTyxBQUFBLE1BQU0sQ0FBQyxDQUFDLEFBQUEsS0FBSyxDQUFBO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsR0FBSTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLENBQUU7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQUUsUUFBUSxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsS0FBTTtDQUFHOztBQVh2TCxBQWNJLFdBZE8sQ0FjUCxPQUFPLENBQUE7RUFBRSxVQUFVLEVBQUUsS0FBTTtFQUFFLGFBQWEsRUFBRSxJQUFLO0NBQUc7O0FBRXhELEFBQUEsS0FBSyxDQUFBO0VBQ0QsY0FBYyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsVUFBVztDQTBCbEQ7O0FBM0JELEFBRUksS0FGQyxDQUVELFFBQVEsQ0FBQTtFQUFFLEtBQUssRUFBRSxNQUFPO0NBQUk7O0FBRmhDLEFBR0ksS0FIQyxDQUdELElBQUksQ0FBQTtFQUNBLEtBQUssRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLFlBQVksRUFBRSxJQUFLO0VBQUUsYUFBYSxFQUFFLElBQUs7Q0FzQjlGOztBQTFCTCxBQUdJLEtBSEMsQ0FHRCxJQUFJLEFBRUMsVUFBVyxDQUFBLElBQUksRUFBQztFQUFFLFlBQVksRUFBRSxDQUFFO0NBQUk7O0FBTC9DLEFBTVEsS0FOSCxDQUdELElBQUksQ0FHQSxlQUFlLENBQUE7RUFDWCxLQUFLLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLE9BQVE7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE1BQU0sRUFBRSxpQkFBa0I7RUFBRSxZQUFZLEVBQUUsR0FBSTtFQUFFLFVBQVUsRUFBRSxVQUFXO0NBRXBKOztBQVRULEFBUVksS0FSUCxDQUdELElBQUksQ0FHQSxlQUFlLENBRVgsR0FBRyxDQUFBO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxHQUFHLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLENBQUU7RUFBRSxJQUFJLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxJQUFLO0NBQUk7O0FBUmpHLEFBV1ksS0FYUCxDQUdELElBQUksQ0FPQSxRQUFRLENBQ0osTUFBTSxDQUFBO0VBQ0YsUUFBUSxFQUFFLFFBQVM7Q0FJdEI7O0FBaEJiLEFBYWdCLEtBYlgsQ0FHRCxJQUFJLENBT0EsUUFBUSxDQUNKLE1BQU0sQ0FFRixFQUFFLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLE9BQU8sRUFBRSxhQUFjO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsUUFBUSxFQUFFLE1BQU87Q0FBRzs7QUFibE0sQUFjZ0IsS0FkWCxDQUdELElBQUksQ0FPQSxRQUFRLENBQ0osTUFBTSxDQUdGLEtBQUssQ0FBQTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLHNCQUF1QjtFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxhQUFjO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0FBSTs7QUFkdkwsQUFXWSxLQVhQLENBR0QsSUFBSSxDQU9BLFFBQVEsQ0FDSixNQUFNLEFBSUQsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEVBQUc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLENBQUU7RUFBRSxJQUFJLEVBQUUsQ0FBRTtDQUFHOztBQWZySixBQWlCWSxLQWpCUCxDQUdELElBQUksQ0FPQSxRQUFRLENBT0osQ0FBQyxDQUFBO0VBQ0csT0FBTyxFQUFFLGdCQUFpQjtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLHFCQUFzQjtFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLEtBQU07RUFDbkwsVUFBVSxFQUFFLE9BQVE7Q0FDdkI7O0FBcEJiLEFBcUJZLEtBckJQLENBR0QsSUFBSSxDQU9BLFFBQVEsQ0FXSixJQUFJLENBQUE7RUFDQSxPQUFPLEVBQUUsZUFBZ0I7RUFBRSxVQUFVLEVBQUUsVUFBVztDQUVyRDs7QUF4QmIsQUFxQlksS0FyQlAsQ0FHRCxJQUFJLENBT0EsUUFBUSxDQVdKLElBQUksQUFFQyxNQUFNLENBQUE7RUFBRSxJQUFJLEVBQUMsSUFBSztDQUFJOztBQUt2QyxBQUFBLFdBQVcsQ0FBQTtFQUNQLGNBQWMsRUFBRSxLQUFNO0NBbUN6Qjs7QUFwQ0QsQUFFSSxXQUZPLENBRVAsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBRzs7QUFGL0IsQUFHSSxXQUhPLENBR1AsTUFBTSxDQUFBO0VBQ0YsYUFBYSxFQUFFLElBQUs7Q0FhdkI7O0FBakJMLEFBTVEsV0FORyxDQUdQLE1BQU0sQ0FHRixLQUFLLENBQUE7RUFDRCxLQUFLLEVBQUUsS0FBTTtDQUtoQjs7QUFaVCxBQVFZLFdBUkQsQ0FHUCxNQUFNLENBR0YsS0FBSyxDQUVELEVBQUUsQ0FBQTtFQUNFLEtBQUssRUFBRSxPQUFRO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLGNBQWMsRUFBRSxTQUFVO0VBQUUsUUFBUSxFQUFFLFFBQVM7Q0FFbks7O0FBWGIsQUFRWSxXQVJELENBR1AsTUFBTSxDQUdGLEtBQUssQ0FFRCxFQUFFLEFBRUcsTUFBTSxDQUFBO0VBQUUsUUFBUSxFQUFDLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFFLE9BQU8sRUFBRSxFQUFHO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsR0FBSTtFQUFFLFVBQVUsRUFBQyxPQUFRO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBQyxJQUFJLEVBQUUsR0FBSTtDQUFJOztBQVYxSixBQWFRLFdBYkcsQ0FHUCxNQUFNLENBVUYsTUFBTSxDQUFBO0VBQ0YsS0FBSyxFQUFFLEtBQU07Q0FFaEI7O0FBaEJULEFBZVksV0FmRCxDQUdQLE1BQU0sQ0FVRixNQUFNLENBRUYsQ0FBQyxDQUFBO0VBQUUsV0FBVyxFQUFFLHFCQUFzQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7Q0FBSTs7QUFmNUYsQUFtQlEsV0FuQkcsQ0FrQlAsSUFBSSxDQUNBLElBQUksQ0FBQTtFQUNBLEtBQUssRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLFlBQVksRUFBRSxJQUFLO0VBQUUsYUFBYSxFQUFFLElBQUs7Q0FjOUY7O0FBbENULEFBbUJRLFdBbkJHLENBa0JQLElBQUksQ0FDQSxJQUFJLEFBRUMsVUFBVyxDQUFBLElBQUksRUFBQztFQUFFLFlBQVksRUFBRSxDQUFFO0NBQUk7O0FBckJuRCxBQXNCWSxXQXRCRCxDQWtCUCxJQUFJLENBQ0EsSUFBSSxDQUdBLGVBQWUsQ0FBQTtFQUNYLEtBQUssRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsTUFBTSxFQUFFLGlCQUFrQjtFQUFFLFlBQVksRUFBRSxHQUFJO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0FFcEo7O0FBekJiLEFBd0JnQixXQXhCTCxDQWtCUCxJQUFJLENBQ0EsSUFBSSxDQUdBLGVBQWUsQ0FFWCxHQUFHLENBQUE7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLEdBQUcsRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFFLENBQUU7RUFBRSxLQUFLLEVBQUUsQ0FBRTtFQUFFLElBQUksRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFFLElBQUs7Q0FBSTs7QUF4QnJHLEFBMkJnQixXQTNCTCxDQWtCUCxJQUFJLENBQ0EsSUFBSSxDQU9BLFFBQVEsQ0FDSixNQUFNLENBQUE7RUFDRixRQUFRLEVBQUUsUUFBUztDQUd0Qjs7QUEvQmpCLEFBNkJvQixXQTdCVCxDQWtCUCxJQUFJLENBQ0EsSUFBSSxDQU9BLFFBQVEsQ0FDSixNQUFNLENBRUYsRUFBRSxDQUFBO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsR0FBSTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsWUFBYTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxRQUFRLEVBQUUsTUFBTztDQUFHOztBQTdCM0ssQUE4Qm9CLFdBOUJULENBa0JQLElBQUksQ0FDQSxJQUFJLENBT0EsUUFBUSxDQUNKLE1BQU0sQ0FHRixLQUFLLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxzQkFBdUI7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsV0FBWTtFQUFFLFVBQVUsRUFBRSxVQUFXO0NBQUk7O0FBOUJ6TCxBQWdDZ0IsV0FoQ0wsQ0FrQlAsSUFBSSxDQUNBLElBQUksQ0FPQSxRQUFRLENBTUosQ0FBQyxDQUFBO0VBQUUsT0FBTyxFQUFFLGVBQWdCO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUscUJBQXNCO0VBQUcsUUFBUSxFQUFFLE1BQU87RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFHOztBQUtwTSxBQUFBLE9BQU8sQUFDRixNQUFNLENBQUE7RUFDSCxLQUFLLEVBQUUsSUFBSztDQVlmOztBQWRMLEFBR1EsT0FIRCxBQUNGLE1BQU0sQ0FFSCxDQUFDLENBQUE7RUFDRyxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsUUFBUSxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsSUFBSztDQUt2STs7QUFUVCxBQUtZLE9BTEwsQUFDRixNQUFNLENBRUgsQ0FBQyxDQUVHLElBQUksQ0FBQTtFQUNBLFdBQVcsRUFBRSxtQkFBb0I7RUFBRSxZQUFZLEVBQUUsSUFBSztFQUFFLFFBQVEsRUFBRSxRQUFTO0NBRTlFOztBQVJiLEFBS1ksT0FMTCxBQUNGLE1BQU0sQ0FFSCxDQUFDLENBRUcsSUFBSSxBQUVDLE1BQU0sQ0FBQTtFQUFFLFFBQVEsRUFBQyxRQUFTO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLEtBQUssRUFBRSxHQUFJO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUMsSUFBSztFQUFFLEdBQUcsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLEtBQU07Q0FBSTs7QUFQbkosQUFVUSxPQVZELEFBQ0YsTUFBTSxDQVNILEVBQUUsRUFWVixBQVVXLE9BVkosQUFDRixNQUFNLENBU0EsRUFBRSxDQUFBO0VBQ0QsS0FBSyxFQUFFLElBQUs7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxLQUFNO0VBQUUsY0FBYyxFQUFFLFNBQVU7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUM3SixnSUFBZ0k7Q0FDbkk7O0FBYlQsQUFBQSxPQUFPLEFBZUYsS0FBSyxDQUFBO0VBQ0YsS0FBSyxFQUFFLE9BQVE7Q0FlbEI7O0FBL0JMLEFBaUJRLE9BakJELEFBZUYsS0FBSyxDQUVGLENBQUMsQ0FBQTtFQUNHLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxLQUFLLEVBQUUsT0FBUTtFQUFHLFFBQVEsRUFBRSxNQUFPO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FLeko7O0FBdkJULEFBbUJZLE9BbkJMLEFBZUYsS0FBSyxDQUVGLENBQUMsQ0FFRyxJQUFJLENBQUE7RUFDQSxXQUFXLEVBQUUsbUJBQW9CO0VBQUUsWUFBWSxFQUFFLElBQUs7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLEtBQUssRUFBRSxJQUFLO0NBRTVGOztBQXRCYixBQW1CWSxPQW5CTCxBQWVGLEtBQUssQ0FFRixDQUFDLENBRUcsSUFBSSxBQUVDLE1BQU0sQ0FBQTtFQUFFLFFBQVEsRUFBQyxRQUFTO0VBQUUsT0FBTyxFQUFFLEtBQU07RUFBRSxPQUFPLEVBQUUsRUFBRztFQUFFLEtBQUssRUFBRSxHQUFJO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUMsSUFBSztFQUFFLEdBQUcsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLEtBQU07Q0FBSTs7QUFyQm5KLEFBd0JRLE9BeEJELEFBZUYsS0FBSyxDQVNGLEVBQUUsQ0FBQTtFQUNFLEtBQUssRUFBRSxPQUFRO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLGNBQWMsRUFBRSxTQUFVO0VBQUUsUUFBUSxFQUFFLFFBQVM7Q0FFbks7O0FBM0JULEFBd0JRLE9BeEJELEFBZUYsS0FBSyxDQVNGLEVBQUUsQUFFRyxNQUFNLENBQUE7RUFBRSxRQUFRLEVBQUMsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLEVBQUc7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsVUFBVSxFQUFDLE9BQVE7RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFDLElBQUksRUFBRSxHQUFJO0NBQUk7O0FBMUJ0SixBQTRCUSxPQTVCRCxBQWVGLEtBQUssQ0FhRixLQUFLLENBQUE7RUFDRCxXQUFXLEVBQUUscUJBQXNCO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsQ0FBRTtFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUMsVUFBVSxFQUFFLEtBQU07Q0FDdks7O0FBOUJULEFBaUNRLE9BakNELEFBZ0NGLFFBQVEsQ0FDTCxFQUFFLENBQUE7RUFDRSxVQUFVLEVBQUUsSUFBSztDQUVwQjs7QUFwQ1QsQUFpQ1EsT0FqQ0QsQUFnQ0YsUUFBUSxDQUNMLEVBQUUsQUFFRyxNQUFNLENBQUE7RUFBRSxJQUFJLEVBQUMsQ0FBRTtDQUFJOztBQUloQyxBQUFBLFNBQVMsQ0FBQTtFQUNMLFVBQVUsRUFBRSxLQUFNO0NBaUJyQjs7QUFsQkQsQUFFSSxTQUZLLENBRUwsV0FBVyxDQUFBO0VBQ1AsVUFBVSxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsTUFBTztFQUFFLFdBQVcsRUFBRSxLQUFNO0VBQUUsY0FBYyxFQUFFLEtBQU07Q0FJdkY7O0FBUEwsQUFJUSxTQUpDLENBRUwsV0FBVyxDQUVQLFFBQVEsQ0FBQTtFQUFFLEtBQUssRUFBRSxNQUFPO0NBQUk7O0FBSnBDLEFBS1EsU0FMQyxDQUVMLFdBQVcsQ0FHUCxLQUFLLENBQUE7RUFBRSxVQUFVLEVBQUUsSUFBSztDQUFJOztBQUxwQyxBQUVJLFNBRkssQ0FFTCxXQUFXLEFBSU4sTUFBTSxDQUFBO0VBQUUsTUFBTSxFQUFDLEtBQU07Q0FBSTs7QUFObEMsQUFTUSxTQVRDLENBUUwsS0FBSyxDQUNELFFBQVEsQ0FBQTtFQUFFLEtBQUssRUFBRSxNQUFPO0NBQUk7O0FBVHBDLEFBVVEsU0FWQyxDQVFMLEtBQUssQ0FFRCxJQUFJLENBQUE7RUFDQSxLQUFLLEVBQUUsR0FBSTtFQUFFLFlBQVksRUFBQyxLQUFNO0NBRW5DOztBQWJULEFBVVEsU0FWQyxDQVFMLEtBQUssQ0FFRCxJQUFJLEFBRUMsVUFBVyxDQUFBLElBQUksRUFBQztFQUFFLFlBQVksRUFBRSxDQUFFO0NBQUk7O0FBWm5ELEFBY1EsU0FkQyxDQVFMLEtBQUssQ0FNRCxXQUFXLENBQUE7RUFBRSxVQUFVLEVBQUUsSUFBSztDQUFJOztBQWQxQyxBQUFBLFNBQVMsQUFpQkosUUFBUSxDQUFBO0VBQUMsVUFBVSxFQUFFLElBQUs7Q0FBRzs7QUFFbEMsQUFBQSxTQUFTLENBQUE7RUFDTCxVQUFVLEVBQW1DLG1DQUFDLENBQUMsU0FBUztFQUFFLG1CQUFtQixFQUFDLG1CQUFvQjtDQUNyRzs7QUFDRCxBQUFBLGNBQWMsQ0FBQTtFQUNWLFVBQVUsRUFBRSxLQUFNO0NBdUJyQjs7QUF4QkQsQUFFSSxjQUZVLENBRVYsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBSTs7QUFGaEMsQUFHSSxjQUhVLENBR1YsSUFBSSxDQUFBO0VBQ0EsS0FBSyxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxZQUFZLEVBQUUsSUFBSztFQUFFLGFBQWEsRUFBRSxJQUFLO0NBbUI5Rzs7QUF2QkwsQUFHSSxjQUhVLENBR1YsSUFBSSxBQUVDLFVBQVcsQ0FBQSxNQUFNLEVBQUM7RUFBRSxZQUFZLEVBQUUsQ0FBRTtDQUFJOztBQUxqRCxBQU1RLGNBTk0sQ0FHVixJQUFJLENBR0EsZUFBZSxDQUFBO0VBQ1gsS0FBSyxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsWUFBWSxFQUFFLEdBQUk7RUFBRSxVQUFVLEVBQUUsVUFBVztDQUVsRzs7QUFUVCxBQVFZLGNBUkUsQ0FHVixJQUFJLENBR0EsZUFBZSxDQUVYLEdBQUcsQ0FBQTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsR0FBRyxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsQ0FBRTtFQUFFLEtBQUssRUFBRSxDQUFFO0VBQUUsSUFBSSxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsSUFBSztDQUFJOztBQVJqRyxBQVdZLGNBWEUsQ0FHVixJQUFJLENBT0EsUUFBUSxDQUNKLE1BQU0sQ0FBQTtFQUNGLFFBQVEsRUFBRSxRQUFTO0VBQUUsYUFBYSxFQUFFLElBQUs7Q0FJNUM7O0FBaEJiLEFBYWdCLGNBYkYsQ0FHVixJQUFJLENBT0EsUUFBUSxDQUNKLE1BQU0sQ0FFRixFQUFFLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxhQUFjO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsUUFBUSxFQUFFLE1BQU87Q0FBSTs7QUFibE0sQUFjZ0IsY0FkRixDQUdWLElBQUksQ0FPQSxRQUFRLENBQ0osTUFBTSxDQUdGLEtBQUssQ0FBQTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLHNCQUF1QjtFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxhQUFjO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0FBSTs7QUFkdkwsQUFXWSxjQVhFLENBR1YsSUFBSSxDQU9BLFFBQVEsQ0FDSixNQUFNLEFBSUQsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFDLEVBQUc7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLEdBQUk7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLEtBQU07RUFBRSxJQUFJLEVBQUUsQ0FBRTtDQUFHOztBQWZ6SixBQWlCWSxjQWpCRSxDQUdWLElBQUksQ0FPQSxRQUFRLENBT0osQ0FBQyxDQUFBO0VBQUUsT0FBTyxFQUFFLGdCQUFpQjtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLHFCQUFzQjtFQUFFLGFBQWEsRUFBRSxDQUFFO0NBQUc7O0FBakJqTCxBQWtCWSxjQWxCRSxDQUdWLElBQUksQ0FPQSxRQUFRLENBUUosSUFBSSxDQUFBO0VBQ0EsT0FBTyxFQUFFLGVBQWdCO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0FFckQ7O0FBckJiLEFBa0JZLGNBbEJFLENBR1YsSUFBSSxDQU9BLFFBQVEsQ0FRSixJQUFJLEFBRUMsTUFBTSxDQUFBO0VBQUUsSUFBSSxFQUFDLElBQUs7Q0FBSTs7QUFLdkMsQUFBQSxXQUFXLENBQUE7RUFDUCxRQUFRLEVBQUUsUUFBUztFQUFFLFVBQVUsRUFBRSxNQUFPO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsVUFBVztDQWtCNUY7O0FBbkJELEFBRUksV0FGTyxDQUVQLENBQUMsQ0FBQTtFQUNHLFFBQVEsRUFBRSxRQUFTO0VBQUUsT0FBTyxFQUFFLFlBQWE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxPQUFRO0VBQUUsTUFBTSxFQUFFLE1BQU87RUFBRSxjQUFjLEVBQUUsTUFBTztFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLGNBQWMsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLE1BQU87Q0FlL047O0FBbEJMLEFBRUksV0FGTyxDQUVQLENBQUMsQUFFSSxNQUFNLENBQUE7RUFBRSxPQUFPLEVBQUMsRUFBRztFQUFDLFFBQVEsRUFBRSxRQUFTO0VBQUMsS0FBSyxFQUFDLEVBQUc7RUFBQyxNQUFNLEVBQUMsR0FBSTtFQUFDLElBQUksRUFBQyxHQUFJO0VBQUMsTUFBTSxFQUFDLEdBQUk7RUN6cEJ4RixVQUFVLEVEeXBCbUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDeHBCOUgsa0JBQWtCLEVEd3BCMkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDdnBCOUgsZUFBZSxFRHVwQjhGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQ3RwQjlILGNBQWMsRURzcEIrRixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUNycEI5SCxhQUFhLEVEcXBCZ0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VBQUcsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsMEZBQWU7Q0FBNEU7O0FBSjFQLEFBRUksV0FGTyxDQUVQLENBQUMsQUFHSSxPQUFPLENBQUE7RUFDSixTQUFTLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBQyxPQUFRO0VBQUUsY0FBYyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsR0FBSTtDQUVoRjs7QUFSVCxBQUVJLFdBRk8sQ0FFUCxDQUFDLEFBR0ksT0FBTyxBQUVILE1BQU0sQ0FBQTtFQUFFLFVBQVUsRUFBRSwwRkFBZTtDQUEyRTs7QUFQM0gsQUFFSSxXQUZPLENBRVAsQ0FBQyxBQU9JLElBQUksQ0FBQztFQUNGLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsMENBQUcsQ0FBd0MsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNO0VBQXlCLE1BQU0sRUFBRSxNQUFPO0VBQUUsS0FBSyxFQUFFLEtBQU07Q0FPbks7O0FBakJULEFBRUksV0FGTyxDQUVQLENBQUMsQUFPSSxJQUFJLEFBRUEsTUFBTSxDQUFDO0VBQ0osbUJBQW1CLEVBQUUsdUJBQXdCO0NBQ2hEOztBQWJiLEFBRUksV0FGTyxDQUVQLENBQUMsQUFPSSxJQUFJLEFBS0EsTUFBTSxDQUFBO0VBQUUsT0FBTyxFQUFFLElBQUs7Q0FBSTs7QUFkdkMsQUFFSSxXQUZPLENBRVAsQ0FBQyxBQU9JLElBQUksQUFNQSxLQUFLLENBQUM7RUM3cEJmLFNBQVMsRUQ2cEIwQixjQUFNO0VDNXBCekMsaUJBQWlCLEVENHBCa0IsY0FBTTtFQzNwQnpDLGNBQWMsRUQycEJxQixjQUFNO0VDMXBCekMsYUFBYSxFRDBwQnNCLGNBQU07RUN6cEJ6QyxZQUFZLEVEeXBCdUIsY0FBTTtFQUFXLEtBQUssRUFBRSxJQUFLO0NBQUc7O0FBZnZFLEFBRUksV0FGTyxDQUVQLENBQUMsQUFPSSxJQUFJLEFBT0EsU0FBUyxDQUFBO0VBQUUsVUFBVSxFQUFFLDBDQUFHLENBQXdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTTtDQUFJOztBQUl4RyxBQUFBLFlBQVksQ0FBQTtFQUNSLFVBQVUsRUFBRSxNQUFPO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLGNBQWMsRUFBRSxJQUFLO0NBOEUvRTs7QUEvRUQsQUFFSSxZQUZRLENBRVIsUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBSTs7QUFGaEMsQUFHSSxZQUhRLENBR1IsS0FBSyxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7Q0FBSTs7QUFIMUIsQUFJSSxZQUpRLENBSVIsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7Q0FBSTs7QUFKM0IsQUFLSSxZQUxRLENBS1IsUUFBUSxDQUFBO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FBSTs7QUFMbkMsQUFNSSxZQU5RLENBTVIsTUFBTSxDQUFBO0VBQ0YsT0FBTyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsVUFBVztFQUMrRCxhQUFhLEVBQUUsSUFBSztDQUcvSDs7QUFYTCxBQVFRLFlBUkksQ0FNUixNQUFNLENBRUYsSUFBSSxDQUFBO0VBQUUsV0FBVyxFQUFFLG1CQUFvQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtDQUFJOztBQVJqSCxBQVNRLFlBVEksQ0FNUixNQUFNLENBR0YsRUFBRSxDQUFBO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLGNBQWMsRUFBRSxTQUFVO0NBQUk7O0FBVDFJLEFBVVEsWUFWSSxDQU1SLE1BQU0sQ0FJRixRQUFRLENBQUE7RUFBRSxXQUFXLEVBQUUsc0JBQXVCO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxVQUFVLEVBQUUsTUFBTztFQUFFLE1BQU0sRUFBRSxhQUFjO0NBQUc7O0FBVnJMLEFBWUksWUFaUSxDQVlSLFFBQVEsQ0FBQTtFQUNILFVBQVUsRUFBRSxVQUFXO0NBcUMzQjs7QUFsREwsQUFjUSxZQWRJLENBWVIsUUFBUSxDQUVKLENBQUMsQ0FBQTtFQUNHLFdBQVcsRUFBRSxxQkFBc0I7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsUUFBUSxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsS0FBTTtFQUNoSCxVQUFVLEVBQUUsT0FBUTtDQUV2Qjs7QUFsQlQsQUFpQlksWUFqQkEsQ0FZUixRQUFRLENBRUosQ0FBQyxDQUdHLENBQUMsQ0FBQTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxLQUFLLEVBQUUsT0FBUTtDQUFJOztBQWpCcEUsQUFtQlEsWUFuQkksQ0FZUixRQUFRLENBT0osRUFBRSxDQUFBO0VBQ0UsVUFBVSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsQ0FBRTtFQUFFLE1BQU0sRUFBRSxDQUFFO0VBQUUsYUFBYSxFQUFFLElBQUs7RUFBQyxXQUFXLEVBQUUscUJBQXNCO0NBS3ZHOztBQXpCVCxBQXFCWSxZQXJCQSxDQVlSLFFBQVEsQ0FPSixFQUFFLENBRUUsRUFBRSxDQUFBO0VBQ0UsWUFBWSxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsR0FBSTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsYUFBYSxFQUFFLElBQUs7Q0FFbEo7O0FBeEJiLEFBcUJZLFlBckJBLENBWVIsUUFBUSxDQU9KLEVBQUUsQ0FFRSxFQUFFLEFBRUcsT0FBTyxDQUFBO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxLQUFLLEVBQUUsT0FBUTtFQUFFLFFBQVEsRUFBRSxRQUFTO0VBQUUsSUFBSSxFQUFFLENBQUU7Q0FBSTs7QUF2QjlGLEFBMEJRLFlBMUJJLENBWVIsUUFBUSxDQWNKLEVBQUUsQ0FBQTtFQUNFLFVBQVUsRUFBRSxPQUFRO0VBQUUsYUFBYSxFQUFFLElBQUs7RUFBQyxXQUFXLEVBQUUscUJBQXNCO0NBRWpGOztBQTdCVCxBQTRCWSxZQTVCQSxDQVlSLFFBQVEsQ0FjSixFQUFFLENBRUUsRUFBRSxDQUFBO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLGNBQWMsRUFBRSxLQUFNO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsR0FBSTtFQUFDLFlBQVksRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRyxhQUFhLEVBQUUsSUFBSztDQUFJOztBQTVCaEwsQUE4QlEsWUE5QkksQ0FZUixRQUFRLENBa0JKLGFBQWEsQ0FBQTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxLQUFLLEVBQUUsT0FBUTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtDQUFJOztBQTlCMUksQUErQlEsWUEvQkksQ0FZUixRQUFRLENBbUJKLFFBQVEsQ0FBQTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsTUFBTztDQUFHOztBQS9CMUUsQUFpQ1ksWUFqQ0EsQ0FZUixRQUFRLENBb0JKLEtBQUssQ0FDRCxDQUFDLENBQUE7RUFDRyxNQUFNLEVBQUUsQ0FBRTtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7Q0FFbkQ7O0FBcENiLEFBbUNnQixZQW5DSixDQVlSLFFBQVEsQ0FvQkosS0FBSyxDQUNELENBQUMsQ0FFRyxJQUFJLENBQUE7RUFBRSxXQUFXLEVBQUUsa0JBQW1CO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsWUFBWSxFQUFFLElBQUs7Q0FBRzs7QUFuQ3JJLEFBdUM2QixZQXZDakIsQ0FZUixRQUFRLENBMEJKLGNBQWMsQ0FDVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLEVBQVk7RUFDZCxLQUFLLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsT0FBTyxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLFdBQVcsRUFBRSxtQkFBb0I7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsV0FBWTtFQUFFLE1BQU0sRUFBQyxjQUFlO0NBS25OOztBQTdDYixBQXVDNkIsWUF2Q2pCLENBWVIsUUFBUSxDQTBCSixjQUFjLENBQ1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxDQUVELDJCQUEyQixDQUFDO0VBQUcsS0FBSyxFQUFFLElBQUs7Q0FBSTs7QUF6Q2hFLEFBdUM2QixZQXZDakIsQ0FZUixRQUFRLENBMEJKLGNBQWMsQ0FDVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLENBR0Qsa0JBQWtCLENBQUM7RUFBRyxLQUFLLEVBQUUsSUFBSztDQUFJOztBQTFDdkQsQUF1QzZCLFlBdkNqQixDQVlSLFFBQVEsQ0EwQkosY0FBYyxDQUNWLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsQ0FJRCxzQkFBc0IsQ0FBQztFQUFHLEtBQUssRUFBRSxJQUFLO0NBQUk7O0FBM0MzRCxBQXVDNkIsWUF2Q2pCLENBWVIsUUFBUSxDQTBCSixjQUFjLENBQ1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxDQUtELGlCQUFpQixDQUFDO0VBQUcsS0FBSyxFQUFFLElBQUs7Q0FBSTs7QUE1Q3RELEFBOEMrQixZQTlDbkIsQ0FZUixRQUFRLENBMEJKLGNBQWMsQ0FRVixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWM7RUFDaEIsVUFBVSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQXVDLHNDQUFDLENBQUEsU0FBUyxDQUFDLE1BQU07RUFBRSxXQUFXLEVBQUUsS0FBTTtFQUFFLE1BQU0sRUFBQyxJQUFLO0NBQzNIOztBQWhEYixBQUFBLFlBQVksQUFtRFAsVUFBVSxDQUFBO0VBQUUsVUFBVSxFQUFFLE1BQU87Q0FBSTs7QUFuRHhDLEFBQUEsWUFBWSxBQW9EUCxXQUFXLENBQUE7RUFBRSxVQUFVLEVBQUUsTUFBTztDQUFJOztBQXBEekMsQUFzRFEsWUF0REksQUFxRFAsT0FBTyxDQUNKLE9BQU8sQ0FBQTtFQUNILFVBQVUsRUFBRSxNQUFPO0NBQ3RCOztBQXhEVCxBQTBEWSxZQTFEQSxBQXFEUCxPQUFPLENBSUosUUFBUSxDQUNKLENBQUMsQ0FBQTtFQUFFLFFBQVEsRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLEtBQU07Q0FBSTs7QUExRHZELEFBNERnQixZQTVESixBQXFEUCxPQUFPLENBSUosUUFBUSxDQUVKLEtBQUssQ0FDRCxPQUFPLENBQUE7RUFDSCxPQUFPLEVBQUUsYUFBYztFQUFFLFVBQVUsRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FDaEU7O0FBOURqQixBQW9FWSxZQXBFQSxBQWtFUCxPQUFPLENBQ0osUUFBUSxDQUNKLENBQUMsQ0FBQTtFQUFFLFFBQVEsRUFBRSxLQUFNO0VBQUUsVUFBVSxFQUFFLEtBQU07Q0FBSTs7QUFwRXZELEFBeUVZLFlBekVBLEFBdUVQLE9BQU8sQ0FDSixNQUFNLENBQ0YsRUFBRSxDQUFBO0VBQUUsUUFBUSxFQUFFLE1BQU87RUFBRSxVQUFVLEVBQUUsS0FBTTtDQUFJOztBQXpFekQsQUE0RVksWUE1RUEsQUF1RVAsT0FBTyxDQUlKLFFBQVEsQ0FDSixDQUFDLENBQUE7RUFBRSxRQUFRLEVBQUUsTUFBTztFQUFFLFVBQVUsRUFBRSxLQUFNO0NBQUk7O0FBSXhELEFBQUEsZUFBZSxDQUFBO0VBQ1gsUUFBUSxFQUFFLFFBQVM7Q0FVdEI7O0FBWEQsQUFFSSxlQUZXLENBRVgsWUFBWSxDQUFBO0VBQ1IsUUFBUSxFQUFFLFFBQVM7RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsT0FBUTtFQUFFLGdCQUFnQixFQUFFLE9BQVE7RUFBRSxpQkFBaUIsRUFBRSxTQUFVO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsV0FBWTtFQUFDLE9BQU8sRUFBRSxDQUFFO0VBQUUsT0FBTyxFQUFFLENBQUU7Q0FDMVA7O0FBSkwsQUFLSSxlQUxXLENBS1gsV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF3Qyx3Q0FBQyxDQUFDLFNBQVM7RUFBRSxLQUFLLEVBQUUsS0FBTTtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztDQUFHOztBQUx4TixBQU1JLGVBTlcsQ0FNWCxXQUFXLENBQUE7RUFBQyxNQUFNLEVBQUMsSUFBSztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFPLENBQXlDLHlDQUFDLENBQUMsU0FBUztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztDQUFHOztBQU4vTCxBQU9JLGVBUFcsQ0FPWCxlQUFlLEFBQ1YsV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF1Qyx1Q0FBQyxDQUFDLFNBQVM7RUFBRyxLQUFLLEVBQUUsS0FBTTtFQUFDLFVBQVUsRUFBRSxVQUFXO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUc7O0FBUjlPLEFBT0ksZUFQVyxDQU9YLGVBQWUsQUFFVixXQUFXLENBQUE7RUFBQyxNQUFNLEVBQUMsSUFBSztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUMsS0FBSyxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxPQUFPLENBQXdDLHdDQUFDLENBQUMsU0FBUztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUc7O0FBR3JOLEFBQUEsSUFBSSxDQUFBO0VBQ0EsS0FBSyxFQUFFLE1BQU87RUFBRSxNQUFNLEVBQUUsS0FBTTtDQUVqQzs7QUFIRCxBQUVJLElBRkEsQ0FFQSxNQUFNLENBQUE7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0NBQUk7O0FBRTNDLEFBQ0ksS0FEQyxDQUNELEVBQUUsQ0FBQTtFQUFFLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxLQUFLLEVBQUUsT0FBUTtFQUFFLGNBQWMsRUFBRSxTQUFVO0VBQUUsVUFBVSxFQUFFLE1BQU87Q0FBRzs7QUFEM0ssQUFFSSxLQUZDLENBRUQsSUFBSSxDQUFBO0VBQ0EsYUFBYSxFQUFFLElBQUs7Q0FvQnZCOztBQXZCTCxBQUlRLEtBSkgsQ0FFRCxJQUFJLENBRUEsS0FBSyxFQUpiLEFBSWUsS0FKVixDQUVELElBQUksQ0FFTyxRQUFRLENBQUE7RUFDWCxNQUFNLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFBRSxDQUFFO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsU0FBVTtFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUcsV0FBVyxFQUFFLG1CQUFvQjtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztDQUtqTDs7QUFWVCxBQUlRLEtBSkgsQ0FFRCxJQUFJLENBRUEsS0FBSyxBQUVBLDJCQUEyQixFQU54QyxBQUllLEtBSlYsQ0FFRCxJQUFJLENBRU8sUUFBUSxBQUVWLDJCQUEyQixDQUFDO0VBQUcsS0FBSyxFQUFFLE9BQVE7Q0FBSTs7QUFOL0QsQUFJUSxLQUpILENBRUQsSUFBSSxDQUVBLEtBQUssQUFHQSxrQkFBa0IsRUFQL0IsQUFJZSxLQUpWLENBRUQsSUFBSSxDQUVPLFFBQVEsQUFHVixrQkFBa0IsQ0FBQztFQUFHLEtBQUssRUFBRSxPQUFRO0NBQUk7O0FBUHRELEFBSVEsS0FKSCxDQUVELElBQUksQ0FFQSxLQUFLLEFBSUEsc0JBQXNCLEVBUm5DLEFBSWUsS0FKVixDQUVELElBQUksQ0FFTyxRQUFRLEFBSVYsc0JBQXNCLENBQUM7RUFBRyxLQUFLLEVBQUUsT0FBUTtDQUFJOztBQVIxRCxBQUlRLEtBSkgsQ0FFRCxJQUFJLENBRUEsS0FBSyxBQUtBLGlCQUFpQixFQVQ5QixBQUllLEtBSlYsQ0FFRCxJQUFJLENBRU8sUUFBUSxBQUtWLGlCQUFpQixDQUFDO0VBQUcsS0FBSyxFQUFFLE9BQVE7Q0FBSTs7QUFUckQsQUFXUSxLQVhILENBRUQsSUFBSSxDQVNBLFFBQVEsQ0FBQTtFQUFFLE1BQU0sRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLElBQUs7Q0FBSTs7QUFYbkQsQUFZMkIsS0FadEIsQ0FFRCxJQUFJLENBVUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFjO0VBQ2hCLFdBQVcsRUFBRSxrQkFBbUI7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsY0FBYyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsV0FBWTtFQUFFLE1BQU0sRUFBQyxJQUFLO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFFLFVBQVUsRUFBRSxJQUFLO0VBQUUsWUFBWSxFQUFFLENBQUU7RUFBRSxNQUFNLEVBQUUsT0FBUTtDQUN0Tzs7QUFkVCxBQWVRLEtBZkgsQ0FFRCxJQUFJLENBYUEsSUFBSSxDQUFBO0VBQ0EsUUFBUSxFQUFFLFFBQVM7RUFBRSxVQUFVLEVBQUUsSUFBSztFQUFFLFlBQVksRUFBRSxDQUFFO0NBRTNEOztBQWxCVCxBQWVRLEtBZkgsQ0FFRCxJQUFJLENBYUEsSUFBSSxBQUVDLE1BQU0sQ0FBQTtFQUFFLE9BQU8sRUFBQyxFQUFHO0VBQUMsUUFBUSxFQUFFLFFBQVM7RUFBQyxLQUFLLEVBQUMsRUFBRztFQUFDLE1BQU0sRUFBQyxHQUFJO0VBQUMsSUFBSSxFQUFDLEdBQUk7RUFBQyxNQUFNLEVBQUMsR0FBSTtFQzF4QjVGLFVBQVUsRUQweEJ1RyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUN6eEJsSSxrQkFBa0IsRUR5eEIrRixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUN4eEJsSSxlQUFlLEVEd3hCa0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0VDdnhCbEksY0FBYyxFRHV4Qm1HLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztFQ3R4QmxJLGFBQWEsRURzeEJvRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7RUFBRyxLQUFLLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSwwRkFBZTtDQUE0RTs7QUFqQjlQLEFBb0JZLEtBcEJQLENBRUQsSUFBSSxBQWlCQyxNQUFNLENBQ0gsS0FBSyxFQXBCakIsQUFvQmtCLEtBcEJiLENBRUQsSUFBSSxBQWlCQyxNQUFNLENBQ0csUUFBUSxDQUFBO0VBQUUsTUFBTSxFQUFFLGlCQUFrQjtFQUFFLGFBQWEsRUFBRSxJQUFLO0NBQUk7O0FBcEJoRixBQXFCWSxLQXJCUCxDQUVELElBQUksQUFpQkMsTUFBTSxDQUVILElBQUksQ0FBQTtFQUFFLEtBQUssRUFBRSxPQUFRO0NBQUk7O0FBckJyQyxBQXdCSSxLQXhCQyxDQXdCRCxZQUFZLENBQUE7RUFBRSxTQUFTLEVBQUMsV0FBSztFQUFPLGlCQUFpQixFQUFDLFdBQUs7RUFBTyxnQkFBZ0IsRUFBQyxHQUFJO0VBQUMsd0JBQXdCLEVBQUMsR0FBSTtDQUFJOztBQXhCN0gsQUF5QkksS0F6QkMsQ0F5QkQsTUFBTSxDQUFBO0VBQUUsS0FBSyxFQUFFLEdBQUk7RUFBRSxhQUFhLEVBQUUsSUFBSztFQUFFLFVBQVUsRUFBRSxVQUFXO0VBQUUsWUFBWSxFQUFFLENBQUU7Q0FBRzs7QUFFM0YsQUFBQSxVQUFVLENBQUE7RUFDTixVQUFVLEVBQUUsS0FBTTtFQUFFLGNBQWMsRUFBRSxLQUFNO0NBQzdDOztBQUNELEFBQUEsa0JBQWtCLENBQUE7RUFDZCxRQUFRLEVBQUUsUUFBUztDQVV0Qjs7QUFYRCxBQUVJLGtCQUZjLENBRWQsWUFBWSxDQUFBO0VBQ1IsUUFBUSxFQUFFLFFBQVM7RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxNQUFNLEVBQUUsT0FBUTtFQUFFLGdCQUFnQixFQUFFLE9BQVE7RUFBRSxpQkFBaUIsRUFBRSxTQUFVO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLFNBQVMsRUFBRSxDQUFFO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxLQUFLLEVBQUUsV0FBWTtFQUFDLE9BQU8sRUFBRSxDQUFFO0VBQUUsT0FBTyxFQUFFLENBQUU7Q0FDMVA7O0FBSkwsQUFLSSxrQkFMYyxDQUtkLFdBQVcsQ0FBQTtFQUFDLE1BQU0sRUFBQyxJQUFLO0VBQUUsU0FBUyxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBd0Msd0NBQUMsQ0FBQyxTQUFTO0VBQUUsS0FBSyxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLG1CQUFtQixFQUFFLE1BQU87Q0FBRzs7QUFMeE4sQUFNSSxrQkFOYyxDQU1kLFdBQVcsQ0FBQTtFQUFDLE1BQU0sRUFBQyxJQUFLO0VBQUUsU0FBUyxFQUFFLENBQUU7RUFBQyxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBeUMseUNBQUMsQ0FBQyxTQUFTO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRSxtQkFBbUIsRUFBRSxNQUFPO0NBQUc7O0FBTi9MLEFBT0ksa0JBUGMsQ0FPZCxlQUFlLEFBQ1YsV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF1Qyx1Q0FBQyxDQUFDLFNBQVM7RUFBRyxLQUFLLEVBQUUsS0FBTTtFQUFDLFVBQVUsRUFBRSxVQUFXO0VBQUUsbUJBQW1CLEVBQUUsTUFBTztFQUFFLE1BQU0sRUFBRSxPQUFRO0NBQUc7O0FBUjlPLEFBT0ksa0JBUGMsQ0FPZCxlQUFlLEFBRVYsV0FBVyxDQUFBO0VBQUMsTUFBTSxFQUFDLElBQUs7RUFBRSxTQUFTLEVBQUUsQ0FBRTtFQUFDLEtBQUssRUFBRSxJQUFLO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsT0FBTyxDQUF3Qyx3Q0FBQyxDQUFDLFNBQVM7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLG1CQUFtQixFQUFFLE1BQU87RUFBRSxNQUFNLEVBQUUsT0FBUTtDQUFHOztBQUdyTixBQUFBLFFBQVEsQ0FBQTtFQUNKLFVBQVUsRUFBRSxNQUFPO0NBMEJ0Qjs7QUEzQkQsQUFFSSxRQUZJLENBRUosUUFBUSxDQUFBO0VBQUUsS0FBSyxFQUFFLE1BQU87Q0FBSTs7QUFGaEMsQUFHSSxRQUhJLENBR0osUUFBUSxDQUFBO0VBQUUsT0FBTyxFQUFFLENBQUU7Q0FBSTs7QUFIN0IsQUFJSSxRQUpJLENBSUosS0FBSyxDQUFBO0VBQ0QsS0FBSyxFQUFFLElBQUs7RUFBRSxVQUFVLEVBQUUsSUFBSztDQWtCbEM7O0FBdkJMLEFBTVEsUUFOQSxDQUlKLEtBQUssQ0FFRCxLQUFLLENBQUE7RUFDRCxVQUFVLEVBQUUsT0FBUTtDQUl2Qjs7QUFYVCxBQVFlLFFBUlAsQ0FJSixLQUFLLENBRUQsS0FBSyxDQUVELEVBQUUsQ0FBQyxFQUFFLENBQUE7RUFDRCxNQUFNLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLGtCQUFtQjtFQUFFLFNBQVMsRUFBRSxJQUFLO0VBQUUsV0FBVyxFQUFFLElBQUs7RUFBRSxjQUFjLEVBQUUsS0FBTTtFQUFFLFlBQVksRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLFVBQVc7RUFBRSxVQUFVLEVBQUUsSUFBSztDQUMvTDs7QUFWYixBQWFlLFFBYlAsQ0FJSixLQUFLLENBUUQsS0FBSyxDQUNELEVBQUUsQ0FBQyxFQUFFLENBQUE7RUFDRCxPQUFPLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxxQkFBc0I7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLElBQUs7RUFBRyxVQUFVLEVBQUUsSUFBSztDQUs5SDs7QUFuQmIsQUFhZSxRQWJQLENBSUosS0FBSyxDQVFELEtBQUssQ0FDRCxFQUFFLENBQUMsRUFBRSxBQUVBLFVBQVcsQ0FBQSxBQUFBLENBQUMsRUFBQztFQUFFLEtBQUssRUFBRSxHQUFJO0VBQUcsVUFBVSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxrQkFBbUI7Q0FBRzs7QUFmcEgsQUFhZSxRQWJQLENBSUosS0FBSyxDQVFELEtBQUssQ0FDRCxFQUFFLENBQUMsRUFBRSxBQUdBLFVBQVcsQ0FBQSxBQUFBLENBQUMsRUFBQztFQUFFLEtBQUssRUFBRSxHQUFJO0NBQUk7O0FBaEIvQyxBQWFlLFFBYlAsQ0FJSixLQUFLLENBUUQsS0FBSyxDQUNELEVBQUUsQ0FBQyxFQUFFLEFBSUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxFQUFDO0VBQUUsS0FBSyxFQUFFLEdBQUk7Q0FBSTs7QUFqQi9DLEFBYWUsUUFiUCxDQUlKLEtBQUssQ0FRRCxLQUFLLENBQ0QsRUFBRSxDQUFDLEVBQUUsQUFLQSxVQUFXLENBQUEsQUFBQSxDQUFDLEVBQUM7RUFBRSxLQUFLLEVBQUUsR0FBSTtDQUFJOztBQWxCL0MsQUFvQjRCLFFBcEJwQixDQUlKLEtBQUssQ0FRRCxLQUFLLENBUUQsRUFBRSxBQUFBLFVBQVcsQ0FBQSxBQUFBLEdBQUcsRUFBRTtFQUFDLFVBQVUsRUFBRSxPQUFRO0NBQUU7O0FBcEJyRCxBQXFCNkIsUUFyQnJCLENBSUosS0FBSyxDQVFELEtBQUssQ0FTRCxFQUFFLEFBQUEsVUFBVyxDQUFBLEFBQUEsSUFBSSxFQUFFO0VBQUMsVUFBVSxFQUFFLE9BQVE7Q0FBRTs7QUFyQnRELEFBd0JJLFFBeEJJLENBd0JKLFdBQVcsQ0FBQTtFQUNQLE9BQU8sRUFBRSxNQUFPO0NBQ25COztBQUVMLEFBQUEsU0FBUyxDQUFBO0VBQ0wsVUFBVSxFQUFFLElBQUs7RUFBRSxRQUFRLEVBQUUsUUFBUztDQUV6Qzs7QUFIRCxBQUVJLFNBRkssQ0FFTCxLQUFLLENBQUE7RUFBRSxRQUFRLEVBQUUsUUFBUztFQUFDLE1BQU0sRUFBRSxHQUFJO0VBQUUsS0FBSyxFQUFFLElBQUs7Q0FBSTs7QUFFN0QsQUFBQSxlQUFlLENBQUE7RUFDWCxhQUFhLEVBQUUsSUFBSztDQVd2Qjs7QUFaRCxBQUVJLGVBRlcsQ0FFWCxTQUFTLENBQUE7RUFDTCxLQUFLLEVBQUUsT0FBUTtFQUFDLGNBQWMsRUFBRSxJQUFLO0VBQUMsYUFBYSxFQUFFLElBQUs7RUFBQyxhQUFhLEVBQUUsaUJBQWtCO0VBQUMsT0FBTyxFQUFFLEtBQU07Q0FRL0c7O0FBWEwsQUFJUSxlQUpPLENBRVgsU0FBUyxDQUVMLENBQUMsQ0FBQTtFQUFDLFlBQVksRUFBRSxJQUFLO0VBQUMsU0FBUyxFQUFFLElBQUs7RUFBQyxXQUFXLEVBQUUsSUFBSztFQUFDLGFBQWEsRUFBRSxDQUFFO0NBQUc7O0FBSnRGLEFBS1EsZUFMTyxDQUVYLFNBQVMsQ0FHTCxNQUFNLENBQUE7RUFDRixZQUFZLEVBQUUsSUFBSztFQUFDLFFBQVEsRUFBRSxRQUFTO0VBQUMsY0FBYyxFQUFFLElBQUs7RUFBQyxhQUFhLEVBQUUsSUFBSztDQUlyRjs7QUFWVCxBQUtRLGVBTE8sQ0FFWCxTQUFTLENBR0wsTUFBTSxBQUVELE9BQU8sQ0FBQTtFQUFDLE9BQU8sRUFBQyxFQUFHO0VBQUMsUUFBUSxFQUFFLFFBQVM7RUFBQyxNQUFNLEVBQUUsQ0FBRTtFQUFDLElBQUksRUFBRSxDQUFFO0VBQUMsTUFBTSxFQUFFLEdBQUk7RUFBQyxVQUFVLEVBQUUsSUFBSztFQUFDLEtBQUssRUFBRSxJQUFLO0NBQUc7O0FBUHZILEFBUVksZUFSRyxDQUVYLFNBQVMsQ0FHTCxNQUFNLENBR0YsRUFBRSxDQUFBO0VBQUMsV0FBVyxFQUFFLGtCQUFtQjtFQUFDLGNBQWMsRUFBRSxJQUFLO0VBQUMsU0FBUyxFQUFFLElBQUs7RUFBQyxXQUFXLEVBQUUsSUFBSztFQUFDLGFBQWEsRUFBRSxJQUFLO0NBQUc7O0FBUmpJLEFBU1ksZUFURyxDQUVYLFNBQVMsQ0FHTCxNQUFNLENBSUYsSUFBSSxDQUFBO0VBQUMsU0FBUyxFQUFFLElBQUs7RUFBQyxLQUFLLEVBQUUsT0FBUTtFQUFDLFdBQVcsRUFBRSxzQkFBdUI7Q0FBRzs7QUFJekYsQUFDSSxXQURPLENBQ1AsUUFBUSxDQUFBO0VBQUMsS0FBSyxFQUFFLE1BQU87Q0FBRzs7QUFFOUIsQUFBQSxNQUFNLENBQUM7RUFDSCxPQUFPLEVBQUUsSUFBSztFQUFHLGdCQUFnQixFQUFFLE9BQVE7RUFBRSxLQUFLLEVBQUUsS0FBTTtFQUFFLGFBQWEsRUFBRSxJQUFLO0NBQ25GOztBQUVELEFBQUEsUUFBUSxDQUFDO0VBQ0wsT0FBTyxFQUFFLElBQUs7RUFBRSxnQkFBZ0IsRUFBRSxPQUFRO0VBQUUsS0FBSyxFQUFFLEtBQU07RUFBRSxhQUFhLEVBQUUsSUFBSztDQUNsRjs7QUFFRCxBQUFBLFNBQVMsQ0FBQztFQUNOLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFFLEtBQU07RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxLQUFNO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxPQUFRO0VBQUUsVUFBVSxFQUFFLElBQUs7Q0FDbEo7O0FBRUQsQUFBUyxTQUFBLEFBQUEsTUFBTSxDQUFDO0VBQ1osS0FBSyxFQUFFLEtBQU07Q0FDaEI7O0FBQ0QsQUFFSSxrQkFGYyxDQUVkLEtBQUssQ0FBQTtFQUNELEtBQUssRUFBQyxHQUFJO0VBQUUsT0FBTyxFQUFFLFdBQVk7RUFBRSxVQUFVLEVBQUUsVUFBVztFQUFFLFVBQVUsRUFBbUMsZ0NBQUMsQ0FBQyxTQUFTO0VBQUUsZUFBZSxFQUFFLEtBQU07RUFBRSxNQUFNLEVBQUUsS0FBTTtDQVdoSzs7QUFkTCxBQUlRLGtCQUpVLENBRWQsS0FBSyxDQUVELEdBQUcsQ0FBQTtFQUFFLGFBQWEsRUFBRSxJQUFLO0NBQUc7O0FBSnBDLEFBS1Esa0JBTFUsQ0FFZCxLQUFLLENBR0QsRUFBRSxDQUFBO0VBQUUsV0FBVyxFQUFFLEdBQUk7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsS0FBSyxFQUFDLE9BQVE7RUFBRSxhQUFhLEVBQUUsSUFBSztDQUFJOztBQUw3RyxBQU1RLGtCQU5VLENBRWQsS0FBSyxDQUlELEVBQUUsQ0FBQTtFQUNFLFdBQVcsRUFBRSxHQUFJO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBQyxPQUFRO0VBQUUsUUFBUSxFQUFFLFFBQVM7RUFBRSxhQUFhLEVBQUUsSUFBSztDQUVySDs7QUFUVCxBQU1RLGtCQU5VLENBRWQsS0FBSyxDQUlELEVBQUUsQUFFRyxNQUFNLENBQUE7RUFBRSxRQUFRLEVBQUMsUUFBUztFQUFFLE9BQU8sRUFBRSxLQUFNO0VBQUUsT0FBTyxFQUFFLEVBQUc7RUFBRSxLQUFLLEVBQUUsSUFBSztFQUFFLE1BQU0sRUFBRSxHQUFJO0VBQUUsVUFBVSxFQUFDLE9BQVE7RUFBRSxNQUFNLEVBQUUsS0FBTTtFQUFDLElBQUksRUFBRSxHQUFJO0NBQUk7O0FBUnRKLEFBVVEsa0JBVlUsQ0FFZCxLQUFLLENBUUQsQ0FBQyxDQUFBO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLGFBQWEsRUFBRSxDQUFFO0NBQUk7O0FBVnRFLEFBWVksa0JBWk0sQ0FFZCxLQUFLLENBU0QsS0FBSyxDQUNELElBQUksQ0FBQTtFQUFFLEtBQUssRUFBQyxJQUFLO0VBQUUsS0FBSyxFQUFDLEdBQUk7Q0FBRzs7QUFaNUMsQUFlSSxrQkFmYyxDQWVkLE1BQU0sQ0FBQTtFQUNGLEtBQUssRUFBQyxHQUFJO0NBS2I7O0FBckJMLEFBaUJRLGtCQWpCVSxDQWVkLE1BQU0sQ0FFRixPQUFPLENBQUE7RUFDSCxVQUFVLEVBQUUsS0FBTTtFQUFFLFFBQVEsRUFBRSxNQUFPO0VBQUMsUUFBUSxFQUFFLFFBQVM7RUFBRSxPQUFPLEVBQUUsS0FBTTtFQUFHLE1BQU0sRUFBRSxLQUFNO0NBRTlGOztBQXBCVCxBQW1CWSxrQkFuQk0sQ0FlZCxNQUFNLENBRUYsT0FBTyxDQUVILEdBQUcsQ0FBQTtFQUFFLFVBQVUsRUFBRSxLQUFNO0VBQUUsTUFBTSxFQUFFLElBQUs7RUFBRSxPQUFPLEVBQUUsS0FBTTtDQUFHOztBQUl0RTtnR0FDZ0c7QUFDaEcsQUFBQSxNQUFNLENBQUE7RUFDb0IsTUFBTSxFQUFFLEtBQU07RUFBRSxVQUFVLEVBQUUsT0FBUTtFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsVUFBVSxFQUFFLFVBQVc7Q0E0QjFHOztBQTdCRCxBQUVJLE1BRkUsQ0FFRixRQUFRLENBQUE7RUFDSixLQUFLLEVBQUUsSUFBSztDQVdmOztBQWRMLEFBSVEsTUFKRixDQUVGLFFBQVEsQ0FFSixJQUFJLENBQUE7RUFDQSxLQUFLLEVBQUUsS0FBTTtFQUFFLEtBQUssRUFBRSxJQUFLO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztFQUFFLEtBQUssRUFBRSxPQUFRO0NBUXJGOztBQWJULEFBTVksTUFOTixDQUVGLFFBQVEsQ0FFSixJQUFJLENBRUEsQ0FBQyxDQUFBO0VBQUUsS0FBSyxFQUFFLE9BQVE7RUFBRSxXQUFXLEVBQUUsSUFBSztDQUFHOztBQU5yRCxBQVFnQixNQVJWLENBRUYsUUFBUSxDQUVKLElBQUksQ0FHQSxFQUFFLENBQ0UsSUFBSSxDQUFBO0VBQUUsY0FBYyxFQUFFLFNBQVU7RUFBRSxXQUFXLEVBQUUsR0FBSTtFQUFFLFlBQVksRUFBRSxJQUFLO0NBQUk7O0FBUjVGLEFBV2dCLE1BWFYsQ0FFRixRQUFRLENBRUosSUFBSSxDQU1BLEtBQUssQ0FDRCxHQUFHLENBQUE7RUFBRSxLQUFLLEVBQUUsS0FBTTtDQUFJOztBQVh0QyxBQWVJLE1BZkUsQ0FlRixRQUFRLENBQUE7RUFDSixLQUFLLEVBQUUsS0FBTTtDQVloQjs7QUE1QkwsQUFtQmUsTUFuQlQsQ0FlRixRQUFRLENBRUosSUFBSSxDQUVBLEVBQUUsQ0FBQyxFQUFFLENBQUE7RUFDRCxLQUFLLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxJQUFLO0VBQUUsYUFBYSxFQUFFLElBQUs7Q0FFekQ7O0FBdEJiLEFBcUJnQixNQXJCVixDQWVGLFFBQVEsQ0FFSixJQUFJLENBRUEsRUFBRSxDQUFDLEVBQUUsQ0FFRCxDQUFDLENBQUE7RUFBRSxTQUFTLEVBQUUsSUFBSztFQUFFLFdBQVcsRUFBRSxHQUFJO0VBQUUsY0FBYyxFQUFFLFNBQVU7RUFBRSxLQUFLLEVBQUUsT0FBUTtDQUFJOztBQXJCdkcsQUF3QlEsTUF4QkYsQ0FlRixRQUFRLENBU0osT0FBTyxDQUFBO0VBQ0gsVUFBVSxFQUFFLEtBQU07Q0FFckI7O0FBM0JULEFBMEJZLE1BMUJOLENBZUYsUUFBUSxDQVNKLE9BQU8sQ0FFSCxDQUFDLENBQUE7RUFBRSxXQUFXLEVBQUUsR0FBSTtFQUFFLEtBQUssRUFBRSxPQUFRO0VBQUUsU0FBUyxFQUFFLElBQUs7RUFBRSxXQUFXLEVBQUUsSUFBSztDQUFJIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
