/**
 * Usage:
 *
 *   background-color: color(white);
 */
.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.promo {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.promo .zg-height-fix .field-promoicon {
  margin-top: 100px;
}
.promo .field-promoicon {
  overflow: hidden;
  float: left;
  width: 100%;
}
.promo .field-promoicon img {
  width: 100%;
  height: auto;
}
.promo.image-full-size img {
  margin-bottom: 10px;
}
.promo h1 {
  margin: 0 0 8px 0;
}
.promo h1:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 3.2rem;
  line-height: 40px;
  font-style: normal;
  font-weight: 700;
}
@media ( min-width: 768px ) {
  .promo h1:not([class^=u-type]) {
    font-size: 5rem;
    line-height: 56px;
  }
}
.promo h1:not([class^=u-color]) {
  color: #000000;
}
.promo h2 {
  margin: 0 0 8px 0;
}
.promo h2:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.9rem;
  font-style: normal;
  font-weight: 700;
}
.promo h2:not([class^=u-color]) {
  color: #000000;
}
.promo h3 {
  margin: 0 0 8px 0;
}
.promo h3:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.2rem;
  font-style: normal;
  font-weight: 700;
}
.promo h3:not([class^=u-color]) {
  color: #000000;
}
.promo h4 {
  margin: 0 0 8px 0;
}
.promo h4:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.7rem;
  font-style: normal;
  font-weight: 700;
}
.promo h4:not([class^=u-color]) {
  color: #000000;
}
.promo h5 {
  margin: 0 0 8px 0;
}
.promo h5:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.4rem;
  font-style: normal;
  font-weight: 700;
}
.promo h5:not([class^=u-color]) {
  color: #000000;
}
.promo h6 {
  margin: 0 0 8px 0;
}
.promo h6:not([class^=u-type]) {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.1rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 700;
}
@media ( min-width: 768px ) {
  .promo h6:not([class^=u-type]) {
    font-size: 2.4rem;
    line-height: 30px;
  }
}
.promo h6:not([class^=u-color]) {
  color: #000000;
}
.promo p {
  margin-bottom: 32px;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 300;
}
@media ( min-width: 768px ) {
  .promo p {
    font-size: 2rem;
    line-height: 32px;
  }
}
.promo strong {
  color: #000000;
}
.promo a {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 400;
  color: #0070cd;
  text-decoration: none;
  text-decoration: underline;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}
@media ( min-width: 768px ) {
  .promo a {
    font-size: 2rem;
    line-height: 32px;
  }
}
.promo a:hover, .promo a:focus {
  text-decoration: underline;
}
.promo a[href*=pdf] {
  padding-right: 4px;
  position: relative;
}
.promo a[href*=pdf]::after {
  right: -2px;
  top: 0;
}
.promo a[href*=pdf]::after {
  content: " ";
  background-image: url(/-/media/Project/TTC/DevProto/Icons/pdf-red.svg);
  height: 25px;
  width: 23px;
  display: inline-block;
  background-size: 23px 25px;
  background-repeat: no-repeat;
  white-space: pre;
}
.promo a[href*=xls] {
  padding-right: 4px;
  position: relative;
}
.promo a[href*=xls]::after {
  right: -2px;
  top: 0;
}
.promo a[href*=xls]::after {
  content: ".xls";
}
.promo a[href*=ppt] {
  padding-right: 4px;
  position: relative;
}
.promo a[href*=ppt]::after {
  right: -2px;
  top: 0;
}
.promo a[href*=ppt]::after {
  content: ".ppt";
}
.promo a[href*=doc] {
  padding-right: 4px;
  position: relative;
}
.promo a[href*=doc]::after {
  right: -2px;
  top: 0;
}
.promo a[href*=doc]::after {
  content: ".doc";
}
.promo blockquote {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.1rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 700;
  margin-bottom: 32px;
  color: #da251d;
  padding-left: 16px;
  border-left: 5px solid #da251d;
}
@media ( min-width: 768px ) {
  .promo blockquote {
    font-size: 2.4rem;
    line-height: 30px;
  }
}
.promo table {
  height: auto !important;
  border: 2px solid #d2d2d2;
}
.promo table, .promo table tr, .promo table th, .promo table td {
  border: solid 2px #d2d2d2;
  background: #FFFFFF;
  border-collapse: collapse;
  vertical-align: middle;
}
.promo table tr, .promo table th, .promo table td {
  padding: 5px;
}
.promo table caption {
  background-color: #f7f7f7;
  overflow: hidden;
  padding: 10px;
  font-size: 20px;
  font-weight: bold;
  margin-left: 0;
}
.promo table tr {
  border: none;
}
.promo table th, .promo table td {
  font-size: 1.8rem;
  border-width: 2px 0 0 2px;
  font-weight: 300;
}
.promo table th {
  background-color: white;
  font-weight: 500;
  padding: 7px;
}
.promo table th:first-child {
  border-left: 0;
}
.promo table td:first-child {
  border-left: 0;
}
.promo ul {
  margin-left: 24px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
  list-style-type: disc;
  margin-bottom: 32px;
}
.promo ul li {
  padding: 5px 0 5px 0;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 300;
}
@media ( min-width: 768px ) {
  .promo ul li {
    font-size: 2rem;
    line-height: 32px;
  }
}
.promo ol {
  margin-left: 24px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
  list-style-type: decimal;
  margin-bottom: 32px;
}
.promo ol li {
  padding: 5px 0 5px 0;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 300;
}
@media ( min-width: 768px ) {
  .promo ol li {
    font-size: 2rem;
    line-height: 32px;
  }
}
@media (min-width: 1225px) {
  .promo blockquote {
    max-width: 400px;
    margin-left: 32px;
    margin-right: -48px;
    margin-bottom: 8px;
    float: right;
  }
}
@media (min-width: 768px) {
  .promo table th, .promo table td {
    font-size: 2rem;
  }
}
.promo h3.u-type--d3 {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.3rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 700;
}
@media ( min-width: 768px ) {
  .promo h3.u-type--d3 {
    font-size: 2.8rem;
    line-height: 36px;
  }
}
.promo h2.c-home-promo__title {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 3.2rem;
  line-height: 40px;
  font-style: normal;
  font-weight: 700;
  max-width: 700px;
}
@media ( min-width: 768px ) {
  .promo h2.c-home-promo__title {
    font-size: 5rem;
    line-height: 56px;
  }
}
.promo ul {
  margin-left: 0;
  list-style: none;
}

.promo.absolute-bottom-link {
  position: relative;
}
.promo.absolute-bottom-link .field-promolink {
  position: absolute;
  bottom: 10px;
  right: 10px;
}

.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.promo.promo-hero {
  position: relative;
  text-align: center;
}
.promo.promo-hero.promo-hero-half {
  float: left;
  width: 50%;
}
@media only screen and (max-width: 959px) {
  .promo.promo-hero.promo-hero-half {
    float: none;
    width: 100%;
  }
}
.promo.promo-hero .field-promotext {
  display: inline-block;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  padding: 20px;
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
}
.promo.promo-hero .field-promotext > a {
  color: inherit;
  text-decoration: none;
}
@media only screen and (max-width: 959px) {
  .promo.promo-hero .field-promotext {
    width: 100%;
    margin: 0;
  }
  .promo.promo-hero .field-promotext h1 {
    font-size: 24px;
    font-size: 2.4rem;
  }
  .promo.promo-hero .field-promotext h2, .promo.promo-hero .field-promotext h3, .promo.promo-hero .field-promotext h4 {
    font-size: 20px;
    font-size: 2rem;
  }
}

.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.promo-shadow {
  max-width: 960px;
  padding: 0;
  border-top-width: 3px;
  border-top-color: #89C6CC;
  border-style: solid;
  overflow: visible;
  position: relative;
}
.promo-shadow.promo {
  float: left;
}
.promo-shadow > .component-content {
  padding: 15px;
  margin: 0 0 30px 0;
}
@media only screen and (max-width: 959px) {
  .promo-shadow > .component-content {
    margin: 0 10px 30px 10px;
  }
}
.promo-shadow > .component-content:before, .promo-shadow > .component-content:after {
  opacity: 0.7;
  -webkit-box-shadow: 0 17px 10px rgba(0, 0, 0, 0.7);
          box-shadow: 0 17px 10px rgba(0, 0, 0, 0.7);
  position: absolute;
  z-index: -1;
  height: 20%;
  max-height: 100px;
  max-width: 460px;
  width: 47%;
  content: "";
  bottom: 10px;
}
.promo-shadow > .component-content:before {
  left: 2%;
  -webkit-transform: rotate(-3deg);
          transform: rotate(-3deg);
}
.promo-shadow > .component-content:after {
  right: 2%;
  -webkit-transform: rotate(3deg);
          transform: rotate(3deg);
}

.c-promo-2col img {
  max-width: 500px;
}
.c-promo-2col .field-promoicon {
  float: none;
}
.c-promo-2col > .component-content {
  padding: 64px 32px;
}

.c-home-promo {
  position: relative;
}

.c-home-promo__image {
  float: none !important;
}

.c-home-promo__title {
  background-color: #ffffff;
  color: #000000;
  padding: 8px 16px 16px 16px;
}

@media (min-width: 768px) {
  .c-promo-2col {
    height: 100%;
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
            align-items: center;
    -webkit-box-pack: center;
            justify-content: center;
  }
  .c-promo-2col > .component-content {
    display: -webkit-box;
    display: flex;
    max-width: 1187px;
    padding: 128px 32px;
  }
  .c-promo-2col img {
    float: right;
  }
  .c-promo__links ul {
    margin-bottom: 0;
  }
}
@media (max-width: 639px) {
  .promo.c-promo-subscribe {
    background-color: #da251d;
    color: #ffffff;
    padding: 32px 16px;
  }
  .promo.c-promo-subscribe h3 {
    color: #ffffff;
  }
  .c-home-promo__content {
    position: relative;
    top: -32px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .c-home-promo__content > .component-content {
    padding-left: 16px;
    padding-right: 16px;
  }
}
@media (min-width: 640px) {
  .c-home-promo__content {
    position: absolute;
    left: 64px;
    bottom: 32px;
    right: 0;
  }
  .promo .c-home-promo__title {
    background-color: transparent;
    color: #ffffff !important;
    padding: 0;
  }
  .c-promo-subscribe {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .c-promo-subscribe > .component-content {
    background-color: #ffffff;
    padding: 32px;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    margin-right: 32px;
  }
  .c-promo-subscribe > .component-content .u-type--body {
    color: #000000;
  }
}
@media (min-width: 768px) {
  .promo.c-promo-subscribe > .component-content {
    margin-left: calc(8.3333333333% + 6px) !important;
    margin-right: calc(12.5% + 6px) !important;
  }
}
@media (min-width: 1225px) {
  .promo.c-promo-subscribe > .component-content {
    margin: 0 auto;
    margin-left: calc(16.6666666667% + 6px) !important;
    margin-right: calc(25% + 6px) !important;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fdHlwZS5zY3NzIiwiY29tcG9uZW50LXByb21vLmNzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnQtcHJvbW8uc2NzcyIsImJhc2UvcmljaHRleHQvX3JpY2h0ZXh0LnNjc3MiLCJjb21tb24tdWkvdHlwb2dyYXBoeS9fbWl4aW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvaW90YWNzcy9tb2R1bGVzL2lvdGFjc3MtdG9vbHMtY29yZS91dGlsaXRpZXMvX2V4dHJhY3QtdHlwZS1zaXplcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2lvdGFjc3MvbW9kdWxlcy9pb3RhY3NzLXRvb2xzLWNvcmUvbGlicmFyaWVzL19nZW5lcmF0ZS10eXBlLXNpemVzLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19saW5rLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fY29sb3JzLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fZm9udFNpemVzLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19zYXNzLW1xLW1vZC5zY3NzIiwic3R5bGVzL3Byb21vL2Fic29sdXRlLWJvdHRvbS1saW5rLnNjc3MiLCJzdHlsZXMvcHJvbW8vcHJvbW8taGVyby5zY3NzIiwic3R5bGVzL3Byb21vL3Byb21vLXNoYWRvdy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0VBQUE7QUNrUUU7RUFDRSxnQkFBQTtBQzVQSjs7QUQyUEU7RUFDRSxnQkFBQTtBQ3hQSjs7QUR1UEU7RUFDRSxnQkFBQTtBQ3BQSjs7QURtUEU7RUFDRSxnQkFBQTtBQ2hQSjs7QUNOQSxnQkFBQTtBQ1pBO0VBQ0ksOEJBQUE7VUFBQSxzQkFBQTtBRnNCSjtBRXBCUTtFQUNJLGlCQUFBO0FGc0JaO0FFbkJJO0VBQ0ksZ0JBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtBRnFCUjtBRXBCUTtFQUNJLFdBQUE7RUFDQSxZ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TTtJQUNJLGdCQUFBO0VGMGRWO0FBQ0Y7QVUzVVE7RVIxSUo7SUFDSSx5QkFBQTtJQUNBLGNBQUE7SUFDQSxrQkFBQTtFRndkTjtFRXZkTTtJQUNJLGNBQUE7RUZ5ZFY7RUVyZEU7SUFDSSxrQkFBQTtJQUNBLFVBQUE7SUFDQSxrQkFBQTtJQUNBLG1CQUFBO0VGdWROO0VFdGRNO0lBQ0ksa0JBQUE7SUFDQSxtQkFBQTtFRndkVjtBQUNGO0FVL1ZRO0VScEhKO0lBQ0ksa0JBQUE7SUFDQSxVQUFBO0lBQ0EsWUFBQTtJQUNBLFFBQUE7RUZzZE47RUVuZEU7SUFDSSw2QkFBQTtJQUNBLHlCQUFBO0lBQ0EsVUFBQTtFRnFkTjtFRWxkRTtJQUNJLGtCQUFBO0lBQ0EsUUFBQTtJQUNBLG1DQUFBO1lBQUEsMkJBQUE7RUZvZE47RUVsZE07SUFDSSx5QkFBQTtJQUNBLGFBQUE7SUFDQSxrQkFBQTtJQUNBLFFBQUE7SUFDQSxtQ0FBQTtZQUFBLDJCQUFBO0lBQ0Esa0JBQUE7RUZvZFY7RUVsZFU7SUFDSSxjQUFBO0VGb2RkO0FBQ0Y7QVU1WFE7RVJqRkE7SUFDSSxpREFBQTtJQUNBLDBDQUFBO0VGZ2RWO0FBQ0Y7QVVsWVE7RVJ4RUE7SUFDSSxjQUFBO0lBQ0Esa0RBQUE7SUFDQSx3Q0FBQTtFRjZjVjtBQUNGIiwiZmlsZSI6ImNvbXBvbmVudC1wcm9tby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xyXG4gKi9cclxuJGNvbG9yczogKCkgIWRlZmF1bHQ7XHJcbiRmdW5jdGlvbmFsLWNvbG9yczogKCkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gY29sb3IoJGNvbG9yKSB7XHJcbiAgQGlmIG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9ycywgJGNvbG9yKTtcclxuICB9IEBlbHNlIGlmIG1hcC1nZXQoJGZ1bmN0aW9uYWwtY29sb3JzLCAkY29sb3IpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkZnVuY3Rpb25hbC1jb2xvcnMsICRjb2xvcik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAvKiBTdHlsZWZtdCBjaGFuZ2VzIHRoZSBxdW90ZXMgZXZlcnkgdGltZSwgc28gdHVybmluZyBvZmYgdGhlIGVycm9yIGhlcmUgKi9cclxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHJpbmctcXVvdGVzICovXHJcbiAgICBAZXJyb3IgXCJDb2xvciBcXFwiI3skY29sb3J9XFxcImNvdWxkIG5vdCBiZSBmb3VuZFwiO1xyXG4gIH1cclxufVxyXG4iLCIkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5nczogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG5cclxuJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzOiAoXHJcbiAgLy8gdGhpbjogMTAwLFxyXG4gIGxpZ2h0OiAzMDAsXHJcbiAgcmVndWxhcjogNDAwLFxyXG4gIG1lZGl1bTogNTAwLFxyXG4gIGJvbGQ6IDcwMCxcclxuICAvLyBibGFjazogOTAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1kZWZhdWx0OiAoXHJcbiAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQsXHJcbiAgZm9udC1zdHlsZTogbm9ybWFsLFxyXG4gIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICBtYXJnaW46IDAsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuJHVpLXR5cG9ncmFwaHktc3R5bGVzOiAoXHJcbiAgLy9ob21lcGFnZSBoZWFkZXJcclxuICBkNi1saC1sZzogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMzJweCksIDQwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNjFweCksIDc2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMzJweCksIDQwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNTBweCksIDU2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjlweCksIDM2cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNDFweCksIDQ0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNS1saWdodDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjlweCksIDM2cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oNDFweCksIDQ0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cyxsaWdodCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkNDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjZweCksIDMycHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMzRweCksIDQwcHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMzogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjNweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjhweCksIDM2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjFweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjRweCksIDMwcHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkMTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI0cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBoMnN6OiAoXHJcbiAgICBzaXplczogMi45cmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGgzc3o6IChcclxuICAgIHNpemVzOiAyLjJyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcblxyXG4gIGg0c3o6IChcclxuICAgIHNpemVzOiAxLjdyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgaDVzejogKFxyXG4gICAgc2l6ZXM6IDIuNHJlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBsZWFkOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyMnB4KSwgMzJweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyNHB4KSwgMzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYyxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQtc21hbGw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICksXHJcbiAgZC14c21hbGw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAxNnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgYm9keTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbGlnaHQpLFxyXG4gICksXHJcbiAgYm9keTI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBsaW5rOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGRhdGU6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgaGVhZGVyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNnB4KSwgMjBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgc3ViaGVhZGVyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgc2l0ZS1zZWFyY2g6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICAgc206IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgaW5wdXQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgYnJlYWRjcnVtYjogKFxyXG4gICAgc2l6ZXM6ICAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgZmVhdHVyZWQ6IChcclxuICAgIHNpemVzOiAgKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICksXHJcbiAgY29weXJpZ2h0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxM3B4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGNhcHRpb246IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgKSxcclxuICBmb3JtLWxhYmVsOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgZm9ybS1oZWxwZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgcGRmOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBtYXAtcmVzdWx0czogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbGlnaHQpLFxyXG4gICksXHJcbiAgYmV0YS1ub3RpY2U6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzaXRlLXdpZGUtYWxlcnQ6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG5AZWFjaCAkbmFtZSwgJHN0eWxlIGluICR1aS10eXBvZ3JhcGh5LXN0eWxlcyB7XHJcbiAgJHVpLXR5cG9ncmFwaHktc3R5bGVzOiBtYXAtbWVyZ2UoJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAoXHJcbiAgICAjeyRuYW1lfTogbWFwLW1lcmdlKCR1aS10eXBvZ3JhcGh5LWRlZmF1bHQsICRzdHlsZSlcclxuICApKTtcclxufVxyXG5cclxuQGVhY2ggJG5hbWUsICRzdHlsZSBpbiAkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gIC51LXR5cGUtLSN7JG5hbWV9IHtcclxuICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbiAqL1xuLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4ucHJvbW8ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnByb21vIC56Zy1oZWlnaHQtZml4IC5maWVsZC1wcm9tb2ljb24ge1xuICBtYXJnaW4tdG9wOiAxMDBweDtcbn1cbi5wcm9tbyAuZmllbGQtcHJvbW9pY29uIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnByb21vIC5maWVsZC1wcm9tb2ljb24gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5wcm9tby5pbWFnZS1mdWxsLXNpemUgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5wcm9tbyBoMSB7XG4gIG1hcmdpbjogMCAwIDhweCAwO1xufVxuLnByb21vIGgxOm5vdChbY2xhc3NePXUtdHlwZV0pIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMy4ycmVtO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIGgxOm5vdChbY2xhc3NePXUtdHlwZV0pIHtcbiAgICBmb250LXNpemU6IDVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gIH1cbn1cbi5wcm9tbyBoMTpub3QoW2NsYXNzXj11LWNvbG9yXSkge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5wcm9tbyBoMiB7XG4gIG1hcmdpbjogMCAwIDhweCAwO1xufVxuLnByb21vIGgyOm5vdChbY2xhc3NePXUtdHlwZV0pIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMi45cmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucHJvbW8gaDI6bm90KFtjbGFzc149dS1jb2xvcl0pIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4ucHJvbW8gaDMge1xuICBtYXJnaW46IDAgMCA4cHggMDtcbn1cbi5wcm9tbyBoMzpub3QoW2NsYXNzXj11LXR5cGVdKSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMnJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnByb21vIGgzOm5vdChbY2xhc3NePXUtY29sb3JdKSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnByb21vIGg0IHtcbiAgbWFyZ2luOiAwIDAgOHB4IDA7XG59XG4ucHJvbW8gaDQ6bm90KFtjbGFzc149dS10eXBlXSkge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5wcm9tbyBoNDpub3QoW2NsYXNzXj11LWNvbG9yXSkge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5wcm9tbyBoNSB7XG4gIG1hcmdpbjogMCAwIDhweCAwO1xufVxuLnByb21vIGg1Om5vdChbY2xhc3NePXUtdHlwZV0pIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucHJvbW8gaDU6bm90KFtjbGFzc149dS1jb2xvcl0pIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4ucHJvbW8gaDYge1xuICBtYXJnaW46IDAgMCA4cHggMDtcbn1cbi5wcm9tbyBoNjpub3QoW2NsYXNzXj11LXR5cGVdKSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5wcm9tbyBoNjpub3QoW2NsYXNzXj11LXR5cGVdKSB7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIH1cbn1cbi5wcm9tbyBoNjpub3QoW2NsYXNzXj11LWNvbG9yXSkge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5wcm9tbyBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIHAge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxufVxuLnByb21vIHN0cm9uZyB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnByb21vIGEge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMDA3MGNkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAucHJvbW8gYSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4ucHJvbW8gYTpob3ZlciwgLnByb21vIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wcm9tbyBhW2hyZWYqPXBkZl0ge1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wcm9tbyBhW2hyZWYqPXBkZl06OmFmdGVyIHtcbiAgcmlnaHQ6IC0ycHg7XG4gIHRvcDogMDtcbn1cbi5wcm9tbyBhW2hyZWYqPXBkZl06OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9wZGYtcmVkLnN2Zyk7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDIzcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1zaXplOiAyM3B4IDI1cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG4ucHJvbW8gYVtocmVmKj14bHNdIHtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucHJvbW8gYVtocmVmKj14bHNdOjphZnRlciB7XG4gIHJpZ2h0OiAtMnB4O1xuICB0b3A6IDA7XG59XG4ucHJvbW8gYVtocmVmKj14bHNdOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiLnhsc1wiO1xufVxuLnByb21vIGFbaHJlZio9cHB0XSB7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnByb21vIGFbaHJlZio9cHB0XTo6YWZ0ZXIge1xuICByaWdodDogLTJweDtcbiAgdG9wOiAwO1xufVxuLnByb21vIGFbaHJlZio9cHB0XTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5wcHRcIjtcbn1cbi5wcm9tbyBhW2hyZWYqPWRvY10ge1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wcm9tbyBhW2hyZWYqPWRvY106OmFmdGVyIHtcbiAgcmlnaHQ6IC0ycHg7XG4gIHRvcDogMDtcbn1cbi5wcm9tbyBhW2hyZWYqPWRvY106OmFmdGVyIHtcbiAgY29udGVudDogXCIuZG9jXCI7XG59XG4ucHJvbW8gYmxvY2txdW90ZSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgY29sb3I6ICNkYTI1MWQ7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZGEyNTFkO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIGJsb2NrcXVvdGUge1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG59XG4ucHJvbW8gdGFibGUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAycHggc29saWQgI2QyZDJkMjtcbn1cbi5wcm9tbyB0YWJsZSwgLnByb21vIHRhYmxlIHRyLCAucHJvbW8gdGFibGUgdGgsIC5wcm9tbyB0YWJsZSB0ZCB7XG4gIGJvcmRlcjogc29saWQgMnB4ICNkMmQyZDI7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucHJvbW8gdGFibGUgdHIsIC5wcm9tbyB0YWJsZSB0aCwgLnByb21vIHRhYmxlIHRkIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLnByb21vIHRhYmxlIGNhcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5wcm9tbyB0YWJsZSB0ciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5wcm9tbyB0YWJsZSB0aCwgLnByb21vIHRhYmxlIHRkIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGJvcmRlci13aWR0aDogMnB4IDAgMCAycHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4ucHJvbW8gdGFibGUgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZzogN3B4O1xufVxuLnByb21vIHRhYmxlIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4ucHJvbW8gdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5wcm9tbyB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4ucHJvbW8gdWwgbGkge1xuICBwYWRkaW5nOiA1cHggMCA1cHggMDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIHVsIGxpIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cbi5wcm9tbyBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4ucHJvbW8gb2wgbGkge1xuICBwYWRkaW5nOiA1cHggMCA1cHggMDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIG9sIGxpIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjI1cHgpIHtcbiAgLnByb21vIGJsb2NrcXVvdGUge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnByb21vIHRhYmxlIHRoLCAucHJvbW8gdGFibGUgdGQge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuLnByb21vIGgzLnUtdHlwZS0tZDMge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAucHJvbW8gaDMudS10eXBlLS1kMyB7XG4gICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIH1cbn1cbi5wcm9tbyBoMi5jLWhvbWUtcHJvbW9fX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMy4ycmVtO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLnByb21vIGgyLmMtaG9tZS1wcm9tb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgfVxufVxuLnByb21vIHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5wcm9tby5hYnNvbHV0ZS1ib3R0b20tbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wcm9tby5hYnNvbHV0ZS1ib3R0b20tbGluayAuZmllbGQtcHJvbW9saW5rIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xufVxuXG4udS10eXBlLS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi51LXR5cGUtLXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udS10eXBlLS1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udS10eXBlLS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogYnJlYWtwb2ludHMgKi9cbi5wcm9tby5wcm9tby1oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucHJvbW8ucHJvbW8taGVyby5wcm9tby1oZXJvLWhhbGYge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLnByb21vLnByb21vLWhlcm8ucHJvbW8taGVyby1oYWxmIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLnByb21vLnByb21vLWhlcm8gLmZpZWxkLXByb21vdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi5wcm9tby5wcm9tby1oZXJvIC5maWVsZC1wcm9tb3RleHQgPiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLnByb21vLnByb21vLWhlcm8gLmZpZWxkLXByb21vdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5wcm9tby5wcm9tby1oZXJvIC5maWVsZC1wcm9tb3RleHQgaDEge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgfVxuICAucHJvbW8ucHJvbW8taGVybyAuZmllbGQtcHJvbW90ZXh0IGgyLCAucHJvbW8ucHJvbW8taGVybyAuZmllbGQtcHJvbW90ZXh0IGgzLCAucHJvbW8ucHJvbW8taGVybyAuZmllbGQtcHJvbW90ZXh0IGg0IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG5cbi51LXR5cGUtLWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnUtdHlwZS0tcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi51LXR5cGUtLW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi51LXR5cGUtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vKiBicmVha3BvaW50cyAqL1xuLnByb21vLXNoYWRvdyB7XG4gIG1heC13aWR0aDogOTYwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci10b3Atd2lkdGg6IDNweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzg5QzZDQztcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wcm9tby1zaGFkb3cucHJvbW8ge1xuICBmbG9hdDogbGVmdDtcbn1cbi5wcm9tby1zaGFkb3cgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW46IDAgMCAzMHB4IDA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC5wcm9tby1zaGFkb3cgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIG1hcmdpbjogMCAxMHB4IDMwcHggMTBweDtcbiAgfVxufVxuLnByb21vLXNoYWRvdyA+IC5jb21wb25lbnQtY29udGVudDpiZWZvcmUsIC5wcm9tby1zaGFkb3cgPiAuY29tcG9uZW50LWNvbnRlbnQ6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjc7XG4gIGJveC1zaGFkb3c6IDAgMTdweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgaGVpZ2h0OiAyMCU7XG4gIG1heC1oZWlnaHQ6IDEwMHB4O1xuICBtYXgtd2lkdGg6IDQ2MHB4O1xuICB3aWR0aDogNDclO1xuICBjb250ZW50OiBcIlwiO1xuICBib3R0b206IDEwcHg7XG59XG4ucHJvbW8tc2hhZG93ID4gLmNvbXBvbmVudC1jb250ZW50OmJlZm9yZSB7XG4gIGxlZnQ6IDIlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtM2RlZyk7XG59XG4ucHJvbW8tc2hhZG93ID4gLmNvbXBvbmVudC1jb250ZW50OmFmdGVyIHtcbiAgcmlnaHQ6IDIlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcbn1cblxuLmMtcHJvbW8tMmNvbCBpbWcge1xuICBtYXgtd2lkdGg6IDUwMHB4O1xufVxuLmMtcHJvbW8tMmNvbCAuZmllbGQtcHJvbW9pY29uIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4uYy1wcm9tby0yY29sID4gLmNvbXBvbmVudC1jb250ZW50IHtcbiAgcGFkZGluZzogNjRweCAzMnB4O1xufVxuXG4uYy1ob21lLXByb21vIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYy1ob21lLXByb21vX19pbWFnZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jLWhvbWUtcHJvbW9fX3RpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4IDE2cHggMTZweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jLXByb21vLTJjb2wge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLmMtcHJvbW8tMmNvbCA+IC5jb21wb25lbnQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDExODdweDtcbiAgICBwYWRkaW5nOiAxMjhweCAzMnB4O1xuICB9XG4gIC5jLXByb21vLTJjb2wgaW1nIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLmMtcHJvbW9fX2xpbmtzIHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnByb21vLmMtcHJvbW8tc3Vic2NyaWJlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGEyNTFkO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDMycHggMTZweDtcbiAgfVxuICAucHJvbW8uYy1wcm9tby1zdWJzY3JpYmUgaDMge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5jLWhvbWUtcHJvbW9fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0zMnB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICB9XG4gIC5jLWhvbWUtcHJvbW9fX2NvbnRlbnQgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmMtaG9tZS1wcm9tb19fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDY0cHg7XG4gICAgYm90dG9tOiAzMnB4O1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5wcm9tbyAuYy1ob21lLXByb21vX190aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5jLXByb21vLXN1YnNjcmliZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICAuYy1wcm9tby1zdWJzY3JpYmUgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgfVxuICAuYy1wcm9tby1zdWJzY3JpYmUgPiAuY29tcG9uZW50LWNvbnRlbnQgLnUtdHlwZS0tYm9keSB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJvbW8uYy1wcm9tby1zdWJzY3JpYmUgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMzMzMzMyUgKyA2cHgpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDEyLjUlICsgNnB4KSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIyNXB4KSB7XG4gIC5wcm9tby5jLXByb21vLXN1YnNjcmliZSA+IC5jb21wb25lbnQtY29udGVudCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjY2NjY2NyUgKyA2cHgpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDI1JSArIDZweCkgIWltcG9ydGFudDtcbiAgfVxufSIsIi8vIEBpbXBvcnQgJ35zYXNzLW1xL21xJztcclxuQGltcG9ydCAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AaW1wb3J0ICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AaW1wb3J0ICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkBpbXBvcnQgJ21peGlucy9idXR0b24nO1xyXG5AaW1wb3J0ICdtaXhpbnMvbGluayc7XHJcbkBpbXBvcnQgJ21peGlucy9vdmVybGF5JztcclxuQGltcG9ydCAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQGltcG9ydCAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AaW1wb3J0ICdtaXhpbnMvdGFnJztcclxuQGltcG9ydCAnLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzJztcclxuXHJcbi8vIEJlbG93IGFyZSBtaXhpbidzIGZyb20gRlhBXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcblxyXG4kYnJlYWstZGVza3RvcDogOTYwcHg7XHJcbiRicmVhay1tb2JpbGU6IDM4MHB4O1xyXG4kYnJlYWstbW9iaWxlLWhvcml6b250YWw6IDY0MHB4O1xyXG4kYnJlYWstbW9iaWxlLWxhcmdlOiA3ODZweDtcclxuQG1peGluIHdyYXBwZXIoKSB7XHJcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEuNikge1xyXG4gICAgZm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDEwKSArIHB4O1xyXG4gICAgZm9udC1zaXplOiAkc2l6ZVZhbHVlICsgcmVtO1xyXG59XHJcbkBtaXhpbiBvcGVuc2Fucy1mb250LXN0YWNrKCkge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xyXG59XHJcbkBtaXhpbiBsb2FkaW5nLWdpZigpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStEUW9nSUR4d1lYUm9JQ0J2Y0dGamFYUjVQU0l1TWpVaUlHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBek1pQkJNVFlnTVRZZ01DQXdJREFnTVRZZ01DQk5NVFlnTkNCQk1USWdNVElnTUNBd0lERWdNVFlnTWpnZ1FURXlJREV5SURBZ01DQXhJREUySURRaUx6NE5DaUFnUEhCaGRHZ2dabWxzYkQwbkl6RmhPREJpTmljZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXhJRE15SURFMklFd3lPQ0F4TmlCQk1USWdNVElnTUNBd0lEQWdNVFlnTkhvaVBnMEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGcwS0lDQThMM0JoZEdnK0RRbzhMM04yWno0TkNnPT0pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XHJcbiAgICBAaWYgJG1lZGlhPT1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1ob3Jpem9udGFsIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtaG9yaXpvbnRhbCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtbGFyZ2Uge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1sYXJnZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PXRhYmxldCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstbW9iaWxlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWFsbC1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09ZGVza3RvcCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstZGVza3RvcCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGJvcmRlci1iYXNpYygkcG9zaXRpb246YWxsLCAkYm9yZGVyLWNvbG9yOiRib3JkZXItZ3JheSwgJGJvcmRlci13aWR0aDoxcHgpIHtcclxuICAgIEBpZigkcG9zaXRpb249PXRvcCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09Ym90dG9tKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09cmlnaHQpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZml4ZWQtYmcoJHBvcywgJG1pbi1oZWlnaHQ6MjQwcHgpIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3M7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcclxuICAgIC8vIERpcmVjdGlvbiBoYXMgYmVlbiBvbWl0dGVkIGFuZCBoYXBwZW5zIHRvIGJlIGEgY29sb3Itc3RvcFxyXG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKT09ZmFsc2Uge1xyXG4gICAgICAgICRjb2xvci1zdG9wczogJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzO1xyXG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcclxuICAgIH1cclxuICAgIGJhY2tncm91bmQ6IG50aChudGgoJGNvbG9yLXN0b3BzLCAxKSwgMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XHJcbn1cclxuIiwiQGltcG9ydCBcImFic3RyYWN0c1wiO1xyXG4ucHJvbW8ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC56Zy1oZWlnaHQtZml4IHtcclxuICAgICAgICAuZmllbGQtcHJvbW9pY29uIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZpZWxkLXByb21vaWNvbiB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuaW1hZ2UtZnVsbC1zaXplIHtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbXBvcnQgXCJiYXNlL3JpY2h0ZXh0L3JpY2h0ZXh0XCI7XHJcbiAgICBoMy51LXR5cGUtLWQzIHtcclxuICAgICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQzKTtcclxuICAgIH1cclxuICAgIGgyLmMtaG9tZS1wcm9tb19fdGl0bGUge1xyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoZDYpOyAgXHJcbiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcclxuICAgIH1cclxuICAgIHVsIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgfVxyXG59XHJcbkBpbXBvcnQgXCJFOi9HaXRMYWItUnVubmVyL2J1aWxkcy9YZENxNE16ZS8wL3dlYnNpdGUvdHRjLmNhL3NyYy9VSS9zYXNzL3N0eWxlcy9wcm9tby9hYnNvbHV0ZS1ib3R0b20tbGluay5zY3NzXCI7XG5AaW1wb3J0IFwiRTovR2l0TGFiLVJ1bm5lci9idWlsZHMvWGRDcTRNemUvMC93ZWJzaXRlL3R0Yy5jYS9zcmMvVUkvc2Fzcy9zdHlsZXMvcHJvbW8vcHJvbW8taGVyby5zY3NzXCI7XG5AaW1wb3J0IFwiRTovR2l0TGFiLVJ1bm5lci9idWlsZHMvWGRDcTRNemUvMC93ZWJzaXRlL3R0Yy5jYS9zcmMvVUkvc2Fzcy9zdHlsZXMvcHJvbW8vcHJvbW8tc2hhZG93LnNjc3NcIjtcblxyXG5cclxuLmMtcHJvbW8tMmNvbCB7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgICB9XHJcbiAgICAuZmllbGQtcHJvbW9pY29uIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICAgID4gLmNvbXBvbmVudC1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nOiBzcGFjZSg4KSBzcGFjZSg0KTtcclxuICAgIH1cclxufVxyXG5cclxuLmMtaG9tZS1wcm9tbyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jLWhvbWUtcHJvbW9fX2ltYWdlIHtcclxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jLWhvbWUtcHJvbW9fX3RpdGxlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHByaW1hcnktY29udHJhc3QpO1xyXG4gICAgY29sb3I6IGNvbG9yKGJsYWNrKTtcclxuICAgIHBhZGRpbmc6IHNwYWNlKCkgc3BhY2UoMikgc3BhY2UoMikgc3BhY2UoMik7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKG1kKSB7XHJcbiAgICAuYy1wcm9tby0yY29sIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgID4gLmNvbXBvbmVudC1jb250ZW50IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTg3cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHNwYWNlKDE2KSBzcGFjZSg0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jLXByb21vX19saW5rcyB7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbXEoJHVudGlsOiBzbSkge1xyXG4gICAgLnByb21vLmMtcHJvbW8tc3Vic2NyaWJlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwcmltYXJ5KTtcclxuICAgICAgICBjb2xvcjogY29sb3IocHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgcGFkZGluZzogc3BhY2UoNCkgc3BhY2UoMik7XHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBjb2xvcjogY29sb3IocHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jLWhvbWUtcHJvbW9fX2NvbnRlbnQge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IC0gc3BhY2UoNCk7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHNwYWNlKDIpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBzcGFjZSgyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKHNtKSB7XHJcbiAgICAuYy1ob21lLXByb21vX19jb250ZW50IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogc3BhY2UoOCk7XHJcbiAgICAgICAgYm90dG9tOiBzcGFjZSg0KTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAucHJvbW8gLmMtaG9tZS1wcm9tb19fdGl0bGUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGNvbG9yOiBjb2xvcihwcmltYXJ5LWNvbnRyYXN0KSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmMtcHJvbW8tc3Vic2NyaWJlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuXHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgcGFkZGluZzogc3BhY2UoNCk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBzcGFjZSg0KTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC51LXR5cGUtLWJvZHkge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKGJsYWNrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbXEobWQpIHtcclxuICAgIC5wcm9tby5jLXByb21vLXN1YnNjcmliZSB7XHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygxLzEyKjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygzLzI0KjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBtcShsZykge1xyXG4gICAgLnByb21vLmMtcHJvbW8tc3Vic2NyaWJlIHtcclxuICAgICAgICA+IC5jb21wb25lbnQtY29udGVudCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygyLzEyKjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygzLzEyKjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiJGhlYWRpbmdzLXJpY2h0ZXh0OiAoXHJcbiAgICBoMTogZDYsIFxyXG4gICAgaDI6IGgyc3osXHJcbiAgICBoMzogaDNzeixcclxuICAgIGg0OiBoNHN6LCBcclxuICAgIGg1OiBoNXN6LFxyXG4gICAgaDY6IGQyLFxyXG4pO1xyXG5cclxuQGVhY2ggJGhlYWRpbmcsICRzdHlsZSBpbiAkaGVhZGluZ3MtcmljaHRleHQge1xyXG4gICAgI3skaGVhZGluZ30ge1xyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSk7XHJcbiAgICAgICAgJjpub3QoW2NsYXNzXj1cInUtdHlwZVwiXSkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KCRzdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bm90KFtjbGFzc149XCJ1LWNvbG9yXCJdKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihibGFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5wIHtcclxuICBtYXJnaW4tYm90dG9tOiBzcGFjZSg0KTtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGJvZHkpO1xyXG59XHJcblxyXG5zdHJvbmcge1xyXG4gICAgY29sb3I6IGNvbG9yKGJsYWNrKTtcclxufVxyXG5cclxuYSB7XHJcbiAgQGluY2x1ZGUgbGluaztcclxuICBAaW5jbHVkZSBsaW5rLWV4dGVuc2lvbnM7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxufVxyXG5cclxuYmxvY2txdW90ZSB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShkMik7XHJcbiAgbWFyZ2luLWJvdHRvbTogc3BhY2UoNCk7XHJcbiAgY29sb3I6IGNvbG9yKHByaW1hcnkpO1xyXG4gIHBhZGRpbmctbGVmdDogc3BhY2UoMik7XHJcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBjb2xvcihwcmltYXJ5KTtcclxufVxyXG5cclxudGFibGUge1xyXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRib3JkZXItZ3JheTtcclxuXHJcbiAgJiwgdHIsIHRoLCB0ZCB7XHJcbiAgICBib3JkZXI6IHNvbGlkIDJweCAkYm9yZGVyLWdyYXk7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmctYmFzaWMtY29sb3I7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcblxyXG4gIHRyLCB0aCwgdGQge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxuXHJcbiAgY2FwdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctbGlnaHQtZ3JheTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAkZm9udC1iaWc7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcbiAgdHIge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbiAgdGgsIHRkIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAycHggMCAwIDJweDtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgfVxyXG5cclxuICB0aCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRiZy1saWdodC1ncmF5LCA1JSk7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgcGFkZGluZzogN3B4O1xyXG5cclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRkIHtcclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBib3JkZXItbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIHAgfiB1bCxcclxuLy8gcCB+IG9sIHtcclxuLy8gICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbi8vIH1cclxuXHJcbnVsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBzcGFjZSgzKTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogc3BhY2UoNCk7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAwIDVweCAwO1xyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm9sIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBzcGFjZSgzKTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogc3BhY2UoNCk7XHJcbiAgICBcclxuICAgIGxpIHtcclxuICAgICAgICBwYWRkaW5nOiA1cHggMCA1cHggMDtcclxuICAgICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGJvZHkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBpbmNsdWRlIG1xKGxnKSB7XHJcbiAgICBibG9ja3F1b3RlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBzcGFjZSg0KTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0gc3BhY2UoNik7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogc3BhY2UoKTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKG1kKSB7XHJcbiAgICB0YWJsZSB7XHJcbiAgICAgICAgdGgsIHRkIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiQGltcG9ydCAnLi92YXJpYWJsZXMnO1xyXG5AaW1wb3J0ICd+aW90YWNzcy10b29scy10eXBlL3Rvb2xzLnR5cGUnO1xyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpIHtcclxuICBmb250LWZhbWlseTogaWYoJGZvbnQtZmFtaWx5ICE9IG51bGwsICRmb250LWZhbWlseSwgJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdCk7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHkoJHN0eWxlKSB7XHJcbiAgQGlmIG1hcC1oYXMta2V5KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSB7XHJcbiAgICAkc3R5bGU6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpO1xyXG4gICAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRzdHlsZSwgZm9udC1mYW1pbHkpO1xyXG5cclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHkpO1xyXG4gICAgQGluY2x1ZGUgaW90YS10eXBlKG1hcC1nZXQoJHN0eWxlLCBzaXplcykpO1xyXG5cclxuICAgIC8vIFJlbW92ZSBwcm9wZXJ0aWVzIHRoYXQgZG8gbm90IG5lZWQgdG8gYmUgZ2VuZXJhdGVkIGJlbG93XHJcbiAgICAkcHJvcHM6IG1hcC1yZW1vdmUoJHN0eWxlLCBmb250LWZhbWlseSwgbWFyZ2luLCBzaXplcyk7XHJcbiAgICAka2V5czogbWFwLWtleXMoJHByb3BzKTtcclxuXHJcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcclxuICAgICAgI3ska2V5fTogbWFwLWdldCgkcHJvcHMsICRrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgQHdhcm4oJ0NvdWxkIG5vdCBmaW5kIGAjeyRzdHlsZX1gIGluIGAkdWktdHlwb2dyYXBoeS1zdHlsZXNgJyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdWktdHlwb2dyYXBoeS1tYXJnaW4oJHN0eWxlKSB7XHJcbiAgbWFyZ2luOiBtYXAtZ2V0KG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpLCBtYXJnaW4pO1xyXG59XHJcbiIsIkBtaXhpbiBfaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKSB7XG5cbiAgQGlmICggbGVuZ3RoKCRzaXplcykgPT0gMiApIHtcbiAgICBmb250LXNpemU6IG50aCgkc2l6ZXMsIDEpO1xuICAgIGxpbmUtaGVpZ2h0OiBudGgoJHNpemVzLCAyKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6ICRzaXplczsgIFxuICB9XG4gIFxufVxuIiwiQG1peGluIF9pb3RhLWdlbmVyYXRlLXR5cGUtc2l6ZXMoJHZhbHVlcywgJGJyZWFrcG9pbnRzKSB7XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ21hcCcge1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCR2YWx1ZXMsIG51bGwpIHtcblxuICAgICAgQGluY2x1ZGUgX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKG1hcC1nZXQoJHZhbHVlcywgbnVsbCkpO1xuXG4gICAgfVxuICBcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHNpemVzIGluICR2YWx1ZXMge1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xuICAgICAgXG4gICAgICAgIEBtZWRpYSAje21hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCl9IHtcbiAgICAgIFxuICAgICAgICAgIEBpbmNsdWRlIF9pb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZXMpO1xuXG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbnVtYmVyJyBvciB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG5cbiAgICBAaW5jbHVkZSBfaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHZhbHVlcyk7XG5cbiAgfVxufVxuIiwiJGV4dGVuc2lvbnM6IHBkZiB4bHMgcHB0IGRvYztcclxuXHJcbkBtaXhpbiBsaW5rIHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGxpbmspO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWQge1xyXG4gIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgY29sb3I6IGNvbG9yKHByaW1hcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWRzbSB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICBjb2xvcjogY29sb3IocHJpbWFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstLXBkZiB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShwZGYpO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1hcnJvdyB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShwZGYpO1xyXG4gIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHNwYWNlKDEpO1xyXG4gICAgaGVpZ2h0OiBzcGFjZSgyLjUpO1xyXG4gICAgd2lkdGg6IHNwYWNlKDIuNSk7XHJcbiAgICBib3R0b206IDNweDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvYXJyb3ctYmFja2dyb3VuZC1yaWdodC1vdXRsaW5lLnN2ZycpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB9XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay1leHRlbnNpb25zIHtcclxuICBAZWFjaCAkZXh0ZW5zaW9uIGluICRleHRlbnNpb25zIHtcclxuICAgICZbaHJlZio9XCIjeyRleHRlbnNpb259XCJdIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogc3BhY2UoMC41KTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkZXh0ZW5zaW9uID09IHBkZiB7XHJcbiAgICAgICZbaHJlZio9XCIjeyRleHRlbnNpb259XCJdOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL3BkZi1yZWQuc3ZnKTtcclxuICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjNweCAyNXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAmW2hyZWYqPVwiI3skZXh0ZW5zaW9ufVwiXTo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiLiN7JGV4dGVuc2lvbn1cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiLy8gVXNlIGNvbG9yIGZ1bmN0aW9ucyBmb3IgVFRDXHJcbi8vIE5hbWVzIHRha2VuIGZyb20gaHRtbGNzc2NvbG9yLmNvbSBpZiBub3QgZGVzY3JpcHRpdmUgZW5vdWdoIGZyb20gemVwbGluXHJcbiRjb2xvcnM6IChcclxuICB3aGl0ZTogI2ZmZmZmZixcclxuICB3aGl0ZS1zbW9rZTogI2YzZjNmMyxcclxuICBjaGVycnktcmVkOiAjZGEyNTFkLFxyXG4gIHNjYXJsZXQ6Izc0MDAwMCxcclxuICBjYXJtaW5lOiAjYTMwMDFjLFxyXG4gIGNlcnVsZWFuOiMwMDcwY2QsXHJcbiAgb2NlYW4tYmx1ZTogIzA2NTZhNSxcclxuICBjZXJ1bGVhbi10d286ICMwMDlhZGUsXHJcbiAgZ29sZGVuLXllbGxvdzogI2ZmYzYyNyxcclxuICB3YXJtLWdyZXk6ICM3Njc2NzYsXHJcbiAgZ3JleTI5OiAjNGE0YTRhLFxyXG4gIGdyZXk3MDogI2IzYjNiMyxcclxuICBkdXN0eS1ncmV5OiAjZWRlZGVkLFxyXG4gIHdhcm0tZ3JleS0yOiAjOTc5Nzk3LFxyXG4gIGRpbS1ncmV5OiAjNjk2OTY5LFxyXG4gIHdoaXRlLXR3bzogI2Q1ZDVkNSxcclxuICB3aGl0ZS10aHJlZTogI2QyZDJkMixcclxuICBnYWluc2Jvcm86ICNkOGQ4ZDgsXHJcbiAgbmVybzogIzFlMWUxZSxcclxuICBnb2xkZW4tcG9wcHk6ICNmOGMzMDAsXHJcbiAgZXhwcmVzcy1ncmVlbjogIzAwOTIzZixcclxuICBuaWdodC1ibHVlOiAjMDI0MTgyLFxyXG4gIGNvbW11bml0eS1ncmV5OiAjODA4MDgwLFxyXG4gIG1hdXZlLXRhdXBlOiAjOTc1ODZCLFxyXG4gIGJsYWNrOiAjMDAwMDAwLFxyXG4gIHNwaW5rOiAjRUI2RkJELFxyXG4gIG9yYW5nZTojRUI4NzM4LFxyXG4gIHNodXR0bGUtb3JhbmdlOiNFQjg3MzgsXHJcbik7XHJcblxyXG4kZnVuY3Rpb25hbC1jb2xvcnM6IChcclxuICBwcmltYXJ5LWNvbnRyYXN0OiBjb2xvcih3aGl0ZSksXHJcbiAgcHJpbWFyeS1jb250cmFzdC1kYXJrOiBjb2xvcih3aGl0ZS1zbW9rZSksXHJcbiAgcHJpbWFyeTogY29sb3IoY2hlcnJ5LXJlZCksXHJcbiAgcHJpbWFyeS1kYXJrOiBjb2xvcihzY2FybGV0KSxcclxuICBwcmltYXJ5LWRhcmtlcjogY29sb3IoY2FybWluZSksXHJcbiAgc2Vjb25kYXJ5OiBjb2xvcihjZXJ1bGVhbiksXHJcbiAgc2Vjb25kYXJ5LWRhcms6IGNvbG9yKG9jZWFuLWJsdWUpLFxyXG4gIHNlY29uZGFyeS1saWdodDogY29sb3IoY2VydWxlYW4tdHdvKSxcclxuICBhY2NlbnQteWVsbG93OiBjb2xvcihnb2xkZW4teWVsbG93KSxcclxuICBncmV5OiBjb2xvcihncmV5MjkpLFxyXG4gIGdyZXktbWVudTogY29sb3IoZHVzdHktZ3JleSksXHJcbiAgZ3JleS1ib3JkZXI6IGNvbG9yKHdhcm0tZ3JleSksXHJcbiAgZ3JleS1ib3JkZXItMjogY29sb3Iod2hpdGUtdGhyZWUpLFxyXG4gIGdyZXktcGxhY2Vob2xkZXI6IGNvbG9yKGdyZXk3MCksXHJcbiAgZ3JleS0yOiBjb2xvcih3YXJtLWdyZXktMiksXHJcbiAgY2Fyb3VzZWwtZG90czogY29sb3IoZGltLWdyZXkpLFxyXG4gIGdyZXktbGlnaHQ6IGNvbG9yKGdhaW5zYm9ybyksXHJcbiAgdGFiLS1kaXNhYmxlZDogY29sb3Iod2hpdGUtdHdvKSxcclxuICBiYWNrZHJvcDogcmdiYSgwLDAsMCwwLjcpLFxyXG4gIGJsYWNrOiBjb2xvcihibGFjayksXHJcbiAgc2l0ZS13aWRlLWFsZXJ0OiBjb2xvcihnb2xkZW4tcG9wcHkpLFxyXG4gIHZpc2l0ZWQtLWxpbms6IGNvbG9yKG1hdXZlLXRhdXBlKSxcclxuKTtcclxuXHJcbi8vQmFja2dyb3VuZHMgY29sb3JzXHJcbiRiZy10cmFuc3BhcmVudDp0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGJnLWJhc2ljLWNvbG9yOiNGRkZGRkYgIWRlZmF1bHQ7XHJcbiRiZy1iYXNpYy1jb2xvci1hY3RpdmU6ICNjY2NjY2MgIWRlZmF1bHQ7XHJcbiRiZy1saWdodC1ncmF5OiAjZjdmN2Y3ICFkZWZhdWx0O1xyXG4kYmctbGlnaHQtZ3JheS1hY3RpdmU6ICNkYWRhZGEgIWRlZmF1bHQ7XHJcbiRiZy1ibHVlOiM4OUM2Q0M7XHJcbiRiZy1ibHVlLWFjdGl2ZTogIzE1OTA5YyAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnU6I2VkZWJlYiAhZGVmYXVsdDtcclxuJGJnLXN1Ym1lbnUtYWN0aXZlOiNmNmY2ZjYgIWRlZmF1bHQ7XHJcbiRiZy1ibGFjazojMDAwMDAwO1xyXG4kYmctYmxhY2stYWN0aXZlOiMzZDNkM2Q7XHJcbi8vVGV4dCBjb2xvcnNcclxuJHRleHQtd2hpdGU6I2ZmZiAhZGVmYXVsdDtcclxuJHRleHQtaGVhZGluZy1jb2xvcjogIzIyMiAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWM6Izc0NzQ3NCAhZGVmYXVsdDtcclxuJHRleHQtYmFzaWMtYWN0aXZlOiM4Nzg3ODcgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJsdWU6Izg5QzZDQyAhZGVmYXVsdDtcclxuJHRleHQtYmx1ZS1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuJHRleHQtc3VibWVudS1hY3RpdmU6ICMyMjIgIWRlZmF1bHQ7XHJcbiR0ZXh0LWRpc2FibGVkOiAjYWFhICFkZWZhdWx0O1xyXG4kdGV4dC1ibGFjazogIzAwMDAwMCAhZGVmYXVsdDtcclxuLy9Cb3JkZXIgY29sb3JzXHJcbiRib3JkZXItZ3JheTogI2QyZDJkMiAhZGVmYXVsdDtcclxuJGJvcmRlci13aGl0ZTogI2ZmZmZmZiAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1jb2xvcjogIzg5QzZDQyAhZGVmYXVsdDtcclxuJGJvcmRlci1iYXNpYy1hY3RpdmU6IzE1OTA5YyAhZGVmYXVsdDtcclxuXHJcbi8vU3R5bGVzIGZvciBlYWNoIGNvbXBvbmVudCBzZXBhcmF0ZWx5XHJcbi8vQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24taGVhZGVyLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYmctYWN0aXZlOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi10b2dnbGVkLWJnOiB0cmFuc3BhcmVudDtcclxuJGFjY29yZGlvbi1oZWFkZXItYm9yZGVyOiAkYm9yZGVyLWdyYXk7XHJcbi8vQnJlYWRjcnVtYlxyXG4kYnJlYWRjcnVtYi1kcm9wZG93bi1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRicmVhZGNydW1iLWRyb3Bkb3duLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJGJyZWFkY3J1bWItZHJvcGRvd24tdGV4dC1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbiRicmVhZGNydW1iLWJnOnRyYW5zcGFyZW50O1xyXG4kYnJlYWRjcnVtYi1jb2xvcjokdGV4dC1iYXNpYztcclxuJGJyZWFkY3J1bWItY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWUtYWN0aXZlO1xyXG4vL0J1dHRvbnMgY29sb3JzXHJcbiRidG4tZ3JlZW4tbGlnaHQ6ICNhMGNlNGU7XHJcbiRidG4tZ3JlZW46ICM5MmJlNDM7XHJcbiRidG4tcmVkLWFjdGl2ZTogI2MzNGUzMDtcclxuJGJ0bi1yZWQ6ICNiYzQ1MjY7XHJcbi8vQ2Fyb3VzZWxcclxuJGNhcm91c2VsLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGNhcm91c2VsLW5hdi1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kY2Fyb3VzZWwtbmF2LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0NvbnRhaW5lciBjb21wb25lbnRcclxuJGNvbnRhaW5lci10aXRsZS1yb3ctYmc6ICRiZy1saWdodC1ncmF5O1xyXG4vL0V2ZW50IExpc3RcclxuJGV2ZW50LWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRldmVudC1saXN0LWl0ZW0tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZXZlbnQtbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kZXZlbnQtbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9DYWxlbmRhclxyXG4kY2FsZW5kYXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kY2FsZW5kYXItaGVhZGVyLWJnOiRiZy1iYXNpYy1jb2xvci1hY3RpdmU7XHJcbiRjYWxlbmRhci1kYXktY29sb3ItYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4vL0ZlZWRcclxuJGZlZWQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmZWVkLWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbi8vRmllbGQgRWRpdG9yXHJcbiRmaWVsZC1lZGl0b3ItYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWVsZC1lZGl0b3ItdGFibGUtYm9yZGVyOiRiZy1saWdodC1ncmF5O1xyXG4kZmllbGQtZWRpdG9yLXRleHQtaGVhZGVyOiR0ZXh0LWJsYWNrO1xyXG4kZmllbGQtZWRpdG9yLXRleHQ6JHRleHQtYmFzaWM7XHJcbi8vRmlsZSBMaXN0XHJcbiRmaWxlLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuJGZpbGUtbGlzdC10aXRsZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC10aXRsZS1ib3JkZXI6dHJhbnNwYXJlbnQ7XHJcbiRmaWxlLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGZpbGUtbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRmaWxlLWxpc3QtaXRlbS1zaXplOiR0ZXh0LWJhc2ljO1xyXG4kZmlsZS1saXN0LWl0ZW0tYm9yZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9GbGlwXHJcbiRmbGlwLWJnOnRyYW5zcGFyZW50O1xyXG4kZmxpcC1zbGlkZXMtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4vL0dhbGxlcnlcclxuJGdhbGxlcmlhLWNvbnRhaW5lci1iZzokYmctYmxhY2s7XHJcbiRnYWxsZXJ5LWluZm8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kZ2FsbGVyeS1pbmZvLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRnYWxsZXJ5LWluZm8tdGV4dDokdGV4dC1iYXNpYztcclxuJGdhbGxlcnktbmF2LWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJGdhbGxlcnktbmF2OiR0ZXh0LWJhc2ljO1xyXG4kZ2FsbGVyeS1jb3VudGVyLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4vL0xhbmd1YWdlIHNlbGVjdG9yXHJcbiRsYW5nLXNlbGVjdG9yLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRsYW5nLXNlbGVjdG9yLWl0ZW0tYmctYWN0aXZlOiRiZy1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXI6JGJvcmRlci13aGl0ZTtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1NpdGUgc2VsZWN0b3JcclxuJHNpdGUtc2VsZWN0b3ItY29sb3I6JHRleHQtYmFzaWM7XHJcbi8vTGluayBMaXN0XHJcbiRsaW5rLWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaGVhZGVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbGluay1saXN0LWl0ZW1zLWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRsaW5rLWxpc3QtaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vTG9naW5cclxuJGxvZ2luLWJnOnRyYW5zcGFyZW50O1xyXG4vL0xvZ291dFxyXG4kbG9nb3V0LWJnOnRyYW5zcGFyZW50O1xyXG4kbG9nb3V0LWxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxvZ291dC1saW5rLXRleHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGxvZ291dC1saW5rLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL01hcFxyXG4kbWFwLWJnOnRyYW5zcGFyZW50O1xyXG4kbWFwLWJvcmRlcjpub25lO1xyXG4vL1BhZ2UgTGlzdFxyXG4kcGFnZS1saXN0LWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLWJnOiRiZy10cmFuc3BhcmVudDtcclxuJHBhZ2UtbGlzdC1pdGVtLXRpdGxlLXRleHQ6JHRleHQtYmxhY2s7XHJcbiRwYWdlLWxpc3QtaXRlbS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9QYWdpbmF0aW9uXHJcbiRsaXN0LXBhZ2luYXRpb24tYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjokdGV4dC13aGl0ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6JHRleHQtYmx1ZTtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtYmc6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vUGxheSBsaXN0IFxyXG4kcGxheS1saXN0LWJnOnRyYW5zcGFyZW50O1xyXG4kcGxheS1saXN0LWl0ZW0tYmc6dHJhbnNwYXJlbnQ7XHJcbiRwbGF5LWxpc3QtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHBsYXktbGlzdC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJHBsYXktbGlzdC1uYXYtYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiRwbGF5LWxpc3QtaXRlbS1iZzokYmctbGlnaHQtZ3JheTtcclxuJHBsYXktbGlzdC1pdGVtLWFjdGl2ZS1iZzokYmctYmx1ZTtcclxuJHBsYXktbGlzdC1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHBsYXktbGlzdC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Qcm9tb1xyXG4kcHJvbW8tYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kcHJvbW8tYmctaGVybzpyZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiRwcm9tby1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kcHJvbW8taGVyby10ZXh0LWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kcHJvbW8tc2hhZG93LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1JpY2ggVGV4dCBDb250ZW50XHJcbiRyaWNoLWNvbnRlbnQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRyaWNoLWNvbnRlbnQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRyaWNoLWNvbnRlbnQtYm9yZGVyOm5vbmU7XHJcbi8vU2VhcmNoXHJcbiRzZWFyY2gtZmlsdGVyOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWZpbHRlci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9NZW51IGNvbG9yc1xyXG4kbWVudS1ob3Zlci1jb2xvcjojMWI4MDllO1xyXG4kbWVudS1hY3RpdmUtY29sb3I6IzE3NmY4OTtcclxuLy9OYXZpZ2F0aW9uXHJcbiRuYXYtYmc6dHJhbnNwYXJlbnQ7XHJcbiRuYXYtY29sb3Itcm9vdDokdGV4dC1iYXNpYztcclxuJG5hdi1jb2xvci1yb290LWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJG5hdi1ib3JkZXItcm9vdDokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWJvcmRlci1yb290LWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kbmF2LWNvbG9yLXN1Ym1lbnU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtY29sb3Itc3VibWVudS1hY3RpdmU6JHRleHQtc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctcm9vdDokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudTokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYmctc3VibWVudS1hY3RpdmU6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kbmF2LWJvcmRlci1zdWJtZW51OiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRuYXYtc3VibWVudS1pdGVtLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRuYXYtc3VibWVudS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vU29jaWFsIE1lZGlhIFNoYXJlXHJcbiRzb2NpYWwtbWVkaWEtc2hhcmUtYmc6dHJhbnNwYXJlbnQ7XHJcbi8vVGFic1xyXG4kdGFiLWhlYWRpbmctYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0YWItaGVhZGluZy1hY3RpdmUtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdGFiLWhlYWRpbmctY29sb3I6JHRleHQtaGVhZGluZy1jb2xvcjtcclxuJHRhYi1oZWFkaW5nLWFjdGl2ZS1jb2xvcjokdGV4dC1ibGFjaztcclxuJHRhYi1jb250YWluZXItYmc6dHJhbnNwYXJlbnQ7XHJcbiR0YWItY29udGFpbmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1RpdGxlXHJcbiR0aXRsZS1iZzp0cmFuc3BhcmVudDtcclxuJHRpdGxlLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdGl0bGUtY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuLy9Ub2dnbGVcclxuJHRvZ2dsZS1oZWFkZXItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLWNvbnRlbnQtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdG9nZ2xlLXNob3ctY29sb3I6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtYnRuLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLWJ0bi1hY3RpdmUtYmc6I2UwZTBlMDtcclxuJHNlYXJjaC1idG4tYWN0aXZlLWJvcmRlcjojYWRhZGFkO1xyXG4vL0ltYWdlIGNvbXBvbmVudFxyXG4kaW1hZ2UtY2FwdGlvbi1jb2xvcjokdGV4dC1iYXNpYztcclxuLy9NZWRpYSBMaW5rIENvbXBvbmVudFxyXG4kbWVkaWEtbGluay1iZzp0cmFuc3BhcmVudDtcclxuJG1lZGlhLWxpbmstYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRtZWRpYS1saW5rLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbWVkaWEtbGluay1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1RhZyBDb21wb25lbnRcclxuJHRhZy1jb2xvcjokdGV4dC1iYXNpYztcclxuJHRhZy1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kdGFnLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbiR0YWctbGluay1iZyA6JGJnLWJsdWU7XHJcbiR0YWctbGluay1iZy1hY3RpdmUgOiRiZy1ibHVlLWFjdGl2ZTtcclxuJHRhZy1saW5rLWNvbG9yIDokdGV4dC13aGl0ZTtcclxuLy9MaW5rIENvbXBvbmVudFxyXG4kbGluay1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstdGV4dC1jb2xvcjokdGV4dC1iYXNpYztcclxuJGxpbmstdGV4dC1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kbGluay1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9PdmVybGF5XHJcbiRvdmVybGF5LWJnOiRiZy1saWdodC1ncmF5O1xyXG4vL1NlYXJjaCBDb21wb25lbnRzXHJcbiRzZWFyY2gtdGl0bGUtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRzZWFyY2gtdGl0bGUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtaXRlbS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kc2VhcmNoLWl0ZW0tYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWFjdGl2ZTokdGV4dC1ibHVlO1xyXG4kc2VhcmNoLWZpbHRlci1yYWRpdXMtYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHNlYXJjaC1maWx0ZXItcmFkaXVzLWJnOiRib3JkZXItZ3JheTtcclxuLy9cclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJnLWFjdGl2ZTokYmctYmx1ZTtcclxuJHNlYXJjaC1maWx0ZXItc2xpZGVyLWJ0bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbi8vU2VyYWNoIFBhZ2luYXRpb25cclxuJHNlYXJjaC1wYWdpbmF0aW9uLWJnOnRyYW5zcGFyZW50O1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24taG92ZXItY29sb3I6JHRleHQtYmx1ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJnOiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJHNlYXJjaC1wYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9TZWFyY2ggc2VsZWN0b3JcclxuJHNlcmFjaC1zZWxlY3Rvci12YXJpYW50LWNvbG9yLWFjdGl2ZTogJHRleHQtYmx1ZS1hY3RpdmU7XHJcbi8vVHlwZWhlYWRcclxuJHR0LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdHQtY29sb3ItYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiR0dC1wcmljZS1jb2xvcjokdGV4dC1ibHVlO1xyXG4kdHQtZHJvcGRvd24tYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiR0dC1zdWdnZXN0aW9uLWJnLWFjdGl2ZTokYmctbGlnaHQtZ3JheS1hY3RpdmU7XHJcbiR0dC1kcm9wZG93bi1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4vL1ZpZGVvXHJcbiR2aWRlby1jb250cm9sLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJHZpZGVvLXRpbWUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiR2aWRlby10aW1lLXRvdGFsLWJnOiRiZy1ibGFjaztcclxuJHZpZGVvLXRpbWUtaGFuZGxlLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiR2aWRlby10aW1lLWhhbmRsZS1iZzokYmctYmxhY2s7XHJcbi8vTWFpblxyXG4kcGFnZS1iZzogJGJnLWJhc2ljLWNvbG9yO1xyXG4kcGFnZS1iZy1lZGl0b3I6bm9uZTtcclxuIiwiJGZvbnQtc21hbGw6MTFweDtcclxuJGZvbnQtbm9ybWFsOjEzcHg7XHJcbiRmb250LW1lZGl1bToxNnB4O1xyXG4kZm9udC1iaWc6MjBweDtcclxuJGZvbnQtZXh0cmFiaWc6MjRweDtcclxuLy9OYXZpZ2F0aW9uXHJcbiRuYXZpZ2F0aW9uLWZvbnQtYmFzaWM6MThweDtcclxuJG5hdmlnYXRpb24tZm9udC1iYXNpYy1zdWJtZW51OjE0cHg7XHJcbi8vVGFic1xyXG4kdGFiLWZvbnQtaGVhZGVyOjE2cHg7XHJcbi8vQWNjb3JkaW9uXHJcbiRhY2NvcmRpb24taGVhZGVyOjE2cHg7XHJcbi8vQnJlYWRjcnVtYlxyXG4kYnJlYWRjcnVtYi1mb250OjE1cHg7XHJcbi8vIExpbmsgTGlzdFxyXG4kbGluay1saXN0LXRpdGxlLWZvbnQ6MTVweDtcclxuIiwiLy9tb2RkZWQgdG8gdXNlIHB4XHJcblxyXG5AY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcclxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxyXG5cclxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XHJcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXHJcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBSZXNwb25zaXZlIG1vZGVcclxuLy8vXHJcbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcclxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXHJcbi8vL1xyXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxyXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gb2xkLWllLnNjc3NcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXHJcbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJyZWFrcG9pbnQgbGlzdFxyXG4vLy9cclxuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXHJcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXHJcbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXHJcbi8vL1xyXG4vLy8gQHR5cGUgTWFwXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLWJyZWFrcG9pbnRzOiAoXHJcbiAgICBtb2JpbGU6ICAzMjBweCxcclxuICAgIHRhYmxldDogIDc0MHB4LFxyXG4gICAgZGVza3RvcDogOTgwcHgsXHJcbiAgICB3aWRlOiAgICAxMzAwcHhcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXHJcbi8vL1xyXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXHJcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcclxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3NcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xyXG4vLy8gIC8vXHJcbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXHJcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xyXG5cclxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vXHJcbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxyXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcclxuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxyXG4vLy9cclxuLy8vIEB0eXBlIG1hcFxyXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcclxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcclxuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XHJcbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XHJcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XHJcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XHJcbiAgICAgICAgQHJldHVybiAkcHg7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcclxuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcclxuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcclxuLy8vXHJcbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXHJcbi8vL1xyXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC5lbGVtZW50IHtcclxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcclxuLy8vICAgICAgY29sb3I6IHJlZDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGdyZWVuO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcclxuLy8vICAgICAgY29sb3I6IHRlYWw7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcclxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcclxuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG5AbWl4aW4gbXEoXHJcbiAgICAkZnJvbTogZmFsc2UsXHJcbiAgICAkdW50aWw6IGZhbHNlLFxyXG4gICAgJGFuZDogZmFsc2UsXHJcbiAgICAkZW1zLW9uOiBmYWxzZSxcclxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcclxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxyXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxyXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuKSB7XHJcbiAgICAkbWluLXdpZHRoOiAwO1xyXG4gICAgJG1heC13aWR0aDogMDtcclxuICAgICRtZWRpYS1xdWVyeTogJyc7XHJcblxyXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXHJcbiAgICBAaWYgJGZyb20ge1xyXG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkZnJvbSksICgkZnJvbSkpO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSksIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxyXG4gICAgQGlmICR1bnRpbCB7XHJcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkdW50aWwpLCgkdW50aWwpKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgJG1heC13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtLCBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykgLSAxcHgpOyBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcclxuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXHJcbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xyXG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICR0YXJnZXQtd2lkdGg6IGlmKCRlbXMtb24sIG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCksICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XHJcblxyXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXHJcbiAgICAgICAgQGlmIChcclxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxyXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIGFuZCAoXHJcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXHJcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8vIFF1aWNrIHNvcnRcclxuLy8vXHJcbi8vLyBAYXV0aG9yIFNhbSBSaWNoYXJkc1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gU29ydGVkIExpc3RcclxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XHJcbiAgICAkbGVzczogICgpO1xyXG4gICAgJGVxdWFsOiAoKTtcclxuICAgICRsYXJnZTogKCk7XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcclxuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XHJcblxyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGVxdWFsOiBhcHBlbmQoJGVxdWFsLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtIDwgJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcclxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxhcmdlOiBhcHBlbmQoJGxhcmdlLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcclxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XHJcbiAgICAkbWFwLXNvcnRlZDogKCk7XHJcbiAgICAkbWFwLWtleXM6IG1hcC1rZXlzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcclxuXHJcbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcclxuICAgICAgICAkaW5kZXg6IGluZGV4KCRtYXAtdmFsdWVzLCAkdmFsdWUpO1xyXG4gICAgICAgICRrZXk6IG50aCgkbWFwLWtleXMsICRpbmRleCk7XHJcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xyXG5cclxuICAgICAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxyXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxyXG4gICAgICAgICRtYXAtdmFsdWVzOiBzZXQtbnRoKCRtYXAtdmFsdWVzLCAkaW5kZXgsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJG1hcC1zb3J0ZWQ7XHJcbn1cclxuXHJcbi8vLyBBZGQgYSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xyXG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxyXG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xyXG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcclxuICAgICRtcS1icmVha3BvaW50czogX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtcS1icmVha3BvaW50cykgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XHJcbi8vL1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XHJcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIGJvZHk6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBjb2xvcjogI0MwOTg1MztcclxuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDA7XHJcblxyXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cclxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcclxuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XHJcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG59XHJcbiIsIi5wcm9tby5hYnNvbHV0ZS1ib3R0b20tbGluayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAuZmllbGQtcHJvbW9saW5rIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9hYnN0cmFjdHMvdmFyc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vYWJzdHJhY3RzL21peGluc1wiO1xyXG4ucHJvbW8ucHJvbW8taGVybyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAmLnByb21vLWhlcm8taGFsZiB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKGFsbC1tb2JpbGUpIHtcclxuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5maWVsZC1wcm9tb3RleHQge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBjb2xvcjogJHByb21vLWhlcm8tdGV4dC1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvbW8tYmctaGVybztcclxuICAgICAgICA+YSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oYWxsLW1vYmlsZSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMi40KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoMiwgaDMsIGg0IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyLjApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCIuLi8uLi9hYnN0cmFjdHMvdmFyc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vYWJzdHJhY3RzL21peGluc1wiO1xyXG4ucHJvbW8tc2hhZG93IHtcclxuICAgIG1heC13aWR0aDogOTYwcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHByb21vLXNoYWRvdy1ib3JkZXI7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmLnByb21vIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICAgID4uY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oYWxsLW1vYmlsZSkge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMTBweCAzMHB4IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMzBweCAwO1xyXG4gICAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC43O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDE3cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuNyk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjAlO1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA0NjBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDQ3JTtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IDIlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtM2RlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICByaWdodDogMiU7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= */
