@charset "UTF-8";
@font-face {
  font-family: 'Typonine Mono Regular';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001720.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001720.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001720.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001720.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001720.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Mono Medium';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001722.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001722.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001722.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001722.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001722.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Sans Light';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001726.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001726.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001726.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001726.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001726.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Sans Regular';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001728.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001728.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001728.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001728.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001728.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Sans Regular Italic';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001729.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001729.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001729.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001729.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001729.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Sans Medium';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001730.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001730.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001730.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001730.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001730.svg#Typotheque_webfonts_service") format("svg");
}

@font-face {
  font-family: 'Typonine Sans Bold';
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001732.eot");
  src: url("https://content.arduino.cc/fonts/WF-028075-009795-001732.eot?#iefix") format("embedded-opentype"), url("https://content.arduino.cc/fonts/WF-028075-009795-001732.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001732.woff") format("woff"), url("https://content.arduino.cc/fonts/WF-028075-009795-001732.svg#Typotheque_webfonts_service") format("svg");
}

html {
  box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}

body {
  color: #434f54;
  display: flex;
  flex-direction: column;
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 20px;
  letter-spacing: .7px;
  line-height: 1.45;
  min-height: 100vh;
}

@media screen and (max-width: 600px) {
  body {
    font-size: 18px;
  }
}

b,
strong {
  font-family: "Typonine Sans Regular", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-weight: 400;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
p {
  margin: 0;
}

ul,
li {
  list-style-type: none;
  padding: 0;
}

a {
  color: #0ca1a6;
  text-decoration: none;
  transition: color .3s;
}

a:hover, a:active {
  color: #005c5f;
  text-decoration: none;
}

a:focus {
  color: #0ca1a6;
  outline: none;
}

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

input[type=text]::-ms-clear {
  display: none;
}

#page {
  -webkit-font-smoothing: subpixel-antialiased;
  display: flex;
  flex-basis: auto;
  flex-grow: 1;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 40px auto 20px;
  max-width: 1268px;
  padding: 0 40px;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  #page {
    max-width: 820px;
  }
}

@media screen and (max-width: 480px) {
  #page {
    padding: 0 20px;
  }
}

#content {
  order: 2;
  width: calc(75% - 40px);
}

#content.single-post {
  margin: 0 auto;
  max-width: 850px;
  width: 100%;
}

#sidebar {
  order: 1;
  width: calc(25% - 40px);
}

#content,
#sidebar {
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 1024px) {
  #content,
  #sidebar {
    width: 100%;
  }
}

#ad_container_zone {
  display: flex;
  justify-content: center;
  order: 1;
}

#ad_container_zone img {
  height: auto !important;
  max-width: 100%;
}

@media screen and (max-width: 1024px) {
  #ad_container_zone {
    margin: 5px auto 20px;
  }
}

.wp-block-code {
  overflow-x: auto;
}

.btn-primary {
  background-color: #00979d;
  border: 0;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px #005c5f;
  color: #fff;
  cursor: pointer;
  font-family: "Typonine Sans Regular", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 14px;
  letter-spacing: 1.28px;
  line-height: normal;
  outline: 0;
  padding: 9px 10px;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  transition: top .1s ease-out, box-shadow .1s ease-out;
}

.btn-primary:hover, .btn-primary:focus {
  border: 0;
  box-shadow: 0 2px #005c5f;
  outline: none;
  top: 2px;
}

.btn-primary:active {
  box-shadow: none;
  top: 6px;
}

.btn-primary:hover, .btn-primary:active, .btn-primary:focus {
  color: #fff;
}

select,
.select-btn {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #ecf1f1;
  border: 0;
  border-radius: 0;
  color: #434f54;
  cursor: pointer;
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 16px;
  height: 40px;
  letter-spacing: .7px;
  padding: 0 32px 0 14px;
  text-align: left;
  transition: background-color .3s, color .3s;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  select,
  .select-btn {
    background-color: #fff;
  }
}

select:hover,
.select-btn:hover {
  background-color: #dae3e3;
  color: #374146;
}

select:focus,
.select-btn:focus {
  outline: none;
}

.wrapper-select,
.select-btn {
  position: relative;
}

.wrapper-select::after,
.select-btn::after {
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #434f54;
  content: '';
  height: 0;
  pointer-events: none;
  position: absolute;
  right: 12px;
  top: 17px;
  width: 0;
}

.custom-select {
  display: none;
}

.custom-select .dropdown-menu {
  background-color: #ecf1f1;
  max-height: 272px;
  overflow-y: auto;
}

@media screen and (max-width: 1024px) {
  .custom-select .dropdown-menu {
    background-color: #fff;
  }
}

.custom-select .dropdown-menu .children li a {
  font-size: 14px;
  padding-left: 28px;
}

.custom-select .dropdown-menu li {
  margin: 0;
}

.custom-select .dropdown-menu li a {
  color: #434f54;
  display: inline-block;
  padding: 8px 14px;
  transition: background-color .3s;
  width: 100%;
}

.custom-select .dropdown-menu li a:hover {
  background-color: #dae3e3;
  color: #434f54;
}

@media (pointer: fine) {
  .native-select {
    display: none;
  }
  .custom-select {
    display: block;
  }
}

@-moz-document url-prefix() {
  .native-select {
    display: none;
  }
  .custom-select {
    display: block;
  }
  @media screen and (max-width: 1024px) {
    .native-select {
      display: block;
    }
    .custom-select {
      display: none;
    }
  }
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .native-select {
    display: none;
  }
  .custom-select {
    display: block;
  }
}

@media screen and (-ms-high-contrast: active) and (max-width: 1024px) {
  .native-select {
    display: block;
  }
  .custom-select {
    display: none;
  }
}

.navigation {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0 0 30px;
}

.navigation .alignleft a::before {
  border-left: 1px solid #0ca1a6;
  border-top: 1px solid #0ca1a6;
  content: '';
  display: inline-block;
  height: 10px;
  margin-right: 10px;
  position: relative;
  top: -2px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  width: 10px;
}

.navigation .alignright a::after {
  border-right: 1px solid #0ca1a6;
  border-top: 1px solid #0ca1a6;
  content: '';
  display: inline-block;
  height: 10px;
  margin-left: 10px;
  position: relative;
  top: -2px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  width: 10px;
}

.tag-btn, .ais-facets a, .sort-options-wrapper .sort-item-wrapper a {
  background-color: #bcac99;
  box-shadow: 10px 0 0 #bcac99, -10px 0 0 #bcac99;
  color: #fff;
  display: inline;
  font-size: 16px;
  letter-spacing: 1.28px;
  line-height: 1.2;
  padding: 4px 0;
  text-transform: uppercase;
  transition: background-color .3s, box-shadow .3s;
}

.tag-btn:hover, .ais-facets a:hover, .sort-options-wrapper .sort-item-wrapper a:hover {
  background-color: #f39c12;
  box-shadow: 10px 0 0 #f39c12, -10px 0 0 #f39c12;
}

@media screen and (max-width: 1024px) {
  .tag-btn, .ais-facets a, .sort-options-wrapper .sort-item-wrapper a {
    align-items: center;
    box-shadow: none;
    display: flex;
    height: 100%;
    justify-content: space-between;
    padding: 8px 14px;
  }
  .tag-btn:hover, .ais-facets a:hover, .sort-options-wrapper .sort-item-wrapper a:hover {
    box-shadow: none;
  }
}

.breadcrumbs {
  margin: -20px 0 40px;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  .breadcrumbs {
    margin-bottom: 20px;
  }
}

.breadcrumbs ul {
  display: flex;
  font-size: 14px;
}

.breadcrumbs li {
  white-space: nowrap;
}

.breadcrumbs li span {
  margin: 0 7px 0 4px;
}

.breadcrumbs strong {
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
}

.breadcrumbs .br-post {
  overflow-x: hidden;
  text-overflow: ellipsis;
}

.breadcrumbs a {
  color: #434f54;
}

.breadcrumbs a:hover {
  color: #00979d;
}

.pagetitle {
  border-bottom: 1px solid rgba(218, 227, 227, 0.7);
  color: #9e846d;
  font-size: 26px;
  font-weight: 200;
  letter-spacing: 1.28px;
  line-height: 1.2;
  margin: 0 0 60px;
  padding: 0 0 20px;
  text-align: center;
  text-transform: uppercase;
}

.pagetitle .category {
  border: 1px solid rgba(158, 132, 109, 0.6);
  padding: 0 5px;
}

.layout-2-column,
.ais-hits {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.ais-hits--item,
.layout-2-column .post {
  background-color: #ecf1f1;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  font-size: 18px;
  margin: 0 0 20px;
  overflow: hidden;
  transition: background-color .3s;
  width: calc(50% - 10px);
}

@media screen and (max-width: 740px) {
  .ais-hits--item,
  .layout-2-column .post {
    width: 100%;
  }
}

.ais-hits--item article,
.layout-2-column .post article {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ais-hits--item h2,
.layout-2-column .post h2 {
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 22px;
  font-weight: 200;
  letter-spacing: 2px;
  line-height: 1.35;
  margin: 0 0 20px;
  text-transform: uppercase;
  transition: color .3s 0;
}

.ais-hits--item em,
.ais-hits--item a em,
.layout-2-column .post em,
.layout-2-column .post a em {
  background-color: #fff;
  font-style: normal;
  padding: 0 3px;
  transition: background-color .3s;
}

.ais-hits--item .author,
.ais-hits--item .category,
.ais-hits--item .excerpt,
.layout-2-column .post .author,
.layout-2-column .post .category,
.layout-2-column .post .excerpt {
  color: #434f54;
  transition: color .3s 0;
}

.ais-hits--item:hover,
.layout-2-column .post:hover {
  background-color: #7fcbcd;
}

.ais-hits--item:hover h2,
.layout-2-column .post:hover h2 {
  color: #fff;
}

.ais-hits--item:hover em,
.ais-hits--item:hover a em,
.layout-2-column .post:hover em,
.layout-2-column .post:hover a em {
  background-color: rgba(12, 161, 166, 0.45);
}

.ais-hits--item:hover .author,
.ais-hits--item:hover .category,
.ais-hits--item:hover .excerpt,
.layout-2-column .post:hover .author,
.layout-2-column .post:hover .category,
.layout-2-column .post:hover .excerpt {
  color: #fff;
}

.ais-hits--item:hover .ais-hits--thumbnail::after,
.ais-hits--item:hover .card-cover-image::after,
.layout-2-column .post:hover .ais-hits--thumbnail::after,
.layout-2-column .post:hover .card-cover-image::after {
  opacity: 1;
}

.ais-hits--item .ais-hits--content,
.ais-hits--item .card-content,
.layout-2-column .post .ais-hits--content,
.layout-2-column .post .card-content {
  display: flex;
  flex-basis: auto;
  flex-direction: column;
  flex-grow: 1;
  overflow: hidden;
  padding: 24px 30px;
}

@media screen and (max-width: 480px) {
  .ais-hits--item .ais-hits--content,
  .ais-hits--item .card-content,
  .layout-2-column .post .ais-hits--content,
  .layout-2-column .post .card-content {
    padding: 20px;
  }
}

.ais-hits--item .ais-hits--content .excerpt,
.ais-hits--item .card-content .excerpt,
.layout-2-column .post .ais-hits--content .excerpt,
.layout-2-column .post .card-content .excerpt {
  display: flex;
  flex-basis: auto;
  flex-grow: 1;
  margin-bottom: 45px;
}

.ais-hits--item .ais-hits--content .author,
.ais-hits--item .ais-hits--content .category,
.ais-hits--item .card-content .author,
.ais-hits--item .card-content .category,
.layout-2-column .post .ais-hits--content .author,
.layout-2-column .post .ais-hits--content .category,
.layout-2-column .post .card-content .author,
.layout-2-column .post .card-content .category {
  font-size: 14px;
  letter-spacing: 1.28px;
  text-transform: uppercase;
}

.ais-hits--item .ais-hits--thumbnail,
.ais-hits--item .card-cover-image,
.layout-2-column .post .ais-hits--thumbnail,
.layout-2-column .post .card-cover-image {
  position: relative;
}

.ais-hits--item .ais-hits--thumbnail img,
.ais-hits--item .card-cover-image img,
.layout-2-column .post .ais-hits--thumbnail img,
.layout-2-column .post .card-cover-image img {
  display: inherit;
}

.ais-hits--item .ais-hits--thumbnail::after,
.ais-hits--item .card-cover-image::after,
.layout-2-column .post .ais-hits--thumbnail::after,
.layout-2-column .post .card-cover-image::after {
  background: rgba(0, 0, 0, 0.15);
  bottom: 0;
  content: '';
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity .3s;
}

.ais-hits--item .ais-hits--thumbnail a,
.ais-hits--item .card-cover-image a,
.layout-2-column .post .ais-hits--thumbnail a,
.layout-2-column .post .card-cover-image a {
  display: inline-block;
  width: 100%;
}

.ais-hits--item .ais-hits--thumbnail img,
.ais-hits--item .card-cover-image img,
.layout-2-column .post .ais-hits--thumbnail img,
.layout-2-column .post .card-cover-image img {
  margin: 0;
}

.layout-2-column .card-cover-image {
  display: flex;
}

.layout-2-column .cover-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  height: 35vh;
  max-height: 325px;
  min-height: 220px;
  width: 100%;
}

.layout-2-column .post {
  background-color: transparent;
  display: flex;
  flex-direction: column;
}

.layout-2-column .post .card-content {
  padding-bottom: 4px;
}

.layout-2-column .post .card-content .excerpt {
  margin-bottom: 0;
}

.layout-2-column .post:hover {
  background-color: transparent;
}

.layout-2-column .post:hover .author,
.layout-2-column .post:hover .category,
.layout-2-column .post:hover .excerpt {
  color: #434f54;
}

.layout-2-column .post:hover h2 {
  color: #0ca1a6;
}

.layout-2-column .post::after {
  display: none;
}

.layout-2-column .blog-card {
  background-color: #ecf1f1;
  display: flex;
  flex-basis: auto;
  flex-direction: column;
  flex-grow: 1;
  transition: background-color .3s;
}

.layout-2-column .blog-card:hover {
  background-color: #7fcbcd;
}

.layout-2-column .blog-card:hover .excerpt,
.layout-2-column .blog-card:hover h2 {
  color: #fff;
}

.layout-2-column .blog-card:hover + .info-wrapper {
  background-color: #7fcbcd;
}

.layout-2-column .blog-card:hover + .info-wrapper .board {
  color: #fff;
}

.layout-2-column .blog-card:hover + .info-wrapper .board a {
  color: #fff;
  transition: color 0s;
}

.layout-2-column .info-wrapper {
  background-color: #ecf1f1;
  font-size: 14px;
  letter-spacing: 1.28px;
  padding: 24px 30px;
  text-transform: uppercase;
  transition: background-color .3s;
}

.layout-2-column .info-wrapper .board {
  display: flex;
  flex-wrap: wrap;
}

.layout-2-column .info-wrapper .board .label {
  margin-right: 6px;
}

.layout-2-column .info-wrapper .board a {
  margin-right: 8px;
}

.post {
  margin: 0 0 10px;
  order: 1;
}

.post ul {
  padding-bottom: 20px;
  padding-left: 20px;
}

.post ul li {
  list-style-type: disc;
}

.post::after {
  border-top: 1px solid rgba(218, 227, 227, 0.7);
  content: '';
  display: inline-block;
  margin: 2vh 0 6vh;
  width: 100%;
}

.post iframe {
  height: 45vh;
  margin: 20px 0 30px;
  min-height: 500px;
  width: 100%;
}

@media screen and (max-width: 640px) {
  .post iframe {
    min-height: 0;
  }
}

.post .addthis_toolbox {
  display: flex;
  flex-direction: column;
  float: right;
  margin: 0;
}

@media screen and (max-width: 700px) {
  .post .addthis_toolbox {
    flex-direction: row;
    flex-wrap: wrap;
    float: none;
    margin: 50px 0 10px;
  }
}

.post .addthis_toolbox .social-container {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 10px;
}

@media screen and (max-width: 700px) {
  .post .addthis_toolbox .social-container {
    margin-right: 10px;
  }
}

.post .addthis_toolbox .social-container .social-content {
  margin: 0;
  max-width: none;
}

.post .addthis_toolbox .social-container .social-content a {
  margin: 0;
}

.post .addthis_toolbox img {
  margin: 0 5px 0 0;
  position: relative;
  top: -2px;
}

.post .addthis_toolbox iframe {
  margin: 0;
}

.post .image-post {
  background-color: #ecf1f1;
  display: inline-block;
  margin: 20px 0 30px;
  padding: 5%;
  width: 100%;
}

@media screen and (max-width: 640px) {
  .post .image-post {
    padding: 0;
  }
}

.post .image-post img {
  display: block;
  margin: 0 auto;
  width: auto;
}

.post p {
  margin-bottom: 20px;
}

.post h3 {
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 38px;
  font-weight: 200;
  letter-spacing: .4px;
  line-height: 1.13;
  margin: 0 0 30px;
}

.post h3.post-title {
  margin-top: 10px;
}

@media screen and (max-width: 600px) {
  .post h3 {
    font-size: 30px;
  }
}

.post h3 a {
  color: #434f54;
}

.post h3 a:hover {
  color: #0ca1a6;
}

.post blockquote {
  background-color: rgba(188, 172, 153, 0.1);
  border: 1px solid rgba(188, 172, 153, 0.4);
  color: #9e846d;
  margin: 0 0 40px;
  padding: 24px 30px 10px;
}

.post .more-link {
  display: block;
  letter-spacing: 1.28px;
  margin: 20px 0 0;
  text-transform: uppercase;
}

.post .info,
.post .postmetadata {
  font-size: 16px;
}

@media screen and (max-width: 600px) {
  .post .info,
  .post .postmetadata {
    font-size: 14px;
  }
}

.post .info {
  margin: 0 0 10px;
}

.post .info + .entry .image-post:first-child {
  margin-top: 10px;
}

.post .info .author {
  letter-spacing: 1.28px;
  text-transform: uppercase;
}

.post .info .author::before {
  content: 'Posted by: ';
  letter-spacing: .7px;
  text-transform: none;
}

.post .postmetadata {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 20px;
  padding-right: 50px;
  width: calc(100% - 130px);
}

@media screen and (max-width: 700px) {
  .post .postmetadata {
    padding-right: 0;
    width: 100%;
  }
}

.post .postmetadata small {
  font-size: 16px;
}

@media screen and (max-width: 600px) {
  .post .postmetadata small {
    font-size: 14px;
  }
}

.post .postmetadata .categories {
  display: flex;
  flex-wrap: wrap;
  width: 70%;
}

@media screen and (max-width: 640px) {
  .post .postmetadata .categories {
    margin-bottom: 14px;
    width: 100%;
  }
}

.post .postmetadata .categories a {
  background-color: #bcac99;
  color: #fff;
  display: inline-block;
  letter-spacing: 1.28px;
  margin: 0 6px 6px 0;
  padding: 4px 10px;
  text-transform: uppercase;
  transition: background-color .3s;
}

.post .postmetadata .categories a:hover {
  background-color: #f39c12;
}

.post .postmetadata .comments {
  display: flex;
  justify-content: flex-end;
  width: 30%;
}

@media screen and (max-width: 640px) {
  .post .postmetadata .comments {
    justify-content: flex-start;
    width: 100%;
  }
}

.post .postmetadata .comments a {
  border: 1px solid #bcac99;
  color: #9e846d;
  display: inline-block;
  letter-spacing: 1.28px;
  margin-bottom: 6px;
  padding: 3px 9px;
  text-transform: uppercase;
  transition: border .3s, color .3s;
}

.post .postmetadata .comments a:hover {
  border: 1px solid #0ca1a6;
  color: #0ca1a6;
}

.singlePost {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 35px 0 calc(6vh + 10px);
  order: 3;
}

.singlePost .blog-home-btn {
  align-items: center;
  background-color: #ecf1f1;
  color: #9e846d;
  display: flex;
  justify-content: center;
  letter-spacing: 1.28px;
  padding: 35px;
  text-align: center;
  text-transform: uppercase;
  transition: background-color .3s, color .3s;
  width: 100%;
}

.singlePost .blog-home-btn:hover {
  background-color: #7fcbcd;
  color: #fff;
}

.singlePost .alignleft,
.singlePost .alignright {
  margin-bottom: 8px;
  width: calc(50% - 4px);
}

@media screen and (max-width: 740px) {
  .singlePost .alignleft,
  .singlePost .alignright {
    width: 100%;
  }
}

.singlePost .alignleft .thumb-navigation,
.singlePost .alignright .thumb-navigation {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 3px;
  display: inline-block;
  height: 25vh;
  margin: 0 0 15px;
  max-height: 230px;
  min-height: 170px;
  width: 100%;
}

.singlePost .alignleft a,
.singlePost .alignright a {
  background-color: #ecf1f1;
  display: inline-block;
  height: 100%;
  padding: 20px 35px 30px;
  text-align: center;
  transition: background-color .3s, color .3s;
  width: 100%;
}

.singlePost .alignleft a:hover,
.singlePost .alignright a:hover {
  background-color: #7fcbcd;
  color: #fff;
}

.singlePost .alignleft a:hover::before,
.singlePost .alignright a:hover::before {
  color: #fff;
}

.singlePost .alignleft a:focus,
.singlePost .alignright a:focus {
  outline: none;
}

.singlePost .alignleft a::before,
.singlePost .alignright a::before {
  border: 0;
  color: #9e846d;
  display: inline-block;
  height: auto;
  letter-spacing: 1.28px;
  margin: 0 0 15px;
  text-transform: uppercase;
  -webkit-transform: none;
          transform: none;
  transition: color .3s;
  width: 100%;
}

.singlePost .alignleft a::after,
.singlePost .alignright a::after {
  display: none;
}

.singlePost .alignleft a::before {
  content: 'Previous Blog Post';
}

.singlePost .alignright a::before {
  content: 'Next Blog Post';
}

.social-share {
  display: inline-block;
  margin: 0 0 30px;
  width: 100%;
}

.social-share iframe {
  margin: 0;
  max-height: 20px;
  min-height: 0;
}

.social-share ul {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  width: 100%;
}

.social-share ul img {
  border-radius: 100%;
  height: 28px;
  margin-right: 6px;
  width: 28px;
}

.social-share ul img.twitter {
  background-color: #54c1f2;
}

.social-share ul img.gplus {
  background-color: #d34836;
}

.social-share ul img.facebook {
  background-color: #3f65b6;
}

.social-share ul li {
  align-items: center;
  display: flex;
  font-size: 16px;
  list-style: none;
  margin: 0 25px 0 0;
}

@media screen and (max-width: 480px) {
  .social-share ul li {
    margin: 0 0 10px;
    width: 100%;
  }
  .social-share ul li:last-child {
    margin: 0;
  }
}

.social-share ul li .fb-like {
  display: flex;
}

.social-share ul li a {
  align-items: center;
  display: flex;
}

.comments-wrapper {
  order: 2;
}

.comments-wrapper::after {
  border-top: 1px solid rgba(218, 227, 227, 0.7);
  content: '';
  display: inline-block;
  margin: calc(4vh + 10px) 0 calc(6vh + 10px);
  width: 100%;
}

.comments-wrapper .logged-as {
  font-size: 16px;
}

.comments-wrapper .logged-as .logout {
  float: right;
  position: relative;
}

.comments-wrapper textarea {
  background-color: #ecf1f1;
  border: 0;
  color: #434f54;
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 16px;
  letter-spacing: .7px;
  line-height: 1.45;
  margin: 20px 0;
  max-width: 100%;
  min-height: 300px;
  min-width: 100%;
  padding: 24px 30px;
  width: 100%;
}

.comments-wrapper textarea:focus {
  outline: none;
}

.comments-wrapper #submit {
  background-color: #00979d;
  border: 0;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px #005c5f;
  color: #fff;
  cursor: pointer;
  font-family: "Typonine Sans Regular", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 14px;
  letter-spacing: 1.28px;
  line-height: normal;
  outline: 0;
  padding: 9px 10px;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  transition: top .1s ease-out, box-shadow .1s ease-out;
  float: right;
  position: relative;
}

.comments-wrapper #submit:hover, .comments-wrapper #submit:focus {
  border: 0;
  box-shadow: 0 2px #005c5f;
  outline: none;
  top: 2px;
}

.comments-wrapper #submit:active {
  box-shadow: none;
  top: 6px;
}

.comments-wrapper cite {
  font-style: normal;
}

.comments-wrapper h3 {
  color: #9e846d;
  font-size: 26px;
  font-weight: 200;
  letter-spacing: 1.28px;
  line-height: 1.2;
  margin: 0 0 20px;
  text-transform: uppercase;
}

.comments-wrapper .commentlist {
  margin: 0 0 calc(6vh + 10px);
  padding: 20px 0 0;
}

.comments-wrapper .commentlist li {
  margin: 0 0 30px;
}

.comments-wrapper .commentlist small {
  font-size: 16px;
}

.single-post .bottom-article {
  margin-top: 80px;
}

.single-post .info-wrapper {
  float: left;
  font-size: 16px;
  margin: 0 0 20px;
  padding-right: 50px;
  position: relative;
  width: calc(100% - 130px);
}

@media screen and (max-width: 700px) {
  .single-post .info-wrapper {
    float: none;
    padding-right: 0;
    width: 100%;
  }
}

.single-post .board {
  margin-bottom: 8px;
  padding: 0 10px;
}

.single-post .board .label {
  margin-left: -10px;
  margin-right: 18px;
}

.single-post .board a {
  background-color: #bcac99;
  box-shadow: 10px 0 0 #bcac99, -10px 0 0 #bcac99;
  color: #fff;
  display: inline-block;
  letter-spacing: 1.28px;
  line-height: 1.2;
  margin: 0 25px 5px 0;
  padding: 4px 0;
  text-transform: uppercase;
  transition: background-color .3s, box-shadow .3s;
}

.single-post .board a:hover {
  background-color: #f39c12;
  box-shadow: 10px 0 0 #f39c12, -10px 0 0 #f39c12;
}

#ais-wrapper {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}

#ais-main {
  order: 2;
  width: calc(75% - 40px);
}

#algolia-hits {
  overflow: hidden;
}

#ais-facets {
  flex-direction: column;
  order: 1;
  width: calc(25% - 40px);
}

@media screen and (max-width: 1024px) {
  #ais-facets {
    margin-bottom: 15px;
  }
}

#ais-main,
#ais-facets {
  display: flex;
  flex-wrap: wrap;
}

@media screen and (max-width: 1024px) {
  #ais-main,
  #ais-facets {
    width: 100%;
  }
}

.ais-stats--time {
  display: none;
}

.ais-menu--list {
  padding-left: 10px;
}

.ais-hits__empty strong {
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  letter-spacing: 1.28px;
  text-transform: uppercase;
}

.ais-facets {
  margin-bottom: 40px;
}

.ais-facets .ais-menu--item,
.ais-facets .ais-hierarchical-menu--item {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  margin: 0 0 7px;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  .ais-facets .ais-hierarchical-menu--item {
    margin-bottom: 8px;
    width: calc(33.333% - 6px);
  }
  .ais-facets .ais-hierarchical-menu--item div {
    height: 100%;
  }
}

@media screen and (max-width: 700px) {
  .ais-facets .ais-hierarchical-menu--item {
    width: calc(50% - 5px);
  }
}

@media screen and (max-width: 500px) {
  .ais-facets .ais-hierarchical-menu--item {
    width: 100%;
  }
}

.ais-facets .ais-hierarchical-menu--list {
  display: flex;
  flex-direction: column;
  margin: 7px 0 0;
  padding-left: 10px;
}

@media screen and (max-width: 1024px) {
  .ais-facets .ais-hierarchical-menu--list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-left: 0;
  }
}

.ais-facets a .ais-hierarchical-menu--count,
.ais-facets a .ais-menu--count {
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  margin-left: 3px;
  position: relative;
  top: -2px;
}

@media screen and (max-width: 1024px) {
  .ais-facets a .ais-hierarchical-menu--count,
  .ais-facets a .ais-menu--count {
    margin-left: 8px;
    top: 0;
  }
}

.ais-facets .ais-hierarchical-menu--item__active a,
.ais-facets .ais-menu--item__active a {
  background-color: #9e846d;
  box-shadow: 10px 0 0 #9e846d, -10px 0 0 #9e846d;
}

@media screen and (max-width: 1024px) {
  .ais-facets .ais-hierarchical-menu--item__active a,
  .ais-facets .ais-menu--item__active a {
    box-shadow: none;
  }
}

.sort-options-wrapper {
  display: flex;
  flex-direction: column;
  margin: 7px 0 33px;
  padding-left: 10px;
}

@media screen and (max-width: 1024px) {
  .sort-options-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-left: 0;
  }
}

.sort-options-wrapper .sort-item-wrapper {
  line-height: 1.2;
  margin: 0 0 7px;
}

@media screen and (max-width: 1024px) {
  .sort-options-wrapper .sort-item-wrapper {
    margin-bottom: 8px;
    width: calc(33.333% - 6px);
  }
  .sort-options-wrapper .sort-item-wrapper div {
    height: 100%;
  }
}

@media screen and (max-width: 700px) {
  .sort-options-wrapper .sort-item-wrapper {
    width: calc(50% - 5px);
  }
}

@media screen and (max-width: 500px) {
  .sort-options-wrapper .sort-item-wrapper {
    width: 100%;
  }
}

.sort-options-wrapper .sort-item-wrapper.active a {
  background-color: #9e846d;
  box-shadow: 10px 0 0 #9e846d, -10px 0 0 #9e846d;
}

@media screen and (max-width: 1024px) {
  .sort-options-wrapper .sort-item-wrapper.active a {
    box-shadow: none;
  }
}

.ais-clear-all--link {
  color: #434f54;
  font-size: 18px;
  letter-spacing: 1.28px;
  line-height: 1.2;
  text-transform: uppercase;
}

.ais-clear-all--link:active, .ais-clear-all--link:focus {
  color: #434f54;
}

.ais-clear-all--link:hover {
  color: #da5b4a;
}

.ais-clear-all--link:hover::before {
  background-color: #da5b4a;
}

.ais-clear-all--link::before {
  background-color: #434f54;
  border-radius: 24px;
  color: #fff;
  content: '×';
  display: inline-block;
  float: left;
  font-size: 11px;
  height: 24px;
  margin-right: 8px;
  padding: 5px 8px;
  position: relative;
  top: -2px;
  transition: background-color .3s;
  width: 24px;
}

#algolia-search-box {
  margin: 0 0 74px;
  position: relative;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  #algolia-search-box {
    margin-top: 25px;
  }
}

#algolia-search-box input {
  background-color: #ecf1f1;
  border: 0;
  color: #434f54;
  font-family: "Typonine Sans Light", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 22px;
  height: auto;
  letter-spacing: .7px;
  line-height: 26px;
  margin: 0;
  outline: none;
  padding: 23px 65px 23px 30px;
  width: 100%;
}

@media screen and (max-width: 480px) {
  #algolia-search-box input {
    padding: 23px 65px 23px 18px;
  }
}

#algolia-search-box .search-icon {
  fill: #7f8c8d;
  position: absolute;
  right: 0;
  top: 21px;
}

@media screen and (max-width: 480px) {
  #algolia-search-box .search-icon {
    right: -8px;
  }
}

.ais-stats {
  font-size: 14px;
  position: absolute;
  top: 80px;
}

.ais-pagination--item {
  display: inline-block;
  padding: 3px;
}

.ais-pagination--item__disabled {
  display: none;
}

.ais-pagination--item__active {
  font-weight: bold;
}

.algolia-autocomplete {
  z-index: 999999 !important;
}

.aa-dropdown-menu {
  background-color: #006d70;
  border-top: 1px solid #00979d;
  color: #fff;
  font-size: 16px;
  margin-top: 7px;
  padding: 18px 25px 25px;
}

.aa-dropdown-menu.aa-with-1 {
  width: calc(100vw - 36px);
}

.aa-dropdown-menu.aa-without-1 {
  width: calc(100vw - 36px);
}

.aa-dropdown-menu.aa-with-3 {
  -webkit-transform: translate(-40px);
          transform: translate(-40px);
  width: 290px;
}

.aa-dropdown-menu.aa-without-3 {
  -webkit-transform: translate(-40px);
          transform: translate(-40px);
  width: 290px;
}

.aa-dropdown-menu .suggestion-count-wrapper:hover {
  color: #f1c40f;
}

.aa-dropdown-menu a {
  color: #fff;
  line-height: 1.35;
}

.aa-dropdown-menu a.suggestion-link {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}

.aa-dropdown-menu .autocomplete-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  font-family: "Typonine Sans Regular", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 15px;
  padding-bottom: 16px;
}

.aa-dropdown-menu .autocomplete-header-title {
  float: left;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.aa-dropdown-menu .suggestion-post-thumbnail {
  height: auto;
  margin-right: 16px;
  width: calc(35% - 8px);
}

.aa-dropdown-menu .suggestion-post-attributes {
  display: flex;
  flex-basis: auto;
  flex-grow: 1;
  width: calc(65% - 8px);
}

.aa-dropdown-menu .aa-suggestion {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  font-family: "Typonine Sans Regular", "Lucida Grande", Lucida, Verdana, sans-serif;
  font-size: 15px;
  padding: 14px 0;
}

.aa-dropdown-menu .aa-suggestion:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.aa-dropdown-menu .aa-suggestion em {
  color: #f1c40f;
  font-style: normal;
  letter-spacing: 1.28px;
  text-transform: uppercase;
}

.aa-dropdown-menu .suggestion-count {
  margin-left: 3.3em;
}

.aa-dropdown-menu .autocomplete-empty {
  padding: 6px 0;
  word-wrap: break-word;
}

.aa-dropdown-menu .autocomplete-empty .empty-query {
  letter-spacing: 1.28px;
  text-transform: uppercase;
}

#sidebar {
  font-size: 16px;
}

@media screen and (max-width: 1024px) {
  #sidebar {
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 1024px) {
  #sidebar #categories,
  #sidebar #archives {
    width: calc(50% - 15px);
  }
}

@media screen and (max-width: 600px) {
  #sidebar #categories,
  #sidebar #archives {
    width: 100%;
  }
}

#sidebar li {
  margin: 0 0 40px;
}

#sidebar .custom-select.open .dropdown-menu {
  max-height: 272px;
}

#sidebar .custom-select .dropdown-menu {
  max-height: 0;
  transition: max-height .3s;
}

#sidebar .custom-select li {
  margin: 0;
}

#sidebar .widgettitle {
  color: #9e846d;
  font-size: 18px;
  letter-spacing: 1.28px;
  line-height: 1.2;
  margin: 0 0 12px;
  text-transform: uppercase;
}

#sidebar .widget .screen-reader-text {
  display: none;
}

#sidebar .submit-your-project {
  margin-bottom: 55px;
}

@media screen and (max-width: 1024px) {
  #sidebar .submit-your-project {
    border-top: 1px solid #dae3e3;
    margin: 10px 0 35px;
    order: 2;
    padding-top: 30px;
  }
}

#sidebar .submit-your-project p {
  margin: 0 0 20px;
}

@media screen and (max-width: 1024px) {
  #sidebar .submit-your-project p {
    text-align: center;
  }
}

#sidebar .submit-your-project .btn-primary {
  display: inline-block;
  width: 100%;
}

@media screen and (max-width: 1024px) {
  #sidebar .submit-your-project .btn-primary {
    display: block;
    margin: 0 auto;
  }
}

@media screen and (max-width: 1024px) and (min-width: 480px) {
  #sidebar .submit-your-project .btn-primary {
    max-width: 200px;
  }
}

@media screen and (max-width: 1024px) {
  #sidebar .social-list {
    display: none;
  }
}

#sidebar .social-list ul {
  display: inline-block;
  margin-top: 6px;
  width: 100%;
}

#sidebar .social-list ul img {
  background-color: red;
  border-radius: 100%;
  height: 28px;
  margin-right: 10px;
  width: 28px;
}

#sidebar .social-list ul img.twitter {
  background-color: #54c1f2;
}

#sidebar .social-list ul img.gplus {
  background-color: #d34836;
}

#sidebar .social-list ul img.facebook {
  background-color: #3f65b6;
}

#sidebar .social-list ul img.youtube {
  background-color: #ec1e12;
}

#sidebar .social-list ul img.instagram {
  background: radial-gradient(circle farthest-corner at 35% 90%, #fec564, transparent 50%), radial-gradient(circle farthest-corner at 0 140%, #fec564, transparent 50%), radial-gradient(ellipse farthest-corner at 0 -25%, #5258cf, transparent 50%), radial-gradient(ellipse farthest-corner at 20% -50%, #5258cf, transparent 50%), radial-gradient(ellipse farthest-corner at 100% 0, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 60% -20%, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 100% 100%, #d9317a, transparent), -webkit-gradient(linear, left top, left bottom, from(#6559ca), color-stop(30%, #bc318f), color-stop(50%, #e33f5f), color-stop(70%, #f77638), to(#fec66d));
}

#sidebar .social-list ul img.flickr {
  background-color: #ff47a4;
}

#sidebar .social-list ul img.github {
  background-color: #000;
}

#sidebar .social-list ul li {
  font-size: 16px;
  margin: 0 0 10px;
  transition: margin-left .3s;
}

#sidebar .social-list ul li:hover {
  margin-left: 10px;
}

#sidebar .social-list ul li a {
  align-items: center;
  display: flex;
}

.sidebar-accordion-btn {
  background-color: rgba(127, 203, 205, 0.5);
  border: 0;
  border-radius: 0;
  color: #fff;
  font-size: 20px;
  margin: 0;
  padding: 16px 22px;
  transition: background-color .3s;
  visibility: hidden;
  width: auto;
}

.sidebar-accordion-btn:hover {
  background-color: #7fcbcd;
  cursor: pointer;
}

.sidebar-accordion-btn:focus {
  outline: none;
}

@media screen and (max-width: 1024px) {
  .sidebar-accordion-btn {
    visibility: visible;
  }
}

.sidebar-block-menu .sidebar-accordion .sidebar-accordion-btn .arrow {
  align-items: center;
  display: flex;
  justify-content: center;
}

.sidebar-block-menu .sidebar-accordion .sidebar-accordion-btn .arrow::after {
  color: #fff;
  content: '✕';
  display: inline-block;
  font-size: 18px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  transition: -webkit-transform .3s;
  transition: transform .3s;
  transition: transform .3s, -webkit-transform .3s;
}

.sidebar-block-menu.open .sidebar-accordion .sidebar-accordion-btn .arrow::after {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}

.sidebar-block-menu {
  display: flex;
  flex-direction: column;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  width: 100%;
}

.sidebar-block-menu .block-menu {
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 1024px) {
  .sidebar-block-menu .block-menu {
    background-color: #ecf1f1;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    max-height: 0;
    order: 1;
    overflow: hidden;
    padding: 0 30px;
    transition: max-height .3s, padding .3s;
  }
}

@media screen and (max-width: 1024px) {
  .sidebar-block-menu.open .block-menu {
    max-height: 2000px;
    padding: 24px 30px;
  }
  .sidebar-block-menu .sidebar-accordion {
    order: 2;
  }
}

@media screen and (max-width: 1024px) {
  .sidebar-block-menu nav {
    align-items: flex-start;
    flex-direction: row;
    justify-content: space-around;
  }
}

.sidebar-block-menu h3 {
  color: #9e846d;
  font-size: 18px;
  letter-spacing: 1.28px;
  line-height: 1.2;
  margin: 0 0 12px;
  text-transform: uppercase;
}

.sidebar-block-menu h2 {
  align-items: center;
  background-color: #00979d;
  color: #fff;
  display: flex;
  font-size: 18px;
  justify-content: space-between;
  letter-spacing: 1.28px;
  line-height: 1.2;
  padding: 0 0 0 20px;
  text-transform: uppercase;
}

@media screen and (min-width: 1025px) {
  .sidebar-block-menu h2 {
    display: none;
  }
}

@media screen and (max-width: 1024px) {
  .sort-by-wrapper,
  #clear-all {
    width: 100%;
  }
}

@media screen and (max-width: 1024px) {
  .filter-categories-wrapper {
    width: 100%;
  }
}

.is-clear-icon {
  fill: #7f8c8d;
  position: absolute;
  right: 52px;
  top: 25px;
}

@media screen and (max-width: 480px) {
  .is-clear-icon {
    right: 46px;
  }
}

.is-clear-icon:hover {
  cursor: pointer;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2FyZHVpbm8tc2Fzcy9zcmMvX2FyZHVpbm8tc2Fzcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2FyZHVpbm8tc2Fzcy9zcmMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGVwcmVjYXRpb24td2FybmluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvX25lYXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L3NldHRpbmdzL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQvZnVuY3Rpb25zL19yZXRyaWV2ZS1uZWF0LXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdC9mdW5jdGlvbnMvX25lYXQtY29sdW1uLWRlZmF1bHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1jb2x1bW4td2lkdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1jb2x1bW4tcmF0aW8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1mbG9hdC1kaXJlY3Rpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1tZXJnZS1kZWZhdWx0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQvZnVuY3Rpb25zL19uZWF0LW9wcG9zaXRlLWRpcmVjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQvZnVuY3Rpb25zL19uZWF0LXBhcnNlLWNvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1wYXJzZS1tZWRpYS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQvZnVuY3Rpb25zL19uZWF0LWFwcGVuZC1ncmlkLXZpc3VhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQvbWl4aW5zL19ncmlkLWNvbGxhcHNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtY29sdW1uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtbWVkaWEuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L21peGlucy9fZ3JpZC1wdXNoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtc2hpZnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvY29yZS9uZWF0L21peGlucy9fZ3JpZC12aXN1YWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXJkdWluby1zYXNzL3NyYy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL191dGlscy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2FyZHVpbm8tc2Fzcy9zcmMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL19jaGVja2JveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2FyZHVpbm8tc2Fzcy9zcmMvX2lucHV0ZmllbGQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL19ub3RpZmljYXRpb25zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXJkdWluby1zYXNzL3NyYy9fcmFkaW9idXR0b24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL19zcGlubmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXJkdWluby1zYXNzL3NyYy9fdG9nZ2xlLnNjc3MiLCJwYXJ0aWFscy9iYXNlLnNjc3MiLCJwYXJ0aWFscy9jb21wb25lbnRzLnNjc3MiLCJwYXJ0aWFscy90d28tY29sdW1ucy1sYXlvdXQuc2NzcyIsInBhcnRpYWxzL3NpbmdsZS1jb2x1bW4tbGF5b3V0LnNjc3MiLCJwYXJ0aWFscy9zZWFyY2gtcmVzdWx0cy5zY3NzIiwicGFydGlhbHMvc2VhcmNoLXN1Z2dlc3Rpb25zLnNjc3MiLCJwYXJ0aWFscy9zaWRlYmFyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uL25vZGVfbW9kdWxlcy9hcmR1aW5vLXNhc3Mvc3JjL2FyZHVpbm8tc2Fzc1wiO1xuXG5AaW1wb3J0IFwicGFydGlhbHMvYmFzZVwiO1xuQGltcG9ydCBcInBhcnRpYWxzL2NvbXBvbmVudHNcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy90d28tY29sdW1ucy1sYXlvdXRcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9zaW5nbGUtY29sdW1uLWxheW91dFwiO1xuQGltcG9ydCBcInBhcnRpYWxzL3NlYXJjaC1yZXN1bHRzXCI7XG5AaW1wb3J0IFwicGFydGlhbHMvc2VhcmNoLXN1Z2dlc3Rpb25zXCI7XG5AaW1wb3J0IFwicGFydGlhbHMvc2lkZWJhclwiOyIsIkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndXRpbHMnO1xuXG5AaW1wb3J0ICdidXR0b25zJztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2lucHV0ZmllbGQnO1xuQGltcG9ydCAnbm90aWZpY2F0aW9ucyc7XG5AaW1wb3J0ICdyYWRpb2J1dHRvbic7XG5AaW1wb3J0ICdzcGlubmVyJztcbkBpbXBvcnQgJ3RvZ2dsZSc7XG4iLCJAaW1wb3J0ICdub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2JvdXJib24nO1xuQGltcG9ydCAnbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9jb3JlL25lYXQnO1xuXG4kYW5pbWF0aW9uLXRpbWluZy1iYXNlOiAuNnM7XG4kYW5pbWF0aW9uLXRpbWluZy1xdWljazogLjNzO1xuXG4kYW5pbWF0aW9uLWVhc2luZy1iYXNlOiBjdWJpYy1iZXppZXIoMSwgMCwgMCwgMSk7XG5cbiRoZWFkZXItei1pbmRleDogMTAwMDtcblxuLy8gQXJkdWlubyBDb2xvcnMgXG4kdGVhbDA6ICAgICAgICAgICAgICAgIzdmY2JjZDtcbiR0ZWFsMTogICAgICAgICAgICAgICAjMGNhMWE2O1xuJHRlYWwyOiAgICAgICAgICAgICAgICMwMDk3OWQ7XG4kdGVhbDM6ICAgICAgICAgICAgICAgIzAwODE4NDtcbiR0ZWFsNDogICAgICAgICAgICAgICAjMDA2ZDcwO1xuJHRlYWw1OiAgICAgICAgICAgICAgICMwMDVjNWY7XG4kdGVhbDY6ICAgICAgICAgICAgICAgIzgwY2JjZDtcbiR0ZWFsNzogICAgICAgICAgICAgICAjYTVmMmVlO1xuJGJhc2VncmF5OiAgICAgICAgICAgICNmNGY0ZjQ7XG4kZmVhdGhlcjogICAgICAgICAgICAgI2Y3ZjlmOTtcbiRjbG91ZHM6ICAgICAgICAgICAgICAjZWNmMWYxO1xuJGZvZzogICAgICAgICAgICAgICAgICNkYWUzZTM7XG4kc21va2U6ICAgICAgICAgICAgICAgI2M5ZDJkMjtcbiRzaWx2ZXI6ICAgICAgICAgICAgICAjYmRjN2M3O1xuJGNvbmNyZXRlOiAgICAgICAgICAgICM5NWE1YTY7XG4kYXNiZXN0b3M6ICAgICAgICAgICAgIzdmOGM4ZDtcbiRncmlzOiAgICAgICAgICAgICAgICAjNGU1YjYxO1xuJGR1c3Q6ICAgICAgICAgICAgICAgICM0MzRmNTQ7XG4kamV0OiAgICAgICAgICAgICAgICAgIzM3NDE0NjtcbiRjaGFyY29hbDogICAgICAgICAgICAjMmMzNTNhO1xuJG9ueXg6ICAgICAgICAgICAgICAgICMxNzFlMjE7XG4kc3VuZmxvd2VyOiAgICAgICAgICAgI2YxYzQwZjtcbiRjYXJyb3Q6ICAgICAgICAgICAgICAjZjM5YzEyO1xuJG9yYW5nZTogICAgICAgICAgICAgICNlNjdlMjI7XG4kcHVta2luOiAgICAgICAgICAgICAgI2QzNTQwMDtcbiRnb2xkOiAgICAgICAgICAgICAgICAjOWU4NDZkO1xuJGxpZ2h0YnJvbnplOiAgICAgICAgICNiY2FjOTk7XG4kbm90aWZ5c3VjY2VzczogICAgICAgIzFkYTA4NjtcbiRub3RpZnlzdWNjZXNzbGlnaHQ6ICByZ2JhKDI5LCAxNjAsIDEzNCwgLjg1KTtcbiRub3RpZnllcnJvcjogICAgICAgICAjZGE1YjRhO1xuJG5vdGlmeWVycm9ybGlnaHQ6ICAgIHJnYmEoMjE4LCA5MSwgNzQsIC44NSk7XG4kbm90aWZ5d2FybmluZzogICAgICAgI2YxYzQwZjtcbiRub3RpZnlpbmZvOiAgICAgICAgICAjOTVhNWE2O1xuJGJsYWNrOiAgICAgICAgICAgICAgICMwMDA7XG4kd2hpdGU6ICAgICAgICAgICAgICAgI2ZmZjtcblxuJGZhY2Vib29rOiAgICAgICAgICAgIzNmNjViNjtcbiR0d2l0dGVyOiAgICAgICAgICAgICM1NGMxZjI7XG4kZ3BsdXM6ICAgICAgICAgICAgICAjZDM0ODM2O1xuJGluc3RhZ3JhbTogICAgICAgICAgIzhhM2FiOTtcbiRmbGlja3I6ICAgICAgICAgICAgICNmZjQ3YTQ7XG4keW91dHViZTogICAgICAgICAgICAjZWMxZTEyO1xuIiwiLy8gQm91cmJvbiA0LjMuNFxuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTcgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL2RlcHJlY2F0aW9uLXdhcm5pbmdzXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRW5hYmxlIG9yIGRpc2FibGUgb3V0cHV0IG9mIEJvdXJib27igJlzIGRlcHJlY2F0aW9uLXJlbGF0ZWQgU2FzcyB3YXJuaW5ncy5cbi8vLyBUaGlzIHZhcmlhYmxlIG11c3QgYmUgZGVjbGFyZWQgX2JlZm9yZV8gaW1wb3J0aW5nIEJvdXJib24uXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUaHJvd3MgU2FzcyB3YXJuaW5ncyB0byBhbm5vdW5jZSBsaWJyYXJ5IGRlcHJlY2F0aW9ucy4gWW91IGNhbiBkaXNhYmxlIHRoZW1cbi8vLyBieSBzZXR0aW5nIHRoZSBgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzYCB2YXJpYWJsZSB0byBgZmFsc2VgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsICRtZXNzYWdlOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgI3skZmVhdHVyZX1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgICAgXCJyZW1vdmVkIGluIDUuMC4wLiAjeyRtZXNzYWdlfVwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZygkZmVhdHVyZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoJGZlYXR1cmUsIFwiV2Ugc3VnZ2VzdCB1c2luZyBhbiBhdXRvbWF0ZWQgXCIgK1xuICAgIFwicHJlZml4aW5nIHRvb2wsIGxpa2UgQXV0b3ByZWZpeGVyLlwiKTtcbn1cbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBhc3NpZ24taW5wdXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29udGFpbnNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zLWZhbHN5YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxlbmd0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLWxpZ2h0YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbnVtYmVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtc2l6ZWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZW1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgcmVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgc3RyaXAtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMCBhbmQgcmVwbGFjZWQgYnkgdGhlIGBzdHJpcC11bml0YCBmdW5jdGlvbi5cIjtcbiAgfVxuXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lc2AgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZWAgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB1bnBhY2tgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2NvbnZlcnQtdW5pdHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgXCIgK1xuICAgIFwiYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29sbGFwc2UtZGlyZWN0aW9uYWxzYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiZGlyZWN0aW9uYWwtcHJvcGVydHlcIik7XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtdXJsLXByZWZpeGVyYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC1zb3VyY2UtZGVjbGFyYXRpb25gIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItYW5nbGUtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1ncmFkaWVudC1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9wb3NpdGlvbi1mbGlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWFyZy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmVuZGVyLWdyYWRpZW50c2AgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3NoYXBlLXNpemUtc3RyaXBwZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3N0ci10by1udW1gIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLW5hbWVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIpO1xuXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGlyZWN0aW9uXCIpO1xuXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiKTtcblxuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiKTtcblxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFwcGVhcmFuY2VcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tmYWNlLXZpc2liaWxpdHlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kXCIpO1xuXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZ3JvdW5kLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3JkZXItaW1hZ2VcIik7XG5cbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNhbGNcIik7XG5cbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uc1wiKTtcblxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tY291bnRcIik7XG5cbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWdhcFwiKTtcblxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWZpbGxcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGVcIik7XG5cbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLWNvbG9yXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1zdHlsZVwiKTtcblxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLXdpZHRoXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXNwYW5cIik7XG5cbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi13aWR0aFwiKTtcblxuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZpbHRlclwiKTtcblxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94XCIpO1xuXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXktYm94XCIpO1xuXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JpZW50XCIpO1xuXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LXBhY2tcIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1hbGlnblwiKTtcblxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZGlyZWN0aW9uXCIpO1xuXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1saW5lc1wiKTtcblxuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1vcmRpbmFsLWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWZsZXgtZ3JvdXBcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImRpc3BsYXlcIik7XG5cbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4XCIpO1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1kaXJlY3Rpb25cIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXdyYXBcIik7XG5cbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1mbG93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwib3JkZXJcIik7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1ncm93XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LXNocmlua1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWJhc2lzXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJqdXN0aWZ5LWNvbnRlbnRcIik7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24taXRlbXNcIik7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1zZWxmXCIpO1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tY29udGVudFwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmb250LWZlYXR1cmUtc2V0dGluZ3NcIik7XG5cbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJoaWRwaVwiKTtcblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaHlwaGVuc1wiKTtcblxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaW1hZ2UtcmVuZGVyaW5nXCIpO1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwia2V5ZnJhbWVzXCIpO1xuXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwibGluZWFyLWdyYWRpZW50XCIpO1xuXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlXCIpO1xuXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBlcnNwZWN0aXZlLW9yaWdpblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGxhY2Vob2xkZXJcIik7XG5cbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInJhZGlhbC1ncmFkaWVudFwiKTtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwic2VsZWN0aW9uXCIpO1xyXG5cclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvblwiKTtcblxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWxpbmVcIik7XG5cbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1zdHlsZVwiKTtcblxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tY29sb3JcIik7XG5cbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm1cIik7XG5cbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tb3JpZ2luXCIpO1xuXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2Zvcm0tc3R5bGVcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uXCIpO1xuXG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiKTtcblxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXCIpO1xuXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi1kZWxheVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidXNlci1zZWxlY3RcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcInJldGluYS1pbWFnZVwiKTtcblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiaW5saW5lLWJsb2NrXCIpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwiYnV0dG9uXCIpO1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWdyaWRgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZsZXgtZ3V0dGVyYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBncmlkLXdpZHRoYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBnb2xkZW4tcmF0aW9gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gWW91IGNhbiB1c2UgdGhlIGBtb2R1bGFyLXNjYWxlYCBmdW5jdGlvbiBpbnN0ZWFkLlwiO1xuICB9XG5cbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1zaXppbmdcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vIE5lYXQgMi4wLjBcbi8vIGh0dHA6Ly9uZWF0LmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEyIHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJuZWF0L3NldHRpbmdzL3NldHRpbmdzXCI7XG5cbkBpbXBvcnQgXCJuZWF0L2Z1bmN0aW9ucy9yZXRyaWV2ZS1uZWF0LXNldHRpbmdzXCI7XG5AaW1wb3J0IFwibmVhdC9mdW5jdGlvbnMvbmVhdC1jb2x1bW4tZGVmYXVsdFwiO1xuQGltcG9ydCBcIm5lYXQvZnVuY3Rpb25zL25lYXQtY29sdW1uLXdpZHRoXCI7XG5AaW1wb3J0IFwibmVhdC9mdW5jdGlvbnMvbmVhdC1jb2x1bW4tcmF0aW9cIjtcbkBpbXBvcnQgXCJuZWF0L2Z1bmN0aW9ucy9uZWF0LWZsb2F0LWRpcmVjdGlvblwiO1xuQGltcG9ydCBcIm5lYXQvZnVuY3Rpb25zL25lYXQtbWVyZ2UtZGVmYXVsdHNcIjtcbkBpbXBvcnQgXCJuZWF0L2Z1bmN0aW9ucy9uZWF0LW9wcG9zaXRlLWRpcmVjdGlvblwiO1xuQGltcG9ydCBcIm5lYXQvZnVuY3Rpb25zL25lYXQtcGFyc2UtY29sdW1uc1wiO1xuQGltcG9ydCBcIm5lYXQvZnVuY3Rpb25zL25lYXQtcGFyc2UtbWVkaWFcIjtcbkBpbXBvcnQgXCJuZWF0L2Z1bmN0aW9ucy9uZWF0LWFwcGVuZC1ncmlkLXZpc3VhbFwiO1xuXG5AaW1wb3J0IFwibmVhdC9taXhpbnMvZ3JpZC1jb2xsYXBzZVwiO1xuQGltcG9ydCBcIm5lYXQvbWl4aW5zL2dyaWQtY29sdW1uXCI7XG5AaW1wb3J0IFwibmVhdC9taXhpbnMvZ3JpZC1jb250YWluZXJcIjtcbkBpbXBvcnQgXCJuZWF0L21peGlucy9ncmlkLW1lZGlhXCI7XG5AaW1wb3J0IFwibmVhdC9taXhpbnMvZ3JpZC1wdXNoXCI7XG5AaW1wb3J0IFwibmVhdC9taXhpbnMvZ3JpZC1zaGlmdFwiO1xuQGltcG9ydCBcIm5lYXQvbWl4aW5zL2dyaWQtdmlzdWFsXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gVGhpcyB2YXJpYWJsZSBpcyBhIHNhc3MgbWFwIHRoYXQgb3ZlcnJpZGVzIE5lYXQncyBkZWZhdWx0IGdyaWQgc2V0dGluZ3MuXG4vLy8gVXNlIHRoaXMgdG8gZGVmaW5lIHlvdXIgcHJvamVjdCdzIGdyaWQgcHJvcGVydGllcyBpbmNsdXRpbmcgZ3V0dGVycyBhbmRcbi8vLyB0b3RhbCBjb2x1bW4gY291bnQuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbi8vL1xuLy8vIEBncm91cCBzZXR0aW5nc1xuLy8vXG4vLy8gQG5hbWUgTmVhdCBncmlkXG4vLy9cbi8vLyBAcHJvcGVydHkge251bWJlciAodW5pdGxlc3MpfSBjb2x1bW5zIFsxMl1cbi8vLyAgIERlZmF1bHQgbnVtYmVyIG9mIHRoZSB0b3RhbCBncmlkIGNvbHVtbnMuXG4vLy9cbi8vLyBAcHJvcGVydHkge251bWJlciAod2l0aCB1bml0KX0gZ3V0dGVyIFsyMHB4XVxuLy8vICAgRGVmYXVsdCBncmlkIGd1dHRlciB3aWR0aCBiZXR3ZWVuIGNvbHVtbnMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAkbmVhdC1ncmlkOiAoXG4vLy8gICAgIGNvbHVtbnM6IDEyLFxuLy8vICAgICBndXR0ZXI6IDIwcHgsXG4vLy8gICApO1xuXG4kbmVhdC1ncmlkOiAoKSAhZGVmYXVsdDtcblxuLy8vIElmIHlvdSBuZWVkIG11bHRpcGxlIGdyaWRzIGluIGEgc2luZ2xlIHByb2plY3QsIHlvdSBjYW4gZG9cbi8vLyB0aGlzIGJ5IGRlZmluaW5nIGEgbmV3IG1hcCBzdG9yZWQgd2l0aGluIGEgdmFyaWFibGUgb2YgeW91ciBjaG9vc2luZy4gVGhpc1xuLy8vIHZhcmlhYmxlIGNhbiB0aGVuIGJlIHBhc3NlZCBkaXJlY3RseSBpbiB0byBhbnkgb2YgTmVhdCdzIG1peGlucyBsaWtlXG4vLy8gW2BncmlkLWNvbHVtbigxMiwgJG15LWN1c3RvbS1ncmlkKWBdKCNncmlkLWNvbHVtbikuXG4vLy9cbi8vLyBDdXN0b20gZ3JpZHMgYXJlIGVzcGVjaWFsbHkgdXNlZnVsIHdpdGggW2BncmlkLW1lZGlhYF0oI2dyaWQtbWVkaWEpLiBCeVxuLy8vIGRlZmluaW5nIGEgYG1lZGlhYCBhdHRyaWJ1dGUgd2l0aGluIHlvdXIgY3VzdG9tIGdyaWQsIHlvdSBhcmUgYWJsZSB0byBlYXNpbHlcbi8vLyBkZWZpbmUgZ3V0dGVyIHdpZHRoIGFuZCB0b3RhbCBjb2x1bW4gY291bnQgYXMgd2VsbCB0aGUgYnJlYWtwb2ludCBhdCB3aGljaFxuLy8vIHRoZXkgc2hvdWxkIGFjdGl2YXRlLlxuLy8vXG4vLy8gQHR5cGUgbWFwXG4vLy9cbi8vLyBAZ3JvdXAgc2V0dGluZ3Ncbi8vL1xuLy8vIEBuYW1lIEN1c3RvbSBncmlkc1xuLy8vXG4vLy8gQHByb3BlcnR5IHtudW1iZXIgKHVuaXRsZXNzKX0gY29sdW1ucyBbMTJdXG4vLy8gICBOdW1iZXIgb2YgdGhlIHRvdGFsIGdyaWQgY29sdW1ucy5cbi8vL1xuLy8vIEBwcm9wZXJ0eSB7bnVtYmVyICh3aXRoIHVuaXQpfSBndXR0ZXIgWzIwcHhdXG4vLy8gICBHcmlkIGd1dHRlciB3aWR0aCBiZXR3ZWVuIGNvbHVtbnMuXG4vLy9cbi8vLyBAcHJvcGVydHkge251bWJlciAod2l0aCB1bml0KSB8IHN0cmluZyB8IG51bGx9IG1lZGlhIFtudWxsXVxuLy8vICAgVGhlIGBAbWVkaWFgIGRlZmluaXRpb24gdGhhdCBpcyB1c2VkIGJ5IHRoZSBbYGdyaWQtbWVkaWFgXSgjZ3JpZC1tZWRpYSlcbi8vLyAgIG1peGluIHRvIGRldGlybWluZSB0aGUgbWVkaWEgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwcm9wZXJ0eSB7Y29sb3J9IGNvbG9yIFtudWxsXVxuLy8vICAgVGhlIGNvbG9yIHVzZWQgYnkgW2BncmlkLXZpc3VhbGBdKCNncmlkLXZpc3VhbCkgdG8gY3JlYXRlIHRoZSBndWlkZXMuXG4vLy9cbi8vLyBAcHJvcGVydHkge3N0cmluZ30gZGlyZWN0aW9uIFtsdHJdXG4vLy8gICBUaGUgZmxvYXQgZGlyZWN0aW9uIHVzZWQgdGhyb3VnaG91dCB0aGUgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICRteS1jdXN0b20tZ3JpZDogKFxuLy8vICAgICBjb2x1bW5zOiAxMixcbi8vLyAgICAgZ3V0dGVyOiAyMHB4LFxuLy8vICAgICBtZWRpYTogMTIwMHB4LFxuLy8vICAgICBjb2xvcjogcmdiYSgjMDBkNGZmLCAwLjI1KSxcbi8vLyAgICAgZGlyZWN0aW9uOiBsdHIsXG4vLy8gICApO1xuLy8vXG4vLy8gICAkb3RoZXItY3VzdG9tLWdyaWQtZm9yLXByaW50OiAoXG4vLy8gICAgIGNvbHVtbnM6IDE0LFxuLy8vICAgICBndXR0ZXI6IDEuNXJlbSxcbi8vLyAgICAgbWVkaWE6IHByaW50LFxuLy8vICAgKTtcbi8vL1xuXG4kbmVhdC1jdXN0b20tZ3JpZDogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gVGhpcyBmdW5jdGlvbiByZWNpdmVzIGEgZ3JpZCBtYXAgYW5kIG1lcmdlcyBpdCB3aXRoIE5lYXQncyBkZWZhdWxzLlxuLy8vIEl0IHRoZW4gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IHRoYXQgaGFzIGJlZW4gcGFzc2VkIHRvIGl0LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHttYXB9ICRncmlkXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHNldHRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2Jvb2xlYW4gfCBjb2xvciB8IGxpc3QgfCBudW1iZXIgfCBzdHJpbmd9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRuZWF0LWdyaWQsIGNvbHVtbnMpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsICRzZXR0aW5nKSB7XG4gICRfZ3JpZC1zZXR0aW5nczogbWFwLW1lcmdlKF9uZWF0LW1lcmdlLWRlZmF1bHRzKCRuZWF0LWdyaWQpLCAkZ3JpZCk7XG4gIEByZXR1cm4gbWFwLWdldCgkX2dyaWQtc2V0dGluZ3MsICRzZXR0aW5nKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBEZXRlcm1pbmUgaWYgYSBjb2x1bW4gY291bnQgaGFzIGJlZW4gZ2l2ZW4uXG4vLy8gSWYgbm8gY29sdW1ucyBoYXZlIGJlZW4gZ2l2ZW4gcmV0dXJuIHRoZSBncmlkJ3MgdG90YWwgY29sdW1uIGNvdW50LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHttYXB9ICRncmlkXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAodW5pdGxlc3MpIHwgbnVsbH0gJGNvbHVtbnNcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlcn1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9uZWF0LWNvbHVtbi1kZWZhdWx0KCRuZWF0LWdyaWQsIDQpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9uZWF0LWNvbHVtbi1kZWZhdWx0KCRncmlkLCAkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgPT0gbnVsbCB7XG4gICAgJF9ncmlkLWNvbHVtbnM6IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGNvbHVtbnMpO1xuICAgIEByZXR1cm4gJF9ncmlkLWNvbHVtbnM7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJGNvbHVtbnM7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBSZXR1cm4gYSBjYWx1bGF0ZWQgY29sdW1uIHdpZHRoIHRoYXQgY2FuIHRoZW4gYmUgcGFzc2VkIGluIHRvIGEgYGNhbGMoKWAuXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWRcbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyfSAkY29sdW1uc1xuLy8vXG4vLy8gQHJldHVybiB7c3RyaW5nfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgX25lYXQtY29sdW1uLXdpZHRoKCRuZWF0LWdyaWQsIDQpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9uZWF0LWNvbHVtbi13aWR0aCgkZ3JpZCwgJGNvbHVtbnMpIHtcbiAgJF9jb2x1bW4tcmF0aW86IF9uZWF0LWNvbHVtbi1yYXRpbygkZ3JpZCwgJGNvbHVtbnMpO1xuICAkX2d1dHRlcjogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgZ3V0dGVyKTtcblxuICBAaWYgJF9ndXR0ZXIgPT0gMCB7XG4gICAgQHJldHVybiB1bnF1b3RlKFwiI3twZXJjZW50YWdlKCRfY29sdW1uLXJhdGlvKX1cIik7XG4gIH0gQGVsc2Uge1xuICAgICRfZ3V0dGVyLWFmZm9yZGFuY2U6ICRfZ3V0dGVyICsgKCRfZ3V0dGVyICogJF9jb2x1bW4tcmF0aW8pO1xuICAgIEByZXR1cm4gdW5xdW90ZShcIiN7cGVyY2VudGFnZSgkX2NvbHVtbi1yYXRpbyl9IC0gI3skX2d1dHRlci1hZmZvcmRhbmNlfVwiKTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIERldGVybWluZSB0aGUgcmF0aW8gb2YgYCRjb2x1bW5zYCB0byB0aGUgdG90YWwgY29sdW1uIGNvdW50LlxuLy8vIElmIGAkY29sdW1uc2AgaXMgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgdGhleSBhcmUgaGFuZGVkIHRvXG4vLy8gYF9uZWF0LXBhcnNlLWNvbHVtbnMoKWAgd2hpY2ggd2lsbCBkZXRpcm1pbmUgdGhlIHRvdGFsIGNvbHVtbnMgYW5kIHVzZSB0aGlzXG4vLy8gdmFsdWUgaW5zdGVhZCBvZiBgdG90YWwtY29sdW1uc2AuXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWRcbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyIHwgbGlzdH0gJGNvbHVtbnNcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlcn1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9uZWF0LWNvbHVtbi1yYXRpbygkZ3JpZCwgMylcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX25lYXQtY29sdW1uLXJhdGlvKCRncmlkLCAkY29sdW1ucykge1xuICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSA+IDEge1xuICAgIEByZXR1cm4gbnRoKCRjb2x1bW5zLCAxKSAvIF9uZWF0LXBhcnNlLWNvbHVtbnMoJGNvbHVtbnMpO1xuICB9IEBlbHNlIGlmICRjb2x1bW5zIHtcbiAgICBAcmV0dXJuICRjb2x1bW5zIC8gX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgY29sdW1ucyk7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBSZXR1cm4gdGhlIGZsb2F0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bWFwfSAkZ3JpZFxuLy8vXG4vLy8gQHJldHVybiB7c3RyaW5nfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgX25lYXQtZmxvYXQtZGlyZWN0aW9uKCRuZWF0LWdyaWQpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCkge1xuICAkX2RpcmVjdGlvbjogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgZGlyZWN0aW9uKTtcbiAgJF9mbG9hdC1kaXJlY3Rpb246IG51bGw7XG4gIEBpZiAkX2RpcmVjdGlvbiA9PSBcImx0clwiIHtcbiAgICAgICRfZmxvYXQtZGlyZWN0aW9uOiBsZWZ0O1xuICB9IEBlbHNlIGlmICRfZGlyZWN0aW9uID09IFwicnRsXCIge1xuICAgICRfZmxvYXQtZGlyZWN0aW9uOiByaWdodDtcbiAgfVxuICBAcmV0dXJuICRfZmxvYXQtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIEFwcGx5IE5lYXQncyBkZWZhdWx0IHByb3BlcnRpZXMgdG8gdW5kZWZpbmVkIHZhbHVlcyB3aXRoaW4gYSBtYXAuXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWRcbi8vL1xuLy8vIEByZXR1cm4ge21hcH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJG5lYXQtZ3JpZClcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX25lYXQtbWVyZ2UtZGVmYXVsdHMoJGdyaWQpIHtcbiAgJF9tZXJnZWQtZ3JpZDogbWFwLW1lcmdlKChcbiAgICBjb2x1bW5zOiAxMixcbiAgICBndXR0ZXI6IDIwcHgsXG4gICAgbWVkaWE6IG51bGwsXG4gICAgY29sb3I6IHJnYmEoIzAwZDRmZiwgMC4yNSksXG4gICAgZGlyZWN0aW9uOiBsdHIsXG4gICksICRncmlkKTtcblxuICBAcmV0dXJuICRfbWVyZ2VkLWdyaWQ7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gUmV0dXJuIHRoZSBvcHBvaXRlIG9mIHRoZSBmbG9hdCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWRcbi8vL1xuLy8vIEByZXR1cm4ge3N0cmluZ31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9uZWF0LW9wcG9zaXRlLWRpcmVjdGlvbigkbmVhdC1ncmlkKVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfbmVhdC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGdyaWQpIHtcbiAgJF9kaXJlY3Rpb246IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGRpcmVjdGlvbik7XG4gICRfZmxvYXQtZGlyZWN0aW9uOiBudWxsO1xuICBAaWYgJF9kaXJlY3Rpb24gPT0gXCJsdHJcIiB7XG4gICAgICAkX2Zsb2F0LWRpcmVjdGlvbjogcmlnaHQ7XG4gIH0gQGVsc2UgaWYgJF9kaXJlY3Rpb24gPT0gXCJydGxcIiB7XG4gICAgJF9mbG9hdC1kaXJlY3Rpb246IGxlZnQ7XG4gIH1cbiAgQHJldHVybiAkX2Zsb2F0LWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBQYXJzZSBhIGNvbHVtbiBjb3VudCBsaWtlIGAzIG9mIDVgIGFuZCByZXR1ciB0aGUgdG90YWwgY29sb3VtbiBjb3VudC5cbi8vLyBUaGlzIGlzIHRvIGFsbG93IGEgc2hvcnRoYW5kIGZvciBjdXN0b20gZ3JpZHMgd2l0aG91dCB1c2luZyBhIHNldHRpbmdzIG1hcC5cbi8vL1xuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkc3BhblxuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgX25lYXQtcGFyc2UtY29sdW1ucygzIG9mIDUpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9uZWF0LXBhcnNlLWNvbHVtbnMoJHNwYW4pIHtcbiAgQGlmIGxlbmd0aCgkc3BhbikgPT0gMyB7XG4gICAgJF90b3RhbC1jb2x1bW5zOiBudGgoJHNwYW4sIDMpO1xuICAgIEByZXR1cm4gJF90b3RhbC1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc3BhbikgPT0gMiBvciBpZiBsZW5ndGgoJHNwYW4pID49IDMge1xuICAgIEBlcnJvciBcImAkY29sdW1uYCBzaG91bGQgY29udGFpbiAyIHZhbHVlcywgc2VwZXJhdGVkIGJ5IGFuIGBvZmBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIFBhcnNlIG1lZGlhIHR5cGVzLiBJZiB0aGUgcHJvcGVydHkgaXMgYSBzdHJpbmcgdGhlbiByZXR1cm4gaXQsIG90aGVyd2lzZVxuLy8vIGFzc3VtZSBzY3JlZW4gYW5kIG1pbi13aWR0aC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nIHwgbnVtYmVyICh3aXRoIHVuaXQpfSAkbWVkaWFcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlcn1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9uZWF0LXBhcnNlLW1lZGlhKCRncmlkLCAxMDAwcHgpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9uZWF0LXBhcnNlLW1lZGlhKCRtZWRpYSkge1xuICBAaWYgdHlwZS1vZigkbWVkaWEpID09IG51bWJlciB7XG4gICAgQHJldHVybiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRtZWRpYX0pXCI7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkbWVkaWEpID09IHN0cmluZyB7XG4gICAgQHJldHVybiBcIiN7JG1lZGlhfVwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gQXBwZW5kIGF0dHJpYnV0ZXMgdG8gYSB0aGUgYCRfZ3JpZC12aXN1YWxgIHZhcmlhYmxlIGluIGBncmlkLXZpc3VhbGAgbWl4aW5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bWFwfSAkZ3JpZFxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHVuaXRsZXNzKSB8IG51bGx9ICRjb2x1bW5zXG4vLy9cbi8vLyBAcmV0dXJuIHtudW1iZXJ9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBfbmVhdC1jb2x1bW4tZGVmYXVsdCgkbmVhdC1ncmlkLCA0KVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfbmVhdC1hcHBlbmQtZ3JpZC12aXN1YWwoJGdyaWQtdmlzdWFsLWxpc3QsICRhdHRyaWJ1dGVzKSB7XG4gIEBlYWNoICRhdHRyaWJ1dGUgaW4gJGF0dHJpYnV0ZXMge1xuICAgICRncmlkLXZpc3VhbC1saXN0OiBhcHBlbmQoJGdyaWQtdmlzdWFsLWxpc3QsICRhdHRyaWJ1dGUsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtdmlzdWFsLWxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gQ3JlYXRlcyBjb2xsYXBzZWQgZ3JpZCBvYmplY3QgdGhhdCBjb25zdW1lcyB0aGUgZ3V0dGVycyBvZiBpdHMgY29udGFpbmVyLFxuLy8vIGZvciB1c2UgaW4gbmVzdGVkIGxheW91dHMuXG4vLy9cbi8vLyBAZ3JvdXAgZmVhdHVyZXNcbi8vL1xuLy8vIEBuYW1lIEdyaWQgY29sbGFwc2Vcbi8vL1xuLy8vIEBhcmd1bWVudCB7bWFwfSAkZ3JpZCBbJG5lYXQtZ3JpZF1cbi8vLyAgIFRoZSBncmlkIHRvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGNvbGxhcHNlZCBjb250YWluZXIuXG4vLy8gICBCeSBkZWZhdWx0LCB0aGUgZ2xvYmFsIGAkbmVhdC1ncmlkYCB3aWxsIGJlIHVzZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtY29sbGFwc2U7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcbi8vLyAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQwcHgpO1xuLy8vICAgfVxuXG5AbWl4aW4gZ3JpZC1jb2xsYXBzZSgkZ3JpZDogJG5lYXQtZ3JpZCkge1xuICAkX2dyaWQtZ3V0dGVyOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBndXR0ZXIpO1xuXG4gIEBpZiB1bml0KCRfZ3JpZC1ndXR0ZXIpID09IFwiJVwiIHtcbiAgICBAd2FybiBcImBncmlkLWNvbGxhcHNlYCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHBlcmNlbnRhZ2UgYmFzZWQgZ3V0dGVycy5cIjtcbiAgfVxuXG4gIG1hcmdpbi0je19uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCl9OiAtKCRfZ3JpZC1ndXR0ZXIpO1xuICBtYXJnaW4tI3tfbmVhdC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGdyaWQpfTogLSgkX2dyaWQtZ3V0dGVyKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICN7KCRfZ3JpZC1ndXR0ZXIgKiAyKX0pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiBvZiByZXF1ZXN0ZWQgc2l6ZS5cbi8vL1xuLy8vIEBncm91cCBmZWF0dXJlc1xuLy8vXG4vLy8gQG5hbWUgR3JpZCBjb2x1bW5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh1bml0bGVzcyl9ICRjb2x1bW5zIFtudWxsXVxuLy8vICAgU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuIGJhc2VkIG9uIHRoZSB0b3RhbFxuLy8vICAgY29sdW1ucyBvZiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhpcyBjYW4gYWxzbyBiZSBkZWZpbmVkIGluIGEgc2hvcnRoYW5kIHN5bnRheHQgd2hpY2ggYWxzbyBjb250YWlucyB0aGVcbi8vLyAgIHRvdGFsIGNvbHVtbiBjb3VudCBzdWNoIGFzIGAzIG9mIDVgLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHttYXB9ICRncmlkIFskbmVhdC1ncmlkXVxuLy8vICAgVGhlIGdyaWQgdG8gYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY29sdW1uLlxuLy8vICAgQnkgZGVmYXVsdCwgdGhlIGdsb2JhbCBgJG5lYXQtZ3JpZGAgd2lsbCBiZSB1c2VkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigzKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogY2FsYygyNSUgLSAyNXB4KTtcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuLy8vICAgfVxuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IG51bGwsICRncmlkOiAkbmVhdC1ncmlkKSB7XG4gICRjb2x1bW5zOiBfbmVhdC1jb2x1bW4tZGVmYXVsdCgkZ3JpZCwgJGNvbHVtbnMpO1xuICAkX2dyaWQtY29sdW1uczogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgY29sdW1ucyk7XG4gICRfZ3JpZC1ndXR0ZXI6IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGd1dHRlcik7XG5cbiAgd2lkdGg6IGNhbGMoI3tfbmVhdC1jb2x1bW4td2lkdGgoJGdyaWQsICRjb2x1bW5zKX0pO1xuICBmbG9hdDogX25lYXQtZmxvYXQtZGlyZWN0aW9uKCRncmlkKTtcbiAgbWFyZ2luLSN7X25lYXQtZmxvYXQtZGlyZWN0aW9uKCRncmlkKX06ICRfZ3JpZC1ndXR0ZXI7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29udGFpbmVyIHdpdGggY2xlYXJmaXguXG4vLy9cbi8vLyBAZ3JvdXAgZmVhdHVyZXNcbi8vL1xuLy8vIEBuYW1lIEdyaWQgY29udGFpbmVyXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWQgWyRuZWF0LWdyaWRdXG4vLy8gICBUaGUgZ3JpZCB0byBiZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb250YWluZXIuXG4vLy8gICBCeSBkZWZhdWx0LCB0aGUgZ2xvYmFsIGAkbmVhdC1ncmlkYCB3aWxsIGJlIHVzZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtY29udGFpbmVyO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICB9XG5cbkBtaXhpbiBncmlkLWNvbnRhaW5lcigkZ3JpZDogJG5lYXQtZ3JpZCkge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIGBncmlkLW1lZGlhYCBhbGxvd3MgeW91IHRvIGNoYW5nZSB5b3VyIGxheW91dCBiYXNlZCBvbiBhIG1lZGlhIHF1ZXJ5LlxuLy8vIEZvciBleGFtcGxlLCBhbiBvYmplY3QgY2FuIHNwYW4gMyBjb2x1bW5zIG9uIHNtYWxsIHNjcmVlbnMgYW5kIDYgY29sdW1uc1xuLy8vIG9uIGxhcmdlIHNjcmVlbnMuXG4vLy9cbi8vLyBZb3UgY2FuIHRha2UgdGhpcyBhIHN0ZXAgZnVydGhlciBhbmQgc2V0IGRpZmZlcmVudCBncmlkIGF0dHJpYnV0ZXMgbGlrZVxuLy8vIGd1dHRlciBzaXplIGFuZCB0b3RhbCBjb2x1bW4gY291bnQgZm9yIGVhY2ggbWVkaWEgcXVlcnkuIFNvLCBmb3IgZXhhbXBsZSxcbi8vLyB5b3UgY2FuIGhhdmUgYSBgMXJlbWAgZ3V0dGVyIG9uIHNtYWxsIHNjcmVlbnMsIGFuZCBhIGAycmVtYCBndXR0ZXIgb24gbGFyZ2Vcbi8vLyBzY3JlZW5zLlxuLy8vXG4vLy8gQGdyb3VwIGZlYXR1cmVzXG4vLy9cbi8vLyBAbmFtZSBHcmlkIG1lZGlhXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWRcbi8vLyAgIFRoZSBncmlkIHRvIGJlIHVzZWQgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgYmxvY2suXG4vLy8gICBUaGlzIGdyaWQgc2hvdWxkIGluY2x1ZGUgdGhlIGBtZWRpYWAgcHJvcGVydHkgdG8gZGV0ZXJtaW5lIHRoZSBleHByZXNzaW9uXG4vLy8gICBmb3IgdGhlIG1lZGlhIHF1ZXJ5LlxuLy8vXG4vLy8gQGNvbnRlbnRcbi8vLyAgIEdyaWQgbWVkaWEgd2lsbCB0ZW1wb3JhcmlseSB0aGUgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ3JpZCB3aXRoIHRoZVxuLy8vICAgYXR0cmlidXRlcyBvZiB0aGUgY3VzdG9tIGdyaWQuIFRoaXMgY2hhbmdlIGlzIHNjb3BlZCB0byB3aXRoaW4gdGhlIG1peGluXG4vLy8gICBibG9jaywgYW5kIG9uY2UgdGhlIG1peGluIGhhcyBlbmRlZCB0aGUgZGVmYXVsdCBncmlkIHdpbGwgcmV2ZXJ0IHRvIGl0c1xuLy8vICAgb3JpZ2luYWwgc3RhdGUgYXMgZGVmaW5lZCBieSBgJG5lYXQtZ3JpZGAuIFRoaXMgYWxsb3dzIGZvciBkaWZmZXJlbnRcbi8vLyAgIGd1dHRlciB3aWR0aCBhbmQgY29sdW1uIGNvdW50IGJhc2VkIG9uIHNjcmVlbiBzaXplIG9yIG90aGVyIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAkY3VzdG9tLW5lYXQtZ3JpZDogKFxuLy8vICAgICBjb2x1bW5zOiAxMixcbi8vLyAgICAgZ3V0dGVyOiA1MHB4LFxuLy8vICAgICBtZWRpYTogMTAwMHB4LFxuLy8vICAgKTtcbi8vL1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigzKTtcbi8vL1xuLy8vICAgICBAaW5jbHVkZSBncmlkLW1lZGlhKCRjdXN0b20tbmVhdC1ncmlkKXtcbi8vLyAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBjYWxjKDI1JSAtIDI1cHgpO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICB3aWR0aDogY2FsYyg1MCUgLSA3NXB4KTtcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tbGVmdDogNTBweDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AbWl4aW4gZ3JpZC1tZWRpYSgkZ3JpZCkge1xuICAkX21lZGlhOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBtZWRpYSk7XG4gICRfcXVlcnk6IF9uZWF0LXBhcnNlLW1lZGlhKCRfbWVkaWEpO1xuXG4gIEBtZWRpYSAjeyRfcXVlcnl9IHtcbiAgICAkX2RlZmF1bHQtbmVhdC1ncmlkOiAkbmVhdC1ncmlkO1xuICAgICRuZWF0LWdyaWQ6IG1hcC1tZXJnZSgkbmVhdC1ncmlkLCAkZ3JpZCkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgICAkbmVhdC1ncmlkOiAkX2RlZmF1bHQtbmVhdC1ncmlkICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBQdXNoIG9yIHB1bGwgYSBncmlkIGNvbHVtbiBieSBtYW5pcHVsYXRpbmcgaXRzIGxlZnQgbWFyZ2luLlxuLy8vXG4vLy8gQGdyb3VwIGZlYXR1cmVzXG4vLy9cbi8vLyBAbmFtZSBHcmlkIHB1c2hcbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh1bml0bGVzcyl9ICRwdXNoIFtmYWxzZV1cbi8vLyAgIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBwdXNoIHRoZSBjb2x1bW4uXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWQgWyRuZWF0LWdyaWRdXG4vLy8gICBUaGUgZ3JpZCB0byBiZSB1c2VkIHRvIGRldGlybWluZSBob3cgZmFyIHRvIHB1c2ggdGhlIGNvbHVtbi5cbi8vLyAgIEJ5IGRlZmF1bHQsIHRoZSBnbG9iYWwgYCRuZWF0LWdyaWRgIHdpbGwgYmUgdXNlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZ3JpZC1wdXNoKDMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSAtIDI1cHggKyA0MHB4KTtcbi8vLyAgIH1cblxuQG1peGluIGdyaWQtcHVzaCgkcHVzaDogZmFsc2UsICRncmlkOiAkbmVhdC1ncmlkKSB7XG4gICRfZ3JpZC1jb2x1bW5zOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBjb2x1bW5zKTtcbiAgJF9ncmlkLWd1dHRlcjogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgZ3V0dGVyKTtcblxuICBAaWYgJHB1c2gge1xuICAgICRfZ3V0dGVyLWFmZm9yZGFuY2U6ICRfZ3JpZC1ndXR0ZXIgKiAyO1xuICAgICRfbWFyZ2luLXZhbHVlOiBjYWxjKCN7X25lYXQtY29sdW1uLXdpZHRoKCRncmlkLCAkcHVzaCl9ICsgI3skX2d1dHRlci1hZmZvcmRhbmNlfSk7XG4gICAgbWFyZ2luLSN7X25lYXQtZmxvYXQtZGlyZWN0aW9uKCRncmlkKX06ICRfbWFyZ2luLXZhbHVlO1xuICB9IEBlbHNlIHtcbiAgICAkX21hcmdpbi12YWx1ZTogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgZ3V0dGVyKTtcbiAgICBtYXJnaW4tI3tfbmVhdC1mbG9hdC1kaXJlY3Rpb24oJGdyaWQpfTogJF9tYXJnaW4tdmFsdWU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBTaGlmdCBjb2x1bW5zIGFuZCByZW9yZGVyIHRoZW0gd2l0aGluIHRoZWlyIGNvbnRhaW5lciB1c2luZyByZWxhdGl2ZVxuLy8vIHBvc2l0aW9uaW5nLlxuLy8vXG4vLy8gQGdyb3VwIGZlYXR1cmVzXG4vLy9cbi8vLyBAbmFtZSBHcmlkIHNoaWZ0XG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAodW5pdGxlc3MpfSAkc2hpZnQgW2ZhbHNlXVxuLy8vICAgVGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IHRoZSBjb2x1bW4uXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWQgWyRuZWF0LWdyaWRdXG4vLy8gICBUaGUgZ3JpZCB0byBiZSB1c2VkIHRvIGRldGlybWluZSBob3cgZmFyIHRvIHNoaWZ0IHRoZSBjb2x1bW4uXG4vLy8gICBCeSBkZWZhdWx0LCB0aGUgZ2xvYmFsIGAkbmVhdC1ncmlkYCB3aWxsIGJlIHVzZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtc2hpZnQoMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogY2FsYygyNSUgLSAyNXB4ICsgMjBweCk7XG4vLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vLyAgIH1cblxuQG1peGluIGdyaWQtc2hpZnQoJHNoaWZ0OiBmYWxzZSwgJGdyaWQ6ICRuZWF0LWdyaWQpIHtcbiAgQGlmICRzaGlmdCB7XG4gICAgJF9zaGlmdC12YWx1ZTogY2FsYygje19uZWF0LWNvbHVtbi13aWR0aCgkZ3JpZCwgJHNoaWZ0KX0gKyAje19yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGd1dHRlcil9KTtcbiAgICAje19uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCl9OiAkX3NoaWZ0LXZhbHVlO1xuICB9IEBlbHNlIHtcbiAgICAje19uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCl9OiBhdXRvO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIENyZWF0ZXMgYSBzZXJpZXMgb2YgZ3VpZGUgbGluZXMgdXNpbmcgdGhlIGBiYWNrZ3JvdW5kLWltYWdlYCBwcm9wZXJ0eSBvbiBhXG4vLy8gZ3JpZCBjb250YWluZXIgdG8gdmlzdWFsaXNlIHRoZSBjb2x1bW5zIGFuZCBndXR0ZXJzIG9mIHRoZSBncmlkLlxuLy8vXG4vLy8gQGdyb3VwIGZlYXR1cmVzXG4vLy9cbi8vLyBAbmFtZSBHcmlkIHZpc3VhbFxuLy8vXG4vLy8gQGFyZ3VtZW50IHtjb2xvcn0gJGNvbG9yXG4vLy8gICBUaGUgY29sb3Igb2YgdGhlIGd1aWRlIGxpbmVzIGNyZWF0ZWQuXG4vLy9cbi8vLyBAYXJndW1lbnQge21hcH0gJGdyaWQgWyRuZWF0LWdyaWRdXG4vLy8gICBUaGUgZ3JpZCB1c2VkIHRvIGRldGVybWluZSB0aGUgZ3VpZGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtdmlzdWFsO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgg4oCmICkgO1xuLy8vICAgfVxuXG5AbWl4aW4gZ3JpZC12aXN1YWwoJGNvbG9yOiBudWxsLCAkZ3JpZDogJG5lYXQtZ3JpZCkge1xuICBAaWYgbm90ICRjb2xvciB7XG4gICAgJGNvbG9yOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBjb2xvcik7XG4gIH1cblxuICAkX2dyaWQtY29sdW1uczogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgY29sdW1ucyk7XG4gICRfZ3JpZC1ndXR0ZXI6IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGd1dHRlcik7XG4gICRfZ3JpZC12aXN1YWwtb2JqZWN0OiAoKSAhZGVmYXVsdDtcbiAgJF9ncmlkLXZpc3VhbDpcbiAgICAkY29sb3IsXG4gICAgJGNvbG9yICRfZ3JpZC1ndXR0ZXIsXG4gICAgdHJhbnNwYXJlbnQgJF9ncmlkLWd1dHRlcixcbiAgO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRvICRfZ3JpZC1jb2x1bW5zIHtcbiAgICAkX2dyaWQtdmlzdWFsLWxvY2FsOiAoXG4gICAgICAjeyRpfTogXCIje19uZWF0LWNvbHVtbi13aWR0aCgkZ3JpZCwgJGkpfSArICN7JF9ncmlkLWd1dHRlcn1cIixcbiAgICApO1xuXG4gICAgJF9ncmlkLXZpc3VhbC1vYmplY3Q6IG1hcC1tZXJnZSgkX2dyaWQtdmlzdWFsLW9iamVjdCwgJF9ncmlkLXZpc3VhbC1sb2NhbCk7XG4gIH1cblxuICBAZWFjaCAkc3RvcCwgJGxvY2F0aW9uIGluICRfZ3JpZC12aXN1YWwtb2JqZWN0IHtcbiAgICAkX2dyaWQtdmlzdWFsLWxvb3AtbGlzdDpcbiAgICAgIHRyYW5zcGFyZW50IGNhbGMoI3skbG9jYXRpb259KSxcbiAgICAgICRjb2xvciBjYWxjKCN7JGxvY2F0aW9ufSksXG4gICAgICAkY29sb3IgY2FsYygjeyRsb2NhdGlvbn0gKyAjeyRfZ3JpZC1ndXR0ZXJ9KSxcbiAgICAgIHRyYW5zcGFyZW50IGNhbGMoI3skbG9jYXRpb259ICsgI3skX2dyaWQtZ3V0dGVyfSksXG4gICAgO1xuXG4gICAgJF9ncmlkLXZpc3VhbDogX25lYXQtYXBwZW5kLWdyaWQtdmlzdWFsKCRfZ3JpZC12aXN1YWwsICRfZ3JpZC12aXN1YWwtbG9vcC1saXN0KTtcbiAgfVxuXG4gICRfZ3JpZC12aXN1YWwtbG9vcC1saXN0OlxuICAgICAgdHJhbnNwYXJlbnQgY2FsYygxMDAlIC0gI3skX2dyaWQtZ3V0dGVyfSksXG4gICAgICAkY29sb3IgY2FsYygxMDAlIC0gI3skX2dyaWQtZ3V0dGVyfSksXG4gICAgICAkY29sb3IgY2FsYygxMDAlKSxcbiAgO1xuXG4gICRfZ3JpZC12aXN1YWw6IF9uZWF0LWFwcGVuZC1ncmlkLXZpc3VhbCgkX2dyaWQtdmlzdWFsLCAkX2dyaWQtdmlzdWFsLWxvb3AtbGlzdCk7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkX2dyaWQtdmlzdWFsKTtcbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1R5cG9uaW5lIE1vbm8gUmVndWxhcic7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyMC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzIwLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MjAud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzIwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyMC5zdmcjVHlwb3RoZXF1ZV93ZWJmb250c19zZXJ2aWNlJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1R5cG9uaW5lIE1vbm8gTWVkaXVtJztcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzIyLmVvdCcpO1xuICBzcmM6IHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MjIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyMi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MjIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzIyLnN2ZyNUeXBvdGhlcXVlX3dlYmZvbnRzX3NlcnZpY2UnKSBmb3JtYXQoJ3N2ZycpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHlwb25pbmUgU2FucyBMaWdodCc7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyNi5lb3QnKTtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzI2LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MjYud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzI2LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyNi5zdmcjVHlwb3RoZXF1ZV93ZWJmb250c19zZXJ2aWNlJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1R5cG9uaW5lIFNhbnMgUmVndWxhcic7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyOC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzI4LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3Mjgud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzI4LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyOC5zdmcjVHlwb3RoZXF1ZV93ZWJmb250c19zZXJ2aWNlJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1R5cG9uaW5lIFNhbnMgUmVndWxhciBJdGFsaWMnO1xuICBzcmM6IHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MjkuZW90Jyk7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyOS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzI5LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTcyOS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3Mjkuc3ZnI1R5cG90aGVxdWVfd2ViZm9udHNfc2VydmljZScpIGZvcm1hdCgnc3ZnJyk7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUeXBvbmluZSBTYW5zIE1lZGl1bSc7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTczMC5lb3QnKTtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzMwLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MzAud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzMwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTczMC5zdmcjVHlwb3RoZXF1ZV93ZWJmb250c19zZXJ2aWNlJykgZm9ybWF0KCdzdmcnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1R5cG9uaW5lIFNhbnMgQm9sZCc7XG4gIHNyYzogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTczMi5lb3QnKTtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzMyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9jb250ZW50LmFyZHVpbm8uY2MvZm9udHMvV0YtMDI4MDc1LTAwOTc5NS0wMDE3MzIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL2ZvbnRzL1dGLTAyODA3NS0wMDk3OTUtMDAxNzMyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy9mb250cy9XRi0wMjgwNzUtMDA5Nzk1LTAwMTczMi5zdmcjVHlwb3RoZXF1ZV93ZWJmb250c19zZXJ2aWNlJykgZm9ybWF0KCdzdmcnKTtcbn1cblxuJHR5cG9uaW5lLW1vbm8tcmVndWxhcjogJ1R5cG9uaW5lIE1vbm8gUmVndWxhcicsICdMdWNpZGEgR3JhbmRlJywgTHVjaWRhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuJHR5cG9uaW5lLW1vbm8tbWVkaXVtOiAnVHlwb25pbmUgTW9ubyBNZWRpdW0nLCAnTHVjaWRhIEdyYW5kZScsIEx1Y2lkYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiR0eXBvbmluZS1zYW5zLWxpZ2h0OiAnVHlwb25pbmUgU2FucyBMaWdodCcsICdMdWNpZGEgR3JhbmRlJywgTHVjaWRhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuJHR5cG9uaW5lLXNhbnMtcmVndWxhcjogJ1R5cG9uaW5lIFNhbnMgUmVndWxhcicsICdMdWNpZGEgR3JhbmRlJywgTHVjaWRhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuJHR5cG9uaW5lLXNhbnMtcmVndWxhci1pdGFsaWM6ICdUeXBvbmluZSBTYW5zIFJlZ3VsYXIgSXRhbGljJywgJ0x1Y2lkYSBHcmFuZGUnLCBMdWNpZGEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4kdHlwb25pbmUtc2Fucy1tZWRpdW06ICdUeXBvbmluZSBTYW5zIE1lZGl1bScsICdMdWNpZGEgR3JhbmRlJywgTHVjaWRhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuJHR5cG9uaW5lLXNhbnMtYm9sZDogJ1R5cG9uaW5lIFNhbnMgQm9sZCcsICdMdWNpZGEgR3JhbmRlJywgTHVjaWRhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuIiwiQG1peGluIGJyZWFrcG9pbnQoJHBvaW50LCAkdHlwZTogbWF4KSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgjeyR0eXBlfS13aWR0aDogI3skcG9pbnR9cHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1ib3RoKCRwb2ludC1taW4sICRwb2ludC1tYXgpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skcG9pbnQtbWF4fXB4KSBhbmQgKG1pbi13aWR0aDogI3skcG9pbnQtbWlufXB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBiYXNlLXRleHQge1xuICBjb2xvcjogJGR1c3Q7XG4gIGxldHRlci1zcGFjaW5nOiAuNXB4O1xufVxuXG5AbWl4aW4gYmFzZS10ZXh0LXVwcGVyY2FzZSB7XG4gIGNvbG9yOiAkZHVzdDtcbiAgbGV0dGVyLXNwYWNpbmc6IC43NXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWl4aW4gdGV4dC1saW5rIHtcbiAgY29sb3I6ICR0ZWFsMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLW91dDtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHRlYWwwO1xuICB9XG59XG4iLCJAbWl4aW4gYXJkdS1idXR0b24gKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yMTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgYm94LXNoYWRvdzogMCA0cHggJGNvbG9yMjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogJHR5cG9uaW5lLXNhbnMtcmVndWxhcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBvdXRsaW5lOiAwO1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRvcDogMDtcbiAgdHJhbnNpdGlvbjogdG9wIC4xcyBlYXNlLW91dCwgYm94LXNoYWRvdyAuMXMgZWFzZS1vdXQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4ICRjb2xvcjI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0b3A6IDJweDtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRvcDogNnB4O1xuICB9XG59XG5cbkBtaXhpbiBpbmFjdGl2ZS1idXR0b24gKCRjb2xvcjEpIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAuNzU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDZweCAkY29sb3IxO1xuICAgIHRvcDogMDtcbiAgfVxufVxuIiwiQG1peGluIGFyZHUtY2hlY2tib3gge1xuXG4gICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY29udGVudC5hcmR1aW5vLmNjL3dlYnNpdGUvQ2hlY2tib3hfY2hlY2tlZC5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICtsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL2NvbnRlbnQuYXJkdWluby5jYy93ZWJzaXRlL0NoZWNrYm94X3VuY2hlY2tlZC5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuIiwiQG1peGluIGlucHV0LWZpZWxkIHtcbiAgQGluY2x1ZGUgYmFzZS10ZXh0O1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWUzZTM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtZmFtaWx5OiAkdHlwb25pbmUtc2Fucy1yZWd1bGFyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIHBhZGRpbmc6IDdweCAxNHB4O1xuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzbW9rZTtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBAaW5jbHVkZSBiYXNlLXRleHQtdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkZHVzdDtcbiAgfVxuXG4gICY6LXdlYmtpdC1hdXRvZmlsbCxcbiAgJjotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkZHVzdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc21va2U7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwMHB4ICR3aGl0ZSBpbnNldDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDUwMDBzIGVhc2UtaW4tb3V0IDBzO1xuICB9XG59XG4iLCJAbWl4aW4gZXJyb3Itbm90aWZpY2F0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG5vdGlmeWVycm9yO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcbiAgcGFkZGluZzogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWl4aW4gc3VjY2Vzcy1ub3RpZmljYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm90aWZ5c3VjY2VzcztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogJHdoaXRlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIycHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiIsIkBtaXhpbiBhcmR1LXJhZGlvIHtcbiAgJjpjaGVja2VkICsgbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGVhbDI7XG4gICAgfVxuICB9XG5cbiAgK2xhYmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc2lsdmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjJweDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGxlZnQ6IDRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNHB4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkYW5pbWF0aW9uLXRpbWluZy1xdWljayBsaW5lYXI7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBzcGlubmVyKCRjb2xvciwgJGJhY2tncm91bmQsICRzaXplLCAkYm9yZGVyOiAkc2l6ZSAvIDYsICRkdXJhdGlvbjogMnMpIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICBAaW5jbHVkZSBzaXplKCRzaXplIC0gMiAqICRib3JkZXIpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkc2l6ZSAvIDEyO1xuICBjb2xvcjogJGJhY2tncm91bmQ7XG4gIGZvbnQtc2l6ZTogNnB4O1xuICBtYXJnaW46ICRib3JkZXI7XG4gIHRleHQtaW5kZW50OiAtOTk5OTllbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB6LWluZGV4OiBhdXRvO1xuXG4gICYsXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlKTtcbiAgICBAaW5jbHVkZSBzaXplKCRzaXplIC8gMiAkc2l6ZSk7XG4gICAgYW5pbWF0aW9uOiBzcGlubmVyLWFuaW1hdGlvbiAkZHVyYXRpb24gaW5maW5pdGUgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiAtJGJvcmRlcjtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAkZHVyYXRpb24gKiAuNzU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNpemUgMCAwICRzaXplO1xuICAgIGxlZnQ6IC0kYm9yZGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46ICgkc2l6ZSAvIDIpICgkc2l6ZSAvIDIpO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgJHNpemUgJHNpemUgMDtcbiAgICBsZWZ0OiAkc2l6ZSAvIDIgLSAkYm9yZGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgKCRzaXplIC8gMik7XG4gIH1cblxuXG4gIEBrZXlmcmFtZXMgc3Bpbm5lci1hbmltYXRpb24ge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiB0b2dnbGUoJHdpZHRoOiA0MnB4LCAkbGFiZWx0cnVlOiAnJywgJGxhYmVsZmFsc2U6ICcnKSB7XG4gICRoZWlndGg6IDI0cHg7XG4gICRtYXJnaW46IDZweDtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogJGhlaWd0aDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHdpZHRoO1xuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJjpjaGVja2VkICsgLnNsaWRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVhbDI7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHJpZ2h0OiAyMXB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMThweCk7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgY29udGVudDogJGxhYmVsdHJ1ZTtcbiAgICAgICAgbGVmdDogJG1hcmdpbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzICsgLnNsaWRlciB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICR0ZWFsMjtcbiAgICB9XG5cbiAgICAmOm5vdCg6Y2hlY2tlZCkgKyAuc2xpZGVyIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6ICRtYXJnaW4gLyAyO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAkbWFyZ2luO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zbGlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWx2ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJG1hcmdpbiAvIDI7XG4gICAgYm90dG9tOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogLjRzO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIGJvdHRvbTogJG1hcmdpbiAvIDI7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogJGhlaWd0aCAtICRtYXJnaW47XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0cmFuc2l0aW9uOiAuNHM7XG4gICAgICB3aWR0aDogJGhlaWd0aCAtICRtYXJnaW47XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICRqZXQ7XG4gICAgICBjb250ZW50OiAkbGFiZWxmYWxzZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLXJlZ3VsYXI7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBsaW5lLWhlaWdodDogJGhlaWd0aDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG4iLCJodG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGNvbG9yOiAkZHVzdDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLWxpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAuN3B4O1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCg2MDApIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtZmFtaWx5OiAkdHlwb25pbmUtc2Fucy1yZWd1bGFyO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5ib2R5LFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxudWwsXG5vbCxcbmxpLFxucCB7XG4gIG1hcmdpbjogMDtcbn1cblxudWwsXG5saSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYSB7XG4gIGNvbG9yOiAkdGVhbDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogJHRlYWw1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkdGVhbDE7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIFJlbW92ZSBkZWZhdWx0IGNsZWFyIGljb24gb24gSUUgYnJvd3NlclxuaW5wdXRbdHlwZT10ZXh0XTo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI3BhZ2Uge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1iYXNpczogYXV0bztcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiA0MHB4IGF1dG8gMjBweDtcbiAgbWF4LXdpZHRoOiAxMjY4cHg7XG4gIHBhZGRpbmc6IDAgNDBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgbWF4LXdpZHRoOiA4MjBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDgwKSB7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG59XG5cbiNjb250ZW50IHtcbiAgb3JkZXI6IDI7XG4gIHdpZHRoOiBjYWxjKDc1JSAtIDQwcHgpO1xuXG4gICYuc2luZ2xlLXBvc3Qge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogODUwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuI3NpZGViYXIge1xuICBvcmRlcjogMTtcbiAgd2lkdGg6IGNhbGMoMjUlIC0gNDBweCk7XG59XG5cbiNjb250ZW50LFxuI3NpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbiNhZF9jb250YWluZXJfem9uZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcmRlcjogMTtcblxuICBpbWcge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICBtYXJnaW46IDVweCBhdXRvIDIwcHg7XG4gIH1cbn1cblxuLndwLWJsb2NrLWNvZGUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuIiwiLmJ0bi1wcmltYXJ5IHtcbiAgQGluY2x1ZGUgYXJkdS1idXR0b24oJHRlYWwyLCAkdGVhbDUpO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi8vIFNFTEVDVFxuc2VsZWN0LFxuLnNlbGVjdC1idG4ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2xvdWRzO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiAkZHVzdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogJHR5cG9uaW5lLXNhbnMtbGlnaHQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBsZXR0ZXItc3BhY2luZzogLjdweDtcbiAgcGFkZGluZzogMCAzMnB4IDAgMTRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvZztcbiAgICBjb2xvcjogJGpldDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuLndyYXBwZXItc2VsZWN0LFxuLnNlbGVjdC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICM0MzRmNTQ7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTJweDtcbiAgICB0b3A6IDE3cHg7XG4gICAgd2lkdGg6IDA7XG4gIH1cbn1cblxuLmN1c3RvbS1zZWxlY3Qge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2xvdWRzO1xuICAgIG1heC1oZWlnaHQ6IDI3MnB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAuY2hpbGRyZW4ge1xuXG4gICAgICBsaSB7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMjhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkZHVzdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb2c7XG4gICAgICAgICAgY29sb3I6ICRkdXN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAocG9pbnRlcjogZmluZSkge1xuXG4gIC5uYXRpdmUtc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG5cbiAgLm5hdGl2ZS1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY3VzdG9tLXNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcblxuICAgIC5uYXRpdmUtc2VsZWN0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5jdXN0b20tc2VsZWN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG5cbiAgLm5hdGl2ZS1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY3VzdG9tLXNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcblxuICAgIC5uYXRpdmUtc2VsZWN0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5jdXN0b20tc2VsZWN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEVORCBTRUxFQ1RcblxuLm5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAwIDAgMzBweDtcblxuICAuYWxpZ25sZWZ0IHtcblxuICAgIGEge1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR0ZWFsMTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0ZWFsMTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYWxpZ25yaWdodCB7XG5cbiAgICBhIHtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkdGVhbDE7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGVhbDE7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udGFnLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodGJyb256ZTtcbiAgYm94LXNoYWRvdzogMTBweCAwIDAgJGxpZ2h0YnJvbnplLCAtMTBweCAwIDAgJGxpZ2h0YnJvbnplO1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgcGFkZGluZzogNHB4IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzLCBib3gtc2hhZG93IC4zcztcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2Fycm90O1xuICAgIGJveC1zaGFkb3c6IDEwcHggMCAwICRjYXJyb3QsIC0xMHB4IDAgMCAkY2Fycm90O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiA4cHggMTRweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQlJFQURDUlVNQlNcbi5icmVhZGNydW1icyB7XG4gIG1hcmdpbjogLTIwcHggMCA0MHB4O1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgbGkge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbjogMCA3cHggMCA0cHg7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogJHR5cG9uaW5lLXNhbnMtbGlnaHQ7XG4gIH1cblxuICAuYnItcG9zdCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRkdXN0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHRlYWwyO1xuICAgIH1cbiAgfVxufVxuLy8gRU5EIEJSRUFEQ1JVTUJTXG5cbiIsIi5wYWdldGl0bGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTgsIDIyNywgMjI3LCAwLjcpO1xuICBjb2xvcjogJGdvbGQ7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwIDAgNjBweDtcbiAgcGFkZGluZzogMCAwIDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAuY2F0ZWdvcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTU4LCAxMzIsIDEwOSwgLjYpO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICB9XG59XG5cbi5sYXlvdXQtMi1jb2x1bW4sXG4uYWlzLWhpdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmFpcy1oaXRzLS1pdGVtLFxuLmxheW91dC0yLWNvbHVtbiAucG9zdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjbG91ZHM7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCg3NDApIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGFydGljbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLWxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4zcyAwO1xuICB9XG5cbiAgZW0sXG4gIGEgZW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDAgM3B4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzO1xuICB9XG5cbiAgLmF1dGhvcixcbiAgLmNhdGVnb3J5LFxuICAuZXhjZXJwdCB7XG4gICAgY29sb3I6ICRkdXN0O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4zcyAwO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWwwO1xuXG4gICAgaDIge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICBlbSxcbiAgICBhIGVtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIsIDE2MSwgMTY2LCAwLjQ1KTtcbiAgICB9XG5cbiAgICAuYXV0aG9yLFxuICAgIC5jYXRlZ29yeSxcbiAgICAuZXhjZXJwdCB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5haXMtaGl0cy0tdGh1bWJuYWlsLFxuICAgIC5jYXJkLWNvdmVyLWltYWdlIHtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5haXMtaGl0cy0tY29udGVudCxcbiAgLmNhcmQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMjRweCAzMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCg0ODApIHtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgfVxuXG4gICAgLmV4Y2VycHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICAgIH1cblxuICAgIC5hdXRob3IsXG4gICAgLmNhdGVnb3J5IHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjI4cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5haXMtaGl0cy0tdGh1bWJuYWlsLFxuICAuY2FyZC1jb3Zlci1pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMTUpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubGF5b3V0LTItY29sdW1uIHtcblxuICAuY2FyZC1jb3Zlci1pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5jb3Zlci1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAzNXZoO1xuICAgIG1heC1oZWlnaHQ6IDMyNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDIyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnBvc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcblxuICAgICAgLmV4Y2VycHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgIC5hdXRob3IsXG4gICAgICAuY2F0ZWdvcnksXG4gICAgICAuZXhjZXJwdCB7XG4gICAgICAgIGNvbG9yOiAkZHVzdDtcbiAgICAgIH1cblxuICAgICAgaDIge1xuICAgICAgICBjb2xvcjogJHRlYWwxO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmJsb2ctY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNsb3VkcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsMDtcblxuICAgICAgLmV4Y2VycHQsXG4gICAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYgKyAuaW5mby13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWwwO1xuXG4gICAgICAgIC5ib2FyZCB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbmZvLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjbG91ZHM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjI4cHg7XG4gICAgcGFkZGluZzogMjRweCAzMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XG5cbiAgICAuYm9hcmQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgLmxhYmVsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIH0gIFxuICAgIH1cbiAgfVxufVxuIiwiLnBvc3Qge1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBvcmRlcjogMTtcblxuICB1bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMTgsIDIyNywgMjI3LCAwLjcpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDJ2aCAwIDZ2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiA0NXZoO1xuICAgIG1hcmdpbjogMjBweCAwIDMwcHg7XG4gICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDY0MCkge1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAuYWRkdGhpc190b29sYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNzAwKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDUwcHggMCAxMHB4O1xuICAgIH1cblxuICAgIC5zb2NpYWwtY29udGFpbmVyIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luOiAwIDAgMTBweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3MDApIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc29jaWFsLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAuaW1hZ2UtcG9zdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNsb3VkcztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzBweDtcbiAgICBwYWRkaW5nOiA1JTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNjQwKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogJHR5cG9uaW5lLXNhbnMtbGlnaHQ7XG4gICAgZm9udC1zaXplOiAzOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC40cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTM7XG4gICAgbWFyZ2luOiAwIDAgMzBweDtcblxuICAgICYucG9zdC10aXRsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNjAwKSB7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGR1c3Q7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHRlYWwxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg4LCAxNzIsIDE1MywgMC4xKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE4OCwgMTcyLCAxNTMsIDAuNCk7XG4gICAgY29sb3I6ICRnb2xkO1xuICAgIG1hcmdpbjogMCAwIDQwcHg7XG4gICAgcGFkZGluZzogMjRweCAzMHB4IDEwcHg7XG4gIH1cblxuICAubW9yZS1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgIG1hcmdpbjogMjBweCAwIDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5pbmZvLFxuICAucG9zdG1ldGFkYXRhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDYwMCkge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5pbmZvIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuXG4gICAgJiArIC5lbnRyeSB7XG5cbiAgICAgIC5pbWFnZS1wb3N0IHtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF1dGhvciB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1Bvc3RlZCBieTogJztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC43cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wb3N0bWV0YWRhdGEge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNTBweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTMwcHgpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCg3MDApIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNjAwKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2F0ZWdvcmllcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgd2lkdGg6IDcwJTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg2NDApIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRicm9uemU7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgICAgICAgbWFyZ2luOiAwIDZweCA2cHggMDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJyb3Q7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29tbWVudHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB3aWR0aDogMzAlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDY0MCkge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0YnJvbnplO1xuICAgICAgICBjb2xvcjogJGdvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggOXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXIgLjNzLCBjb2xvciAuM3M7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRlYWwxO1xuICAgICAgICAgIGNvbG9yOiAkdGVhbDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnNpbmdsZVBvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAzNXB4IDAgY2FsYyg2dmggKyAxMHB4KTtcbiAgb3JkZXI6IDM7XG5cbiAgLmJsb2ctaG9tZS1idG4ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNsb3VkcztcbiAgICBjb2xvcjogJGdvbGQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgIHBhZGRpbmc6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWwwO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAuYWxpZ25sZWZ0LFxuICAuYWxpZ25yaWdodCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDRweCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDc0MCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnRodW1iLW5hdmlnYXRpb24ge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDI1dmg7XG4gICAgICBtYXJnaW46IDAgMCAxNXB4O1xuICAgICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgICBtaW4taGVpZ2h0OiAxNzBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNsb3VkcztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDIwcHggMzVweCAzMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWwwO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogJGdvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4zcztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYWxpZ25sZWZ0IHtcblxuICAgIGEge1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnUHJldmlvdXMgQmxvZyBQb3N0JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYWxpZ25yaWdodCB7XG5cbiAgICBhIHtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ05leHQgQmxvZyBQb3N0JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4uc29jaWFsLXNoYXJlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMCAzMHB4O1xuICB3aWR0aDogMTAwJTtcblxuICBpZnJhbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICB1bCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGltZyB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICB3aWR0aDogMjhweDtcblxuICAgICAgJi50d2l0dGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU0YzFmMjtcbiAgICAgIH1cblxuICAgICAgJi5ncGx1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMzQ4MzY7XG4gICAgICB9XG5cbiAgICAgICYuZmFjZWJvb2sge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y2NWI2O1xuICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMCAyNXB4IDAgMDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCg0ODApIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmZiLWxpa2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNvbW1lbnRzLXdyYXBwZXIge1xuICBvcmRlcjogMjtcblxuICAmOjphZnRlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjE4LCAyMjcsIDIyNywgMC43KTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiBjYWxjKDR2aCArIDEwcHgpIDAgY2FsYyg2dmggKyAxMHB4KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5sb2dnZWQtYXMge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgIC5sb2dvdXQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2xvdWRzO1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogJGR1c3Q7XG4gICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLWxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjdweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBtYXJnaW46IDIwcHggMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDI0cHggMzBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjc3VibWl0IHtcbiAgICBAaW5jbHVkZSBhcmR1LWJ1dHRvbigkdGVhbDIsICR0ZWFsNSk7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGNpdGUge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4gIGgzIHtcbiAgICBjb2xvcjogJGdvbGQ7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5jb21tZW50bGlzdCB7XG4gICAgbWFyZ2luOiAwIDAgY2FsYyg2dmggKyAxMHB4KTtcbiAgICBwYWRkaW5nOiAyMHB4IDAgMDtcblxuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG4uc2luZ2xlLXBvc3Qge1xuXG4gIC5ib3R0b20tYXJ0aWNsZSB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgfVxuXG4gIC5pbmZvLXdyYXBwZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMzBweCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDcwMCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmJvYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuXG4gICAgLmxhYmVsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodGJyb256ZTtcbiAgICAgIGJveC1zaGFkb3c6IDEwcHggMCAwICRsaWdodGJyb256ZSwgLTEwcHggMCAwICRsaWdodGJyb256ZTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIG1hcmdpbjogMCAyNXB4IDVweCAwO1xuICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGJveC1zaGFkb3cgLjNzO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcnJvdDtcbiAgICAgICAgYm94LXNoYWRvdzogMTBweCAwIDAgJGNhcnJvdCwgLTEwcHggMCAwICRjYXJyb3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjYWlzLXdyYXBwZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jYWlzLW1haW4ge1xuICBvcmRlcjogMjtcbiAgd2lkdGg6IGNhbGMoNzUlIC0gNDBweCk7XG59XG5cbiNhbGdvbGlhLWhpdHMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jYWlzLWZhY2V0cyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9yZGVyOiAxO1xuICB3aWR0aDogY2FsYygyNSUgLSA0MHB4KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB9XG59XG5cbiNhaXMtbWFpbixcbiNhaXMtZmFjZXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5haXMtc3RhdHMtLXRpbWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWlzLW1lbnUtLWxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5haXMtaGl0c19fZW1wdHkge1xuXG4gIHN0cm9uZyB7XG4gICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLWxpZ2h0O1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjI4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uYWlzLWZhY2V0cyB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgLmFpcy1tZW51LS1pdGVtLFxuICAuYWlzLWhpZXJhcmNoaWNhbC1tZW51LS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAgMCA3cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuYWlzLWhpZXJhcmNoaWNhbC1tZW51LS1pdGVtIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzJSAtIDZweCk7XG5cbiAgICAgIGRpdiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDcwMCkge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gNXB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDUwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmFpcy1oaWVyYXJjaGljYWwtbWVudS0tbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogN3B4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAudGFnLWJ0bjtcblxuICAgIC5haXMtaGllcmFyY2hpY2FsLW1lbnUtLWNvdW50LFxuICAgIC5haXMtbWVudS0tY291bnQge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTJweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYWlzLWhpZXJhcmNoaWNhbC1tZW51LS1pdGVtX19hY3RpdmUsXG4gIC5haXMtbWVudS0taXRlbV9fYWN0aXZlIHtcblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XG4gICAgICBib3gtc2hhZG93OiAxMHB4IDAgMCAkZ29sZCwgLTEwcHggMCAwICRnb2xkO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnNvcnQtb3B0aW9ucy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiA3cHggMCAzM3B4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgLnNvcnQtaXRlbS13cmFwcGVyIHtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMCAwIDdweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzJSAtIDZweCk7XG5cbiAgICAgIGRpdiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDcwMCkge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gNXB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDUwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuXG4gICAgICBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDEwcHggMCAwICRnb2xkLCAtMTBweCAwIDAgJGdvbGQ7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgQGV4dGVuZCAudGFnLWJ0bjtcbiAgICB9XG4gIH1cbn1cblxuLmFpcy1jbGVhci1hbGwtLWxpbmsge1xuICBjb2xvcjogJGR1c3Q7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRkdXN0O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRub3RpZnllcnJvcjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm90aWZ5ZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHVzdDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgY29udGVudDogJ8OXJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XG4gICAgd2lkdGg6IDI0cHg7XG4gIH1cbn1cblxuI2FsZ29saWEtc2VhcmNoLWJveCB7XG4gIG1hcmdpbjogMCAwIDc0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2xvdWRzO1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogJGR1c3Q7XG4gICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLWxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbGV0dGVyLXNwYWNpbmc6IC43cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMjNweCA2NXB4IDIzcHggMzBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDgwKSB7XG4gICAgICBwYWRkaW5nOiAyM3B4IDY1cHggMjNweCAxOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtaWNvbiB7XG4gICAgZmlsbDogJGFzYmVzdG9zO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDIxcHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDQ4MCkge1xuICAgICAgcmlnaHQ6IC04cHg7XG4gICAgfVxuICB9XG59XG5cbi5haXMtc3RhdHMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4MHB4O1xufVxuXG4uYWlzLXBhZ2luYXRpb24tLWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDNweDtcbn1cblxuLmFpcy1wYWdpbmF0aW9uLS1pdGVtX19kaXNhYmxlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5haXMtcGFnaW5hdGlvbi0taXRlbV9fYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5hbGdvbGlhLWF1dG9jb21wbGV0ZSB7XG4gIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xufVxuXG4iLCIuYWEtZHJvcGRvd24tbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsNDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0ZWFsMjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tdG9wOiA3cHg7XG4gIHBhZGRpbmc6IDE4cHggMjVweCAyNXB4O1xuXG4gICYuYWEtd2l0aC0xIHtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIDM2cHgpO1xuICB9XG5cbiAgJi5hYS13aXRob3V0LTEge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMzZweCk7XG4gIH1cblxuICAmLmFhLXdpdGgtMyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTQwcHgpO1xuICAgIHdpZHRoOiAyOTBweDtcbiAgfVxuXG4gICYuYWEtd2l0aG91dC0zIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNDBweCk7XG4gICAgd2lkdGg6IDI5MHB4O1xuICB9XG5cbiAgLnN1Z2dlc3Rpb24tY291bnQtd3JhcHBlciB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogI2YxYzQwZjtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuXG4gICAgJi5zdWdnZXN0aW9uLWxpbmsge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuYXV0b2NvbXBsZXRlLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICBmb250LWZhbWlseTogJHR5cG9uaW5lLXNhbnMtcmVndWxhcjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIH1cblxuICAuYXV0b2NvbXBsZXRlLWhlYWRlci10aXRsZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnN1Z2dlc3Rpb24tcG9zdC10aHVtYm5haWwge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IGNhbGMoMzUlIC0gOHB4KTtcbiAgfVxuXG4gIC5zdWdnZXN0aW9uLXBvc3QtYXR0cmlidXRlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB3aWR0aDogY2FsYyg2NSUgLSA4cHgpO1xuICB9XG5cbiAgLmFhLXN1Z2dlc3Rpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgZm9udC1mYW1pbHk6ICR0eXBvbmluZS1zYW5zLXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHBhZGRpbmc6IDE0cHggMDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgZW0ge1xuICAgICAgY29sb3I6ICRzdW5mbG93ZXI7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cblxuICAuc3VnZ2VzdGlvbi1jb3VudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMuM2VtO1xuICB9XG5cbiAgLmF1dG9jb21wbGV0ZS1lbXB0eSB7XG4gICAgcGFkZGluZzogNnB4IDA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gICAgLmVtcHR5LXF1ZXJ5IHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjI4cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuIiwiI3NpZGViYXIge1xuICBmb250LXNpemU6IDE2cHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuXG4gICNjYXRlZ29yaWVzLFxuICAjYXJjaGl2ZXMge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDYwMCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMCAwIDQwcHg7XG4gIH1cblxuICAuY3VzdG9tLXNlbGVjdCB7XG5cbiAgICAmLm9wZW4ge1xuXG4gICAgICAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI3MnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC4zcztcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLndpZGdldHRpdGxlIHtcbiAgICBjb2xvcjogJGdvbGQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAxLjI4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAud2lkZ2V0IHtcblxuICAgIC5zY3JlZW4tcmVhZGVyLXRleHQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuc3VibWl0LXlvdXItcHJvamVjdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTVweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRmb2c7XG4gICAgICBtYXJnaW46IDEwcHggMCAzNXB4O1xuICAgICAgb3JkZXI6IDI7XG4gICAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDIwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJ0bi1wcmltYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50LWJvdGgoNDgwLCAxMDI0KSB7XG4gICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNvY2lhbC1saXN0IHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG5cbiAgICAgICAgJi50d2l0dGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTRjMWYyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5ncGx1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QzNDgzNjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmFjZWJvb2sge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzZjY1YjY7XG4gICAgICAgIH1cblxuICAgICAgICAmLnlvdXR1YmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzFlMTI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmluc3RhZ3JhbSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMzUlIDkwJSwjZmVjNTY0LHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMCAxNDAlLCNmZWM1NjQsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMCAtMjUlLCM1MjU4Y2YsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMjAlIC01MCUsIzUyNThjZix0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCAxMDAlIDAsIzg5M2RjMix0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCA2MCUgLTIwJSwjODkzZGMyLHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgZmFydGhlc3QtY29ybmVyIGF0IDEwMCUgMTAwJSwjZDkzMTdhLHRyYW5zcGFyZW50KSwtd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCM2NTU5Y2EpLGNvbG9yLXN0b3AoMzAlLCNiYzMxOGYpLGNvbG9yLXN0b3AoNTAlLCNlMzNmNWYpLGNvbG9yLXN0b3AoNzAlLCNmNzc2MzgpLHRvKCNmZWM2NmQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmxpY2tyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0N2E0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5naXRodWIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGkge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IC4zcztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2lkZWJhci1hY2NvcmRpb24tYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjcsIDIwMywgMjA1LCAwLjUpO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxNnB4IDIycHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiBhdXRvO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI0KSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4uc2lkZWJhci1ibG9jay1tZW51IHtcblxuICAuc2lkZWJhci1hY2NvcmRpb24ge1xuXG4gICAgLnNpZGViYXItYWNjb3JkaW9uLWJ0biB7XG5cbiAgICAgIC5hcnJvdyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgIGNvbnRlbnQ6ICfinJUnO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5vcGVuIHtcblxuICAgIC5zaWRlYmFyLWFjY29yZGlvbiB7XG5cbiAgICAgIC5zaWRlYmFyLWFjY29yZGlvbi1idG4ge1xuICAgICAgICBcbiAgICAgICAgLmFycm93IHtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2lkZWJhci1ibG9jay1tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLmJsb2NrLW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNsb3VkcztcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuM3MsIHBhZGRpbmcgLjNzO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuXG4gICAgJi5vcGVuIHtcblxuICAgICAgLmJsb2NrLW1lbnUge1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMzBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZWJhci1hY2NvcmRpb24ge1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG5cbiAgbmF2IHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGNvbG9yOiAkZ29sZDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuMjhweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsMjtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBsZXR0ZXItc3BhY2luZzogMS4yOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZzogMCAwIDAgMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDI1LCAnbWluJykge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnNvcnQtYnktd3JhcHBlcixcbiNjbGVhci1hbGwge1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTAyNCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5maWx0ZXItY2F0ZWdvcmllcy13cmFwcGVyIHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KDEwMjQpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uaXMtY2xlYXItaWNvbiB7XG4gIGZpbGw6ICRhc2Jlc3RvcztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNTJweDtcbiAgdG9wOiAyNXB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDgwKSB7XG4gICAgcmlnaHQ6IDQ2cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FzR0FBLFVBQVU7RUFDUixXQUFXLEVBQUUsdUJBQXVCO0VBQ3BDLEdBQUcsRUFBRSxtRUFBbUU7RUFDeEUsR0FBRyxFQUFFLDBFQUEwRSxDQUFDLDJCQUEyQixFQUFFLG9FQUFvRSxDQUFDLGNBQWMsRUFBRSxvRUFBb0UsQ0FBQyxjQUFjLEVBQUUsK0ZBQStGLENBQUMsYUFBYTs7O0FBRXRZLFVBQVU7RUFDUixXQUFXLEVBQUUsc0JBQXNCO0VBQ25DLEdBQUcsRUFBRSxtRUFBbUU7RUFDeEUsR0FBRyxFQUFFLDBFQUEwRSxDQUFDLDJCQUEyQixFQUFFLG9FQUFvRSxDQUFDLGNBQWMsRUFBRSxvRUFBb0UsQ0FBQyxjQUFjLEVBQUUsK0ZBQStGLENBQUMsYUFBYTs7O0FBRXRZLFVBQVU7RUFDUixXQUFXLEVBQUUscUJBQXFCO0VBQ2xDLEdBQUcsRUFBRSxtRUFBbUU7RUFDeEUsR0FBRyxFQUFFLDBFQUEwRSxDQUFDLDJCQUEyQixFQUFFLG9FQUFvRSxDQUFDLGNBQWMs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 */
