/**
 * 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 */
.search-results {
  /* breakpoints */
}
.search-results .ttc-loading {
  height: 100px;
  color: #da251d;
  font-size: 90px;
  text-indent: -9999em;
  overflow: hidden;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  margin: 72px auto;
  position: relative;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load6 1.7s infinite ease, round 1.7s infinite ease;
  animation: load6 1.7s infinite ease, round 1.7s infinite ease;
}
.search-results .u-type--light {
  font-weight: 300;
}
.search-results .u-type--regular {
  font-weight: 400;
}
.search-results .u-type--medium {
  font-weight: 500;
}
.search-results .u-type--bold {
  font-weight: 700;
}
.search-results input {
  border-radius: 0;
}
.search-results .search-result-list {
  padding-top: 5px;
}
.search-results.vertical .search-result-list > li {
  display: inline-block;
  vertical-align: top;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  width: 100%;
}
.search-results.vertical .search-result-list > li .field-title {
  display: block;
}
.search-results.vertical .search-result-list > li:hover {
  border-bottom: 1px 1px 2px 1px solid #15909c;
}
.search-results.horizontal .search-result-list {
  width: 100%;
}
.search-results.horizontal .search-result-list:after {
  content: "";
  display: table;
  clear: both;
}
.search-results.horizontal .search-result-list > li {
  display: inline-block;
  float: left;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 1px 1px 2px 1px solid #d2d2d2;
  position: relative;
  min-height: 120px;
  height: 100%;
  margin: 0 2% 10px 0;
  padding: 5px;
  width: 23%;
}
.search-results.horizontal .search-result-list > li .field-title {
  display: block;
  padding: 0 5px;
  text-align: center;
}
.search-results.horizontal .search-result-list > li .field-title a {
  font-size: 1.8rem;
  line-height: 20px;
  text-decoration: none;
  font-weight: normal;
}
.search-results.horizontal .search-result-list > li:hover {
  border-bottom: 1px 1px 2px 1px solid #15909c;
}
.search-results .search-results-overlay {
  display: none;
}
.search-results.loading-in-progress {
  min-height: 200px;
}
.search-results.loading-in-progress .search-result-overlay {
  background-color: rgba(255, 255, 255, 0.9);
}
.search-results.loading-in-progress .search-result-overlay:after {
  content: "";
  background-image: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSJibGFjayI+CiAgPHBhdGggIG9wYWNpdHk9Ii4yNSIgZD0iTTE2IDAgQTE2IDE2IDAgMCAwIDE2IDMyIEExNiAxNiAwIDAgMCAxNiAwIE0xNiA0IEExMiAxMiAwIDAgMSAxNiAyOCBBMTIgMTIgMCAwIDEgMTYgNCIvPgogIDxwYXRoIGZpbGw9JyNkZGRkZGQnIGQ9Ik0xNiAwIEExNiAxNiAwIDAgMSAzMiAxNiBMMjggMTYgQTEyIDEyIDAgMCAwIDE2IDR6Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDE2IDE2IiB0bz0iMzYwIDE2IDE2IiBkdXI9IjAuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvcGF0aD4KPC9zdmc+);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  position: absolute;
  width: 50px;
  height: 0px;
  top: 50%;
  left: 0;
  right: 0;
  margin: -30px auto 0;
}
.search-results.loading-more-in-progress:after {
  content: "";
  display: block;
  background-image: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSJibGFjayI+DQogIDxwYXRoICBvcGFjaXR5PSIuMjUiIGQ9Ik0xNiAwIEExNiAxNiAwIDAgMCAxNiAzMiBBMTYgMTYgMCAwIDAgMTYgMCBNMTYgNCBBMTIgMTIgMCAwIDEgMTYgMjggQTEyIDEyIDAgMCAxIDE2IDQiLz4NCiAgPHBhdGggZmlsbD0nIzFhODBiNicgZD0iTTE2IDAgQTE2IDE2IDAgMCAxIDMyIDE2IEwyOCAxNiBBMTIgMTIgMCAwIDAgMTYgNHoiPg0KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDE2IDE2IiB0bz0iMzYwIDE2IDE2IiBkdXI9IjAuOHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPg0KICA8L3BhdGg+DQo8L3N2Zz4NCg==);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 50% 50%;
  height: 100px;
}
.search-results .no-results {
  padding: 5px;
}

.c-news-results li {
  border-bottom: 1px solid #767676;
  padding-bottom: calc(32px - 1px);
  margin-bottom: 32px;
}
.c-news-results li:last-child {
  margin-bottom: 0;
}

.c-news-results__date {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 20px;
  font-style: normal;
  font-weight: 400;
  color: #4a4a4a;
}
@media ( min-width: 768px ) {
  .c-news-results__date {
    font-size: 1.6rem;
    line-height: 24px;
  }
}

.c-news-results__text a {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 700;
  color: #0070cd;
  text-decoration: none;
}
@media ( min-width: 768px ) {
  .c-news-results__text a {
    font-size: 2rem;
    line-height: 24px;
  }
}
.c-news-results__text a:hover, .c-news-results__text a:active {
  text-decoration: underline;
}

.c-service-advisories a {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 700;
  color: #000000;
  text-decoration: none;
}
@media ( min-width: 768px ) {
  .c-service-advisories a {
    font-size: 2rem;
    line-height: 24px;
  }
}
.c-service-advisories a:hover, .c-service-advisories a:active {
  color: #0070cd;
  text-decoration: underline;
}
.c-service-advisories .field-routename {
  text-transform: capitalize;
}
.c-service-advisories .field-route::after {
  content: " ";
  display: inline;
}
.c-service-advisories .sa-dash::after, .c-service-advisories .sa-dash::before {
  content: " ";
  display: inline;
}

.c-news-results__description {
  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;
  color: #4a4a4a;
}
@media ( min-width: 768px ) {
  .c-news-results__description {
    font-size: 2rem;
    line-height: 32px;
  }
}

.c-news-results__tags > a,
.c-news-results__tags > div {
  border: 1px solid #0070cd;
  display: inline-block;
  color: #0070cd;
  padding: 3.2px 8px;
  margin: 0 16px 16px 0;
  -webkit-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out;
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 400;
  text-decoration: none;
}
.c-news-results__tags > a:hover, .c-news-results__tags > a:focus, .c-news-results__tags > a:active,
.c-news-results__tags > div:hover,
.c-news-results__tags > div:focus,
.c-news-results__tags > div:active {
  color: #ffffff;
  background-color: #0070cd;
}
@media (min-width: 768px) {
  .c-news-results__tags > a,
  .c-news-results__tags > div {
    margin: 0 8px 8px 0;
  }
}

.c-search-results {
  padding-top: 40px;
}
@media (min-width: 768px) {
  .c-search-results > .component-content {
    margin-left: calc(8.3333333333% + 6px) !important;
    margin-right: calc(12.5% + 6px) !important;
  }
}
.c-search-results .sa-title:focus {
  border: dotted 2px black;
}
@media (min-width: 1225px) {
  .c-search-results > .component-content {
    margin: 0 auto;
    margin-left: calc(16.6666666667% + 6px) !important;
    margin-right: calc(25% + 6px) !important;
  }
}
.c-search-results .search-term {
  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 ) {
  .c-search-results .search-term {
    font-size: 2.4rem;
    line-height: 30px;
  }
}
.c-search-results .search-term span {
  font-style: italic;
}
.c-search-results .results {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 400;
  margin-bottom: 30px;
  margin-top: 5px;
}
@media ( min-width: 768px ) {
  .c-search-results .results {
    font-size: 1.6rem;
    line-height: 16px;
  }
}
.c-search-results .item-name {
  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;
  font-weight: 700 !important;
  color: #000;
  text-decoration: none;
}
@media ( min-width: 768px ) {
  .c-search-results .item-name {
    font-size: 2rem;
    line-height: 32px;
  }
}
.c-search-results .item-name:hover {
  color: #0070cd;
  text-decoration: underline;
}
.c-search-results .item-snippet {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 400;
  font-weight: 300 !important;
  color: #4a4a4a;
}
.c-search-results .item-url {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 400;
}
.c-search-results .item-url a {
  color: #0070cd;
  text-decoration: none;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}
.c-search-results .item-url a:hover {
  text-decoration: underline;
}
.c-search-results .each-result {
  margin-bottom: 20px;
}
.c-search-results .pagination {
  display: -webkit-box;
  display: flex;
  max-width: 70%;
  -webkit-box-pack: justify;
          justify-content: space-between;
  margin-top: 40px;
}
.c-search-results .pagination 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: 500;
  color: #0070cd;
  text-decoration: none;
}
@media ( min-width: 768px ) {
  .c-search-results .pagination a {
    font-size: 2rem;
    line-height: 32px;
  }
}
.c-search-results .pagination a:hover {
  text-decoration: underline;
}
.c-search-results .pagination .active a {
  color: #4a4a4a;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fdHlwZS5zY3NzIiwiY29tcG9uZW50LXNlYXJjaC1yZXN1bHRzLmNzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnQtc2VhcmNoLXJlc3VsdHMuc2NzcyIsImJhc2UvcmVzZXQvaW5wdXRzLnNjc3MiLCJjb21tb24tdWkvdHlwb2dyYXBoeS9fbWl4aW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvaW90YWNzcy9tb2R1bGVzL2lvdGFjc3MtdG9vbHMtY29yZS91dGlsaXRpZXMvX2V4dHJhY3QtdHlwZS1zaXplcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2lvdGFjc3MvbW9kdWxlcy9pb3RhY3NzLXRvb2xzLWNvcmUvbGlicmFyaWVzL19nZW5lcmF0ZS10eXBlLXNpemVzLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL190YWcuc2NzcyIsImFic3RyYWN0cy92YXJzL190cmFuc2l0aW9ucy5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fc2Fzcy1tcS1tb2Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUFBO0FDa1FFO0VBQ0UsZ0JBQUE7QUM1UEo7O0FEMlBFO0VBQ0UsZ0JBQUE7QUN4UEo7O0FEdVBFO0VBQ0UsZ0JBQUE7QUNwUEo7O0FEbVBFO0VBQ0UsZ0JBQUE7QUNoUEo7O0FDTkEsZ0JBQUE7QUNaQTtFRFlBLGdCQUFBO0FEV0E7QUV0Qkk7RUFDSSxhQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQ0FBQTtFQUVBLHdCQUFBO0VBQ0EscUVBQUE7RUFDQSw2REFBQTtBRndCUjtBRHlORTtFQUNFLGdCQUFBO0FDdk5KO0FEc05FO0VBQ0UsZ0JBQUE7QUNwTko7QURtTkU7RUFDRSxnQkFB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QUU3SEU7RUVuT0Esd0NBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VDSEUsaUJBQUE7RUFDQSxpQkFBQTtFRGtCRSxrQkFBQTtFQUFBLGdCQUFBO0FKdVZOO0FFcElJO0VBQ0UsY0FBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0FGc0lOO0FFcklNO0VBQ0UsMEJBQUE7QUZ1SVI7QUVuSUU7RUFDRSxtQkFBQTtBRnFJSjtBRW5JRTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZ0JBQUE7QUZxSUo7QUVwSUk7RUV4UEYsd0NBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VDSEUsaUJBQUE7RUFDQSxpQkFBQTtFRGtCRSxrQkFBQTtFQUFBLGdCQUFBO0VGd09BLGNBQUE7RUFDQSxxQkFBQTtBRjRJTjtBTTdYUTtFSjhPSjtJR3pQQSxlQUFBO0lBQ0EsaUJBQUE7RUw0WUY7QUFDRjtBRWpKTTtFQUNFLDBCQUFBO0FGbUpSO0FFaEpJO0VBQ0UsY0FBQTtBRmtKTiIsImZpbGUiOiJjb21wb25lbnQtc2VhcmNoLXJlc3VsdHMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcclxuICovXHJcbiRjb2xvcnM6ICgpICFkZWZhdWx0O1xyXG4kZnVuY3Rpb25hbC1jb2xvcnM6ICgpICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvcikge1xyXG4gIEBpZiBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcikge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcik7XHJcbiAgfSBAZWxzZSBpZiBtYXAtZ2V0KCRmdW5jdGlvbmFsLWNvbG9ycywgJGNvbG9yKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZ1bmN0aW9uYWwtY29sb3JzLCAkY29sb3IpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgLyogU3R5bGVmbXQgY2hhbmdlcyB0aGUgcXVvdGVzIGV2ZXJ5IHRpbWUsIHNvIHR1cm5pbmcgb2ZmIHRoZSBlcnJvciBoZXJlICovXHJcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc3RyaW5nLXF1b3RlcyAqL1xyXG4gICAgQGVycm9yIFwiQ29sb3IgXFxcIiN7JGNvbG9yfVxcXCJjb3VsZCBub3QgYmUgZm91bmRcIjtcclxuICB9XHJcbn1cclxuIiwiJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdDogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG5cclxuJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3M6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcbiR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0czogKFxyXG4gIC8vIHRoaW46IDEwMCxcclxuICBsaWdodDogMzAwLFxyXG4gIHJlZ3VsYXI6IDQwMCxcclxuICBtZWRpdW06IDUwMCxcclxuICBib2xkOiA3MDAsXHJcbiAgLy8gYmxhY2s6IDkwMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuJHVpLXR5cG9ncmFwaHktZGVmYXVsdDogKFxyXG4gIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0LFxyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbCxcclxuICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgbWFyZ2luOiAwLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbiR1aS10eXBvZ3JhcGh5LXN0eWxlczogKFxyXG4gIC8vaG9tZXBhZ2UgaGVhZGVyXHJcbiAgZDYtbGgtbGc6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDMycHgpLCA0MHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDYxcHgpLCA3NnB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDY6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDMycHgpLCA0MHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDUwcHgpLCA1NnB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDU6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDI5cHgpLCAzNnB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDQxcHgpLCA0NHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDUtbGlnaHQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDI5cHgpLCAzNnB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDQxcHgpLCA0NHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsbGlnaHQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDI2cHgpLCAzMnB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDM0cHgpLCA0MHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDM6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIzcHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDI4cHgpLCAzNnB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIxcHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDI0cHgpLCAzMHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZDE6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyNHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgaDJzejogKFxyXG4gICAgc2l6ZXM6IDIuOXJlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBoM3N6OiAoXHJcbiAgICBzaXplczogMi4ycmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG5cclxuICBoNHN6OiAoXHJcbiAgICBzaXplczogMS43cmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGg1c3o6IChcclxuICAgIHNpemVzOiAyLjRyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgbGVhZDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjJweCksIDMycHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjRweCksIDM2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWMsXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBkLXNtYWxsOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICApLFxyXG4gIGQteHNtYWxsOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMTZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGJvZHk6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGxpZ2h0KSxcclxuICApLFxyXG4gIGJvZHkyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgbGluazogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBkYXRlOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxNnB4KSwgMjBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGhlYWRlcjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTZweCksIDIwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIHN1YmhlYWRlcjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIHNpdGUtc2VhcmNoOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICAgIHNtOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGlucHV0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGJyZWFkY3J1bWI6IChcclxuICAgIHNpemVzOiAgKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIGZlYXR1cmVkOiAoXHJcbiAgICBzaXplczogIChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICApLFxyXG4gIGNvcHlyaWdodDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTRweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTNweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBjYXB0aW9uOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICksXHJcbiAgZm9ybS1sYWJlbDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIGZvcm0taGVscGVyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCByZWd1bGFyKSxcclxuICApLFxyXG4gIHBkZjogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbGlnaHQpLFxyXG4gICksXHJcbiAgbWFwLXJlc3VsdHM6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjBweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGxpZ2h0KSxcclxuICApLFxyXG4gIGJldGEtbm90aWNlOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbiAgc2l0ZS13aWRlLWFsZXJ0OiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gICksXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuQGVhY2ggJG5hbWUsICRzdHlsZSBpbiAkdWktdHlwb2dyYXBoeS1zdHlsZXMge1xyXG4gICR1aS10eXBvZ3JhcGh5LXN0eWxlczogbWFwLW1lcmdlKCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgKFxyXG4gICAgI3skbmFtZX06IG1hcC1tZXJnZSgkdWktdHlwb2dyYXBoeS1kZWZhdWx0LCAkc3R5bGUpXHJcbiAgKSk7XHJcbn1cclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzIHtcclxuICAudS10eXBlLS0jeyRuYW1lfSB7XHJcbiAgICBmb250LXdlaWdodDogI3skc3R5bGV9O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIi8qKlxuICogVXNhZ2U6XG4gKlxuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XG4gKi9cbi51LXR5cGUtLWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnUtdHlwZS0tcmVndWxhciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi51LXR5cGUtLW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi51LXR5cGUtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4vKiBicmVha3BvaW50cyAqL1xuLnNlYXJjaC1yZXN1bHRzIHtcbiAgLyogYnJlYWtwb2ludHMgKi9cbn1cbi5zZWFyY2gtcmVzdWx0cyAudHRjLWxvYWRpbmcge1xuICBoZWlnaHQ6IDEwMHB4O1xuICBjb2xvcjogI2RhMjUxZDtcbiAgZm9udC1zaXplOiA5MHB4O1xuICB0ZXh0LWluZGVudDogLTk5OTllbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luOiA3MnB4IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGxvYWQ2IDEuN3MgaW5maW5pdGUgZWFzZSwgcm91bmQgMS43cyBpbmZpbml0ZSBlYXNlO1xuICBhbmltYXRpb246IGxvYWQ2IDEuN3MgaW5maW5pdGUgZWFzZSwgcm91bmQgMS43cyBpbmZpbml0ZSBlYXNlO1xufVxuLnNlYXJjaC1yZXN1bHRzIC51LXR5cGUtLWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5zZWFyY2gtcmVzdWx0cyAudS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5zZWFyY2gtcmVzdWx0cyAudS10eXBlLS1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnNlYXJjaC1yZXN1bHRzIC51LXR5cGUtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnNlYXJjaC1yZXN1bHRzIGlucHV0IHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5zZWFyY2gtcmVzdWx0cyAuc2VhcmNoLXJlc3VsdC1saXN0IHtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5zZWFyY2gtcmVzdWx0cy52ZXJ0aWNhbCAuc2VhcmNoLXJlc3VsdC1saXN0ID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc2VhcmNoLXJlc3VsdHMudmVydGljYWwgLnNlYXJjaC1yZXN1bHQtbGlzdCA+IGxpIC5maWVsZC10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNlYXJjaC1yZXN1bHRzLnZlcnRpY2FsIC5zZWFyY2gtcmVzdWx0LWxpc3QgPiBsaTpob3ZlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCAxcHggMnB4IDFweCBzb2xpZCAjMTU5MDljO1xufVxuLnNlYXJjaC1yZXN1bHRzLmhvcml6b250YWwgLnNlYXJjaC1yZXN1bHQtbGlzdCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnNlYXJjaC1yZXN1bHRzLmhvcml6b250YWwgLnNlYXJjaC1yZXN1bHQtbGlzdDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cbi5zZWFyY2gtcmVzdWx0cy5ob3Jpem9udGFsIC5zZWFyY2gtcmVzdWx0LWxpc3QgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IDFweCAycHggMXB4IHNvbGlkICNkMmQyZDI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTIwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIDIlIDEwcHggMDtcbiAgcGFkZGluZzogNXB4O1xuICB3aWR0aDogMjMlO1xufVxuLnNlYXJjaC1yZXN1bHRzLmhvcml6b250YWwgLnNlYXJjaC1yZXN1bHQtbGlzdCA+IGxpIC5maWVsZC10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnNlYXJjaC1yZXN1bHRzLmhvcml6b250YWwgLnNlYXJjaC1yZXN1bHQtbGlzdCA+IGxpIC5maWVsZC10aXRsZSBhIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uc2VhcmNoLXJlc3VsdHMuaG9yaXpvbnRhbCAuc2VhcmNoLXJlc3VsdC1saXN0ID4gbGk6aG92ZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggMXB4IDJweCAxcHggc29saWQgIzE1OTA5Yztcbn1cbi5zZWFyY2gtcmVzdWx0cyAuc2VhcmNoLXJlc3VsdHMtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2VhcmNoLXJlc3VsdHMubG9hZGluZy1pbi1wcm9ncmVzcyB7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xufVxuLnNlYXJjaC1yZXN1bHRzLmxvYWRpbmctaW4tcHJvZ3Jlc3MgLnNlYXJjaC1yZXN1bHQtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi5zZWFyY2gtcmVzdWx0cy5sb2FkaW5nLWluLXByb2dyZXNzIC5zZWFyY2gtcmVzdWx0LW92ZXJsYXk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJak15SWlCb1pXbG5hSFE5SWpNeUlpQm1hV3hzUFNKaWJHRmpheUkrQ2lBZ1BIQmhkR2dnSUc5d1lXTnBkSGs5SWk0eU5TSWdaRDBpVFRFMklEQWdRVEUySURFMklEQWdNQ0F3SURFMklETXlJRUV4TmlBeE5pQXdJREFnTUNBeE5pQXdJRTB4TmlBMElFRXhNaUF4TWlBd0lEQWdNU0F4TmlBeU9DQkJNVElnTVRJZ01DQXdJREVnTVRZZ05DSXZQZ29nSUR4d1lYUm9JR1pwYkd3OUp5TmtaR1JrWkdRbklHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNU0F6TWlBeE5pQk1NamdnTVRZZ1FURXlJREV5SURBZ01DQXdJREUySURSNklqNEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGdvZ0lEd3ZjR0YwYUQ0S1BDOXpkbWMrKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMHB4O1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogLTMwcHggYXV0byAwO1xufVxuLnNlYXJjaC1yZXN1bHRzLmxvYWRpbmctbW9yZS1pbi1wcm9ncmVzczphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJak15SWlCb1pXbG5hSFE5SWpNeUlpQm1hV3hzUFNKaWJHRmpheUkrRFFvZ0lEeHdZWFJvSUNCdmNHRmphWFI1UFNJdU1qVWlJR1E5SWsweE5pQXdJRUV4TmlBeE5pQXdJREFnTUNBeE5pQXpNaUJCTVRZZ01UWWdNQ0F3SURBZ01UWWdNQ0JOTVRZZ05DQkJNVElnTVRJZ01DQXdJREVnTVRZZ01qZ2dRVEV5SURFeUlEQWdNQ0F4SURFMklEUWlMejROQ2lBZ1BIQmhkR2dnWm1sc2JEMG5JekZoT0RCaU5pY2daRDBpVFRFMklEQWdRVEUySURFMklEQWdNQ0F4SURNeUlERTJJRXd5T0NBeE5pQkJNVElnTVRJZ01DQXdJREFnTVRZZ05Ib2lQZzBLSUNBZ0lEeGhibWx0WVhSbFZISmhibk5tYjNKdElHRjBkSEpwWW5WMFpVNWhiV1U5SW5SeVlXNXpabTl5YlNJZ2RIbHdaVDBpY205MFlYUmxJaUJtY205dFBTSXdJREUySURFMklpQjBiejBpTXpZd0lERTJJREUySWlCa2RYSTlJakF1T0hNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnMEtJQ0E4TDNCaGRHZytEUW84TDNOMlp6NE5DZz09KTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA1MCUgNTAlO1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuLnNlYXJjaC1yZXN1bHRzIC5uby1yZXN1bHRzIHtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uYy1uZXdzLXJlc3VsdHMgbGkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3NjtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMzJweCAtIDFweCk7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4uYy1uZXdzLXJlc3VsdHMgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLW5ld3MtcmVzdWx0c19fZGF0ZSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICM0YTRhNGE7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAuYy1uZXdzLXJlc3VsdHNfX2RhdGUge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB9XG59XG5cbi5jLW5ld3MtcmVzdWx0c19fdGV4dCBhIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzAwNzBjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLmMtbmV3cy1yZXN1bHRzX190ZXh0IGEge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgfVxufVxuLmMtbmV3cy1yZXN1bHRzX190ZXh0IGE6aG92ZXIsIC5jLW5ld3MtcmVzdWx0c19fdGV4dCBhOmFjdGl2ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYy1zZXJ2aWNlLWFkdmlzb3JpZXMgYSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5jLXNlcnZpY2UtYWR2aXNvcmllcyBhIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIH1cbn1cbi5jLXNlcnZpY2UtYWR2aXNvcmllcyBhOmhvdmVyLCAuYy1zZXJ2aWNlLWFkdmlzb3JpZXMgYTphY3RpdmUge1xuICBjb2xvcjogIzAwNzBjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYy1zZXJ2aWNlLWFkdmlzb3JpZXMgLmZpZWxkLXJvdXRlbmFtZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLmMtc2VydmljZS1hZHZpc29yaWVzIC5maWVsZC1yb3V0ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLmMtc2VydmljZS1hZHZpc29yaWVzIC5zYS1kYXNoOjphZnRlciwgLmMtc2VydmljZS1hZHZpc29yaWVzIC5zYS1kYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uYy1uZXdzLXJlc3VsdHNfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzRhNGE0YTtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5jLW5ld3MtcmVzdWx0c19fZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxufVxuXG4uYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBhLFxuLmMtbmV3cy1yZXN1bHRzX190YWdzID4gZGl2IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwNzBjZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzAwNzBjZDtcbiAgcGFkZGluZzogMy4ycHggOHB4O1xuICBtYXJnaW46IDAgMTZweCAxNnB4IDA7XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBhOmhvdmVyLCAuYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBhOmZvY3VzLCAuYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBhOmFjdGl2ZSxcbi5jLW5ld3MtcmVzdWx0c19fdGFncyA+IGRpdjpob3Zlcixcbi5jLW5ld3MtcmVzdWx0c19fdGFncyA+IGRpdjpmb2N1cyxcbi5jLW5ld3MtcmVzdWx0c19fdGFncyA+IGRpdjphY3RpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzBjZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBhLFxuICAuYy1uZXdzLXJlc3VsdHNfX3RhZ3MgPiBkaXYge1xuICAgIG1hcmdpbjogMCA4cHggOHB4IDA7XG4gIH1cbn1cblxuLmMtc2VhcmNoLXJlc3VsdHMge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYy1zZWFyY2gtcmVzdWx0cyA+IC5jb21wb25lbnQtY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMzMzMzMzJSArIDZweCkgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMTIuNSUgKyA2cHgpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5zYS10aXRsZTpmb2N1cyB7XG4gIGJvcmRlcjogZG90dGVkIDJweCBibGFjaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjI1cHgpIHtcbiAgLmMtc2VhcmNoLXJlc3VsdHMgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY2NjY2NjclICsgNnB4KSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygyNSUgKyA2cHgpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5zZWFyY2gtdGVybSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5jLXNlYXJjaC1yZXN1bHRzIC5zZWFyY2gtdGVybSB7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIH1cbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5zZWFyY2gtdGVybSBzcGFuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLmMtc2VhcmNoLXJlc3VsdHMgLnJlc3VsdHMge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5jLXNlYXJjaC1yZXN1bHRzIC5yZXN1bHRzIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxufVxuLmMtc2VhcmNoLXJlc3VsdHMgLml0ZW0tbmFtZSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLmMtc2VhcmNoLXJlc3VsdHMgLml0ZW0tbmFtZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4uYy1zZWFyY2gtcmVzdWx0cyAuaXRlbS1uYW1lOmhvdmVyIHtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmMtc2VhcmNoLXJlc3VsdHMgLml0ZW0tc25pcHBldCB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzRhNGE0YTtcbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5pdGVtLXVybCB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5pdGVtLXVybCBhIHtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmMtc2VhcmNoLXJlc3VsdHMgLml0ZW0tdXJsIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5jLXNlYXJjaC1yZXN1bHRzIC5lYWNoLXJlc3VsdCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uYy1zZWFyY2gtcmVzdWx0cyAucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogNzAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDQwcHg7XG59XG4uYy1zZWFyY2gtcmVzdWx0cyAucGFnaW5hdGlvbiBhIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogIzAwNzBjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhICggbWluLXdpZHRoOiA3NjhweCApIHtcbiAgLmMtc2VhcmNoLXJlc3VsdHMgLnBhZ2luYXRpb24gYSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4uYy1zZWFyY2gtcmVzdWx0cyAucGFnaW5hdGlvbiBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYy1zZWFyY2gtcmVzdWx0cyAucGFnaW5hdGlvbiAuYWN0aXZlIGEge1xuICBjb2xvcjogIzRhNGE0YTtcbn0iLCIvLyBAaW1wb3J0ICd+c2Fzcy1tcS9tcSc7XHJcbkBpbXBvcnQgJ21peGlucy9zYXNzLW1xLW1vZC5zY3NzJztcclxuQGltcG9ydCAnLi4vY29tbW9uLXVpL3R5cG9ncmFwaHkvbWl4aW5zJztcclxuQGltcG9ydCAnbWl4aW5zL2FjY2Vzc2liaWxpdHknO1xyXG5AaW1wb3J0ICdtaXhpbnMvYnV0dG9uJztcclxuQGltcG9ydCAnbWl4aW5zL2xpbmsnO1xyXG5AaW1wb3J0ICdtaXhpbnMvb3ZlcmxheSc7XHJcbkBpbXBvcnQgJ21peGlucy90cmFuc2l0aW9ucyc7XHJcbkBpbXBvcnQgJ21peGlucy9zaGFkb3dzJztcclxuQGltcG9ydCAnbWl4aW5zL3RhZyc7XHJcbkBpbXBvcnQgJy4uL2Fic3RyYWN0cy92YXJzL2NvbG9ycyc7XHJcblxyXG4vLyBCZWxvdyBhcmUgbWl4aW4ncyBmcm9tIEZYQVxyXG4vKiBicmVha3BvaW50cyAqL1xyXG5cclxuJGJyZWFrLWRlc2t0b3A6IDk2MHB4O1xyXG4kYnJlYWstbW9iaWxlOiAzODBweDtcclxuJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsOiA2NDBweDtcclxuJGJyZWFrLW1vYmlsZS1sYXJnZTogNzg2cHg7XHJcbkBtaXhpbiB3cmFwcGVyKCkge1xyXG4gICAgbWF4LXdpZHRoOiA5NjBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XHJcbn1cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAxLjYpIHtcclxuICAgIGZvbnQtc2l6ZTogKCRzaXplVmFsdWUgKiAxMCkgKyBweDtcclxuICAgIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSArIHJlbTtcclxufVxyXG5AbWl4aW4gb3BlbnNhbnMtZm9udC1zdGFjaygpIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcclxufVxyXG5AbWl4aW4gbG9hZGluZy1naWYoKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJak15SWlCb1pXbG5hSFE5SWpNeUlpQm1hV3hzUFNKaWJHRmpheUkrRFFvZ0lEeHdZWFJvSUNCdmNHRmphWFI1UFNJdU1qVWlJR1E5SWsweE5pQXdJRUV4TmlBeE5pQXdJREFnTUNBeE5pQXpNaUJCTVRZZ01UWWdNQ0F3SURBZ01UWWdNQ0JOTVRZZ05DQkJNVElnTVRJZ01DQXdJREVnTVRZZ01qZ2dRVEV5SURFeUlEQWdNQ0F4SURFMklEUWlMejROQ2lBZ1BIQmhkR2dnWm1sc2JEMG5JekZoT0RCaU5pY2daRDBpVFRFMklEQWdRVEUySURFMklEQWdNQ0F4SURNeUlERTJJRXd5T0NBeE5pQkJNVElnTVRJZ01DQXdJREFnTVRZZ05Ib2lQZzBLSUNBZ0lEeGhibWx0WVhSbFZISmhibk5tYjNKdElHRjBkSEpwWW5WMFpVNWhiV1U5SW5SeVlXNXpabTl5YlNJZ2RIbHdaVDBpY205MFlYUmxJaUJtY205dFBTSXdJREUySURFMklpQjBiejBpTXpZd0lERTJJREUySWlCa2RYSTlJakF1T0hNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnMEtJQ0E4TDNCaGRHZytEUW84TDNOMlp6NE5DZz09KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiByZXNwb25kLXRvKCRtZWRpYSkge1xyXG4gICAgQGlmICRtZWRpYT09bW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtaG9yaXpvbnRhbCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWhvcml6b250YWwgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWxhcmdlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtbGFyZ2UpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT10YWJsZXQge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLW1vYmlsZSArIDEpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1hbGwtbW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWRlc2t0b3Age1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLWRlc2t0b3ApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbkBtaXhpbiBib3JkZXItYmFzaWMoJHBvc2l0aW9uOmFsbCwgJGJvcmRlci1jb2xvcjokYm9yZGVyLWdyYXksICRib3JkZXItd2lkdGg6MXB4KSB7XHJcbiAgICBAaWYoJHBvc2l0aW9uPT10b3ApIHtcclxuICAgICAgICBib3JkZXItdG9wOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PWJvdHRvbSkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09bGVmdCkge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PXJpZ2h0KSB7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGZpeGVkLWJnKCRwb3MsICRtaW4taGVpZ2h0OjI0MHB4KSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zO1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcclxuICAgIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xyXG59XHJcbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKSB7XHJcbiAgICAvLyBEaXJlY3Rpb24gaGFzIGJlZW4gb21pdHRlZCBhbmQgaGFwcGVucyB0byBiZSBhIGNvbG9yLXN0b3BcclxuICAgIEBpZiBpcy1kaXJlY3Rpb24oJGRpcmVjdGlvbik9PWZhbHNlIHtcclxuICAgICAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcclxuICAgICAgICAkZGlyZWN0aW9uOiAxODBkZWc7XHJcbiAgICB9XHJcbiAgICBiYWNrZ3JvdW5kOiBudGgobnRoKCRjb2xvci1zdG9wcywgMSksIDEpO1xyXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbigkZGlyZWN0aW9uKSwgJGNvbG9yLXN0b3BzKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMpO1xyXG59XHJcbiIsIkBpbXBvcnQgXCJhYnN0cmFjdHNcIjtcclxuLnNlYXJjaC1yZXN1bHRzIHtcclxuICAgIC50dGMtbG9hZGluZyB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICBjb2xvcjogY29sb3IocHJpbWFyeSk7XHJcbiAgICAgICAgZm9udC1zaXplOiA5MHB4O1xyXG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5OWVtO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgd2lkdGg6IDFlbTtcclxuICAgICAgICBoZWlnaHQ6IDFlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgbWFyZ2luOiA3MnB4IGF1dG87XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xyXG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBsb2FkNiAxLjdzIGluZmluaXRlIGVhc2UsIHJvdW5kIDEuN3MgaW5maW5pdGUgZWFzZTtcclxuICAgICAgICBhbmltYXRpb246IGxvYWQ2IDEuN3MgaW5maW5pdGUgZWFzZSwgcm91bmQgMS43cyBpbmZpbml0ZSBlYXNlO1xyXG4gICAgfVxyXG4gICAgQGltcG9ydCBcImJhc2UvcmVzZXQvaW5wdXRzXCI7XHJcbiAgICAuc2VhcmNoLXJlc3VsdC1saXN0IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgfVxyXG4gICAgJi52ZXJ0aWNhbCB7XHJcbiAgICAgICAgLnNlYXJjaC1yZXN1bHQtbGlzdCB7XHJcbiAgICAgICAgICAgID5saSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgLmZpZWxkLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1iYXNpYyhib3R0b20sICRzZWFyY2gtaXRlbS1ib3JkZXItYWN0aXZlLDFweCAxcHggMnB4IDFweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmhvcml6b250YWwge1xyXG4gICAgICAgIC5zZWFyY2gtcmVzdWx0LWxpc3Qge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgPmxpIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1iYXNpYyhhbGwsJGJvcmRlci13aWR0aDogMXB4IDFweCAycHggMXB4KTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDIlIDEwcHggMDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyMyU7XHJcbiAgICAgICAgICAgICAgICAuZmllbGQtdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBnZXQtcmVtKDE4cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1iYXNpYyhib3R0b20sICRzZWFyY2gtaXRlbS1ib3JkZXItYWN0aXZlLDFweCAxcHggMnB4IDFweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2VhcmNoLXJlc3VsdHMtb3ZlcmxheSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgICYubG9hZGluZy1pbi1wcm9ncmVzcyB7XHJcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XHJcbiAgICAgICAgLnNlYXJjaC1yZXN1bHQtb3ZlcmxheSB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgLy8gdG9wOiAwO1xyXG4gICAgICAgICAgICAvLyBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAvLyB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgLy8gaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStDaUFnUEhCaGRHZ2dJRzl3WVdOcGRIazlJaTR5TlNJZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXdJREUySURNeUlFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBd0lFMHhOaUEwSUVFeE1pQXhNaUF3SURBZ01TQXhOaUF5T0NCQk1USWdNVElnTUNBd0lERWdNVFlnTkNJdlBnb2dJRHh3WVhSb0lHWnBiR3c5SnlOa1pHUmtaR1FuSUdROUlrMHhOaUF3SUVFeE5pQXhOaUF3SURBZ01TQXpNaUF4TmlCTU1qZ2dNVFlnUVRFeUlERXlJREFnTUNBd0lERTJJRFI2SWo0S0lDQWdJRHhoYm1sdFlYUmxWSEpoYm5ObWIzSnRJR0YwZEhKcFluVjBaVTVoYldVOUluUnlZVzV6Wm05eWJTSWdkSGx3WlQwaWNtOTBZWFJsSWlCbWNtOXRQU0l3SURFMklERTJJaUIwYnowaU16WXdJREUySURFMklpQmtkWEk5SWpBdU9ITWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZ29nSUR3dmNHRjBhRDRLUEM5emRtYyspO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDBweDtcclxuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAtMzBweCBhdXRvIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmxvYWRpbmctbW9yZS1pbi1wcm9ncmVzcyB7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBsb2FkaW5nLWdpZigpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwJSA1MCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm5vLXJlc3VsdHMge1xyXG4gICAgICAgIHBhZGRpbmc6IDVweDtcclxuICAgIH1cclxufVxyXG5cclxuLmMtbmV3cy1yZXN1bHRzIHtcclxuICAgIGxpIHtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXItYmFzaWMoYm90dG9tLCBjb2xvcihncmV5LWJvcmRlcikpO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKCN7c3BhY2UoNCl9IC0gMXB4KTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiBzcGFjZSg0KTtcclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmMtbmV3cy1yZXN1bHRzX19kYXRlIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoZGF0ZSk7XHJcbiAgICBjb2xvcjogY29sb3IoZ3JleSk7XHJcbn1cclxuXHJcbi5jLW5ld3MtcmVzdWx0c19fdGV4dCB7XHJcbiAgICBhIHtcclxuICAgICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQxKTtcclxuICAgICAgICBjb2xvcjogY29sb3Ioc2Vjb25kYXJ5KTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgJjpob3ZlciwgXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICAvL2NvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jLXNlcnZpY2UtYWR2aXNvcmllcyB7IFxyXG4gICAgYSB7XHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQxKTtcclxuICAgICAgICBjb2xvcjogY29sb3IoYmxhY2spO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAmOmhvdmVyLCBcclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihzZWNvbmRhcnkpO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZpZWxkLXJvdXRlbmFtZSB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZpZWxkLXJvdXRlIHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2EtZGFzaCB7XHJcbiAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4uYy1uZXdzLXJlc3VsdHNfX2Rlc2NyaXB0aW9uIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgICBjb2xvcjogY29sb3IoZ3JleSk7XHJcbn1cclxuXHJcbi5jLW5ld3MtcmVzdWx0c19fdGFncyB7XHJcbiAgICA+IGEsXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgICAgQGluY2x1ZGUgdGFncztcclxuICAgIH1cclxufVxyXG5cclxuLmMtc2VhcmNoLXJlc3VsdHMge1xyXG4gIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gIEBpbmNsdWRlIG1xKG1kKSB7XHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygxLzEyKjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygzLzI0KjEwMCUgKyA2cHgpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuLnNhLXRpdGxlOmZvY3VzIHtcclxuICBib3JkZXI6IGRvdHRlZCAycHggYmxhY2s7XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1xKGxnKSB7XHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMi8xMioxMDAlICsgNnB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMy8xMioxMDAlICsgNnB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAuc2VhcmNoLXRlcm0ge1xyXG4gICAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShkMik7XHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgfVxyXG4gIH1cclxuICAucmVzdWx0cyB7XHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQteHNtYWxsKTtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgfVxyXG4gIC5pdGVtLW5hbWV7XHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGJvZHkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICMwMDcwY2Q7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG4gIH1cclxuICAuaXRlbS1zbmlwcGV0IHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYnJlYWRjcnVtYik7XHJcbiAgICBmb250LXdlaWdodDogMzAwIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBjb2xvcihncmV5KTtcclxuICB9XHJcbiAgXHJcbiAgLml0ZW0tdXJse1xyXG4gICAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShicmVhZGNydW1iKTtcclxuICAgIGF7XHJcbiAgICAgIGNvbG9yOiAjMDA3MGNkO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgICAgJjpob3ZlcntcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuZWFjaC1yZXN1bHQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcbiAgLnBhZ2luYXRpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1heC13aWR0aDogNzAlO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgIGEge1xyXG4gICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGJvZHkyKTtcclxuICAgICAgY29sb3I6ICMwMDcwY2Q7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5hY3RpdmUgYXtcclxuICAgICAgY29sb3I6IGNvbG9yKGdyZXkpO1xyXG4gICAgfVxyXG4gIH1cclxufSAgICBcclxuIiwiQGltcG9ydCBcIi4uLy4uL2Fic3RyYWN0cy9taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uLy4uL2Fic3RyYWN0cy92YXJzXCI7XHJcbmlucHV0IHtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG59XHJcbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcclxuQGltcG9ydCAnfmlvdGFjc3MtdG9vbHMtdHlwZS90b29scy50eXBlJztcclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0KSB7XHJcbiAgZm9udC1mYW1pbHk6IGlmKCRmb250LWZhbWlseSAhPSBudWxsLCAkZm9udC1mYW1pbHksICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbn1cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5KCRzdHlsZSkge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgJHN0eWxlOiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICRmb250LWZhbWlseTogbWFwLWdldCgkc3R5bGUsIGZvbnQtZmFtaWx5KTtcclxuXHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5KTtcclxuICAgIEBpbmNsdWRlIGlvdGEtdHlwZShtYXAtZ2V0KCRzdHlsZSwgc2l6ZXMpKTtcclxuXHJcbiAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGdlbmVyYXRlZCBiZWxvd1xyXG4gICAgJHByb3BzOiBtYXAtcmVtb3ZlKCRzdHlsZSwgZm9udC1mYW1pbHksIG1hcmdpbiwgc2l6ZXMpO1xyXG4gICAgJGtleXM6IG1hcC1rZXlzKCRwcm9wcyk7XHJcblxyXG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAgICN7JGtleX06IG1hcC1nZXQoJHByb3BzLCAka2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCcpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSkge1xyXG4gIG1hcmdpbjogbWFwLWdldChtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSwgbWFyZ2luKTtcclxufVxyXG4iLCJAbWl4aW4gX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcykge1xuXG4gIEBpZiAoIGxlbmd0aCgkc2l6ZXMpID09IDIgKSB7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAkc2l6ZXM7ICBcbiAgfVxuICBcbn1cbiIsIkBtaXhpbiBfaW90YS1nZW5lcmF0ZS10eXBlLXNpemVzKCR2YWx1ZXMsICRicmVha3BvaW50cykge1xuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdtYXAnIHtcblxuICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsdWVzLCBudWxsKSB7XG5cbiAgICAgIEBpbmNsdWRlIF9pb3RhLWV4dHJhY3QtdHlwZS1zaXplcyhtYXAtZ2V0KCR2YWx1ZXMsIG51bGwpKTtcblxuICAgIH1cbiAgXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRzaXplcyBpbiAkdmFsdWVzIHtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcbiAgICAgIFxuICAgICAgICBAbWVkaWEgI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpfSB7XG4gICAgICBcbiAgICAgICAgICBAaW5jbHVkZSBfaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKTtcblxuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ251bWJlcicgb3IgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuXG4gICAgQGluY2x1ZGUgX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCR2YWx1ZXMpO1xuXG4gIH1cbn1cbiIsIkBtaXhpbiB0YWdzIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvcihzZWNvbmRhcnkpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBjb2xvcjogY29sb3Ioc2Vjb25kYXJ5KTtcclxuICBwYWRkaW5nOiBzcGFjZSgwLjQpIHNwYWNlKCk7XHJcbiAgbWFyZ2luOiAwIHNwYWNlKDIpIHNwYWNlKDIpIDA7XHJcbiAgdHJhbnNpdGlvbjogJGdsb2JhbC10cmFuc2l0aW9uO1xyXG4gIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYnJlYWRjcnVtYik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCBcclxuICAmOmZvY3VzLFxyXG4gICY6YWN0aXZlIHtcclxuICAgIGNvbG9yOiBjb2xvcihwcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHNlY29uZGFyeSk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtcShtZCkge1xyXG4gICAgbWFyZ2luOiAwIHNwYWNlKCkgc3BhY2UoKSAwO1xyXG4gIH1cclxufSIsIiRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XHJcbiRnbG9iYWwtdHJhbnNpdGlvbi1lYXNpbmc6IGVhc2UtaW4tb3V0O1xyXG4kZ2xvYmFsLXRyYW5zaXRpb246IGFsbCAkZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7IiwiLy9tb2RkZWQgdG8gdXNlIHB4XHJcblxyXG5AY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcclxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxyXG5cclxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XHJcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXHJcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBSZXNwb25zaXZlIG1vZGVcclxuLy8vXHJcbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcclxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXHJcbi8vL1xyXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxyXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gb2xkLWllLnNjc3NcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXHJcbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJyZWFrcG9pbnQgbGlzdFxyXG4vLy9cclxuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXHJcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXHJcbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXHJcbi8vL1xyXG4vLy8gQHR5cGUgTWFwXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLWJyZWFrcG9pbnRzOiAoXHJcbiAgICBtb2JpbGU6ICAzMjBweCxcclxuICAgIHRhYmxldDogIDc0MHB4LFxyXG4gICAgZGVza3RvcDogOTgwcHgsXHJcbiAgICB3aWRlOiAgICAxMzAwcHhcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXHJcbi8vL1xyXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXHJcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcclxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3NcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xyXG4vLy8gIC8vXHJcbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXHJcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xyXG5cclxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vXHJcbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxyXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcclxuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxyXG4vLy9cclxuLy8vIEB0eXBlIG1hcFxyXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcclxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcclxuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XHJcbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XHJcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XHJcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XHJcbiAgICAgICAgQHJldHVybiAkcHg7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcclxuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcclxuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcclxuLy8vXHJcbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXHJcbi8vL1xyXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC5lbGVtZW50IHtcclxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcclxuLy8vICAgICAgY29sb3I6IHJlZDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGdyZWVuO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcclxuLy8vICAgICAgY29sb3I6IHRlYWw7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcclxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcclxuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG5AbWl4aW4gbXEoXHJcbiAgICAkZnJvbTogZmFsc2UsXHJcbiAgICAkdW50aWw6IGZhbHNlLFxyXG4gICAgJGFuZDogZmFsc2UsXHJcbiAgICAkZW1zLW9uOiBmYWxzZSxcclxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcclxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxyXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxyXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuKSB7XHJcbiAgICAkbWluLXdpZHRoOiAwO1xyXG4gICAgJG1heC13aWR0aDogMDtcclxuICAgICRtZWRpYS1xdWVyeTogJyc7XHJcblxyXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXHJcbiAgICBAaWYgJGZyb20ge1xyXG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkZnJvbSksICgkZnJvbSkpO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAkbWluLXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSksIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxyXG4gICAgQGlmICR1bnRpbCB7XHJcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xyXG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkdW50aWwpLCgkdW50aWwpKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgJG1heC13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtLCBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykgLSAxcHgpOyBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcclxuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXHJcbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xyXG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICR0YXJnZXQtd2lkdGg6IGlmKCRlbXMtb24sIG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCksICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XHJcblxyXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXHJcbiAgICAgICAgQGlmIChcclxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxyXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIGFuZCAoXHJcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XHJcbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXHJcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8vIFF1aWNrIHNvcnRcclxuLy8vXHJcbi8vLyBAYXV0aG9yIFNhbSBSaWNoYXJkc1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gU29ydGVkIExpc3RcclxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XHJcbiAgICAkbGVzczogICgpO1xyXG4gICAgJGVxdWFsOiAoKTtcclxuICAgICRsYXJnZTogKCk7XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkbGlzdCkgPiAxIHtcclxuICAgICAgICAkc2VlZDogbnRoKCRsaXN0LCBjZWlsKGxlbmd0aCgkbGlzdCkgLyAyKSk7XHJcblxyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGVxdWFsOiBhcHBlbmQoJGVxdWFsLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtIDwgJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsZXNzOiBhcHBlbmQoJGxlc3MsICRpdGVtKTtcclxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxhcmdlOiBhcHBlbmQoJGxhcmdlLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEByZXR1cm4gam9pbihqb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcclxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XHJcbiAgICAkbWFwLXNvcnRlZDogKCk7XHJcbiAgICAkbWFwLWtleXM6IG1hcC1rZXlzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcclxuXHJcbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcclxuICAgICAgICAkaW5kZXg6IGluZGV4KCRtYXAtdmFsdWVzLCAkdmFsdWUpO1xyXG4gICAgICAgICRrZXk6IG50aCgkbWFwLWtleXMsICRpbmRleCk7XHJcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC1tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xyXG5cclxuICAgICAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxyXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxyXG4gICAgICAgICRtYXAtdmFsdWVzOiBzZXQtbnRoKCRtYXAtdmFsdWVzLCAkaW5kZXgsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJG1hcC1zb3J0ZWQ7XHJcbn1cclxuXHJcbi8vLyBBZGQgYSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xyXG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxyXG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xyXG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcclxuICAgICRtcS1icmVha3BvaW50czogX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtcS1icmVha3BvaW50cykgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XHJcbi8vL1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XHJcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIGJvZHk6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBjb2xvcjogI0MwOTg1MztcclxuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDA7XHJcblxyXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cclxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcclxuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XHJcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG59XHJcbiJdfQ== */
