/* z-indexes are large due to the fact that things might change
 * in the future. In order to account for scalability, this gives
 * room to make changes and not break the entire site, meaning 
 * we won't have to go in and refactor a lot of our code.
 */
/*  ----------------------------------------------------
    INPUTS
  ----------------------------------------------------- */
/*  ----------------------------------------------------
    CONTAINERS
  ----------------------------------------------------- */
/* -------------------
	Base result styles
-------------------- */
/* -------------------
	Variations
-------------------- */
/* -----------------------------------------------------
  Base styling
----------------------------------------------------- */
/* -----------------------------------------------------
  With secondary section
----------------------------------------------------- */
/* -----------------------------------------------------
  Checkbox tags
----------------------------------------------------- */
/* -----------------------------------------------------
  States
----------------------------------------------------- */
body.mobile-search-open search-results .control-filter {
  top: calc(var(--navigation-container-height) + var(--navigation-mobile-search-height));
}

search-results {
  display: grid;
  grid-gap: calc(var(--gap) * 2);
}
search-results .heading {
  font-size: 1.25em;
  line-height: 1.3;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
search-results .control-filter {
  position: absolute;
  display: none;
  align-items: center;
  text-transform: uppercase;
  font-weight: 400;
  position: absolute;
  top: 0;
  padding: 0.7rem 2rem 0.7rem 3rem;
  height: 39px;
  background: #DF3035;
  color: #FFFFFF;
  transform: translate(0, -0.5px) translateX(-100%) translateY(-100%) rotate(-90deg);
  transform-origin: bottom right;
  clip-path: polygon(0% 100%, 15px 0%, 100% 0%, 100% 100%);
  top: var(--navigation-container-height);
  right: 0;
  transform: rotate(-90deg) translateX(39px);
  transition: top 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
search-results .control-filter svg {
  width: 20px;
  height: 20px;
  fill: #FFFFFF;
  transform: rotate(90deg);
  margin-left: 1rem;
}
@media (hover: hover) {
  search-results .control-filter:hover svg {
    animation: wiggle 2.5s infinite;
  }
}
search-results .tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin: calc(var(--gap) * -0.5) calc(var(--gap) * -1);
}
search-results .tags li {
  margin: calc(var(--gap) * 0.5) var(--gap);
}
search-results .search-results-container .results {
  --article-min-width: 430px;
  width: 100%;
}
search-results .search-results-container .results li:hover {
  border-color: #131f6b;
}
@media (max-width: 980px) {
  search-results .control-filter {
    display: flex;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLXJlc3VsdHMuc2NzcyIsImNvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1yZXN1bHRzLmNzcyIsIl9saWIvY3JlYXRlL191bml0cy5zY3NzIiwiX2xpYi9jcmVhdGUvX2hlYWRpbmdzLnNjc3MiLCJfaGVscGVycy9taXNjLnNjc3MiLCJfdmFyaWFibGVzL2NvbG91cnMuc2NzcyIsIl9saWIvY3JlYXRlL19wYWxldHRlLnNjc3MiLCJfbGliL2NvbGxlY3Rpb25zL3N0eWxpbmcvX2hvdmVyLnNjc3MiLCJfbGliL2hlbHBlcnMvX2JyZWFrLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFBQTtBQ2FBOzt5REFBQTtBQW1EQTs7eURBQUE7QUM1REE7O3NCQUFBO0FBc0VBOztzQkFBQTtBQ3pEQTs7dURBQUE7QUErQkE7O3VEQUFBO0FBeUJBOzt1REFBQTtBQTJCQTs7dURBQUE7QUNoR0U7RUFDRSxzRkFBQTtBQzBCSjs7QUR0QkE7RUFDRSxhQUFBO0VBQ0EsOEJFeUNNO0FEaEJSO0FEdkJFO0VHbUlBLGlCQUFBO0VBV0ksZ0JBM0ZjO0VIakRoQixhQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtBQzBCSjtBRHZCRTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFSVpILGtCQUFBO0VBQ0EsTUFBQTtFQUNBLGdDQUFBO0VBRUEsWUFBQTtFQUNBLG1CQ01tQjtFRExuQixjQ2tCbUI7RURoQm5CLGtGQUFBO0VBQ0EsOEJBQUE7RUFsQkEsd0RBQUE7RUp1QkcsdUNBQUE7RUFDQSxRQUFBO0VBQ0EsMENBQUE7RUFDQSx3REFBQTtBQ2lDSjtBRC9CSTtFSXhCSCxXSnlCcUI7RUl4QnJCLFlKd0JxQjtFQUNoQixhTWlCVTtFTmhCVix3QkFBQTtFQUNBLGlCQUFBO0FDa0NOO0FNakVFO0VQbUNJO0lBQ0UsK0JBQUE7RUNpQ047QUFDRjtBRDdCRTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxxREFBQTtBQytCSjtBRDdCSTtFQUNFLHlDQUFBO0FDK0JOO0FEMUJJO0VBQ0UsMEJBQUE7RUFHQSxXQUFBO0FDMEJOO0FEeEJNO0VBQVcscUJLOUNHO0FKeUVwQjtBT2hGRTtFUjZERTtJQUFrQixhQUFBO0VDdUJwQjtBQUNGIiwiZmlsZSI6ImNvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1yZXN1bHRzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cblxuJHBhZ2UtYmFja2dyb3VuZCAgICAgICAgICA6IDUwMDtcblxuJG5hdmlnYXRpb24tYmFyICAgICAgICAgICA6IDE1MDA7XG4kbmF2aWdhdGlvbi1iYXItY29udGFpbmVyIDogJG5hdmlnYXRpb24tYmFyO1xuJGdsb2JhbC1zZWFyY2gtbW9iaWxlICAgICA6IC0xO1xuXG4kc2Nyb2xsLWJhciAgICAgICAgICAgICAgIDogMTEwMDtcblxuJG1haW4gICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG4kaGVhZGVyICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRzaWRlLWJhciAgICAgICAgICAgICAgICAgOiAxNzUwO1xuXG4kbW9kYWwgICAgICAgICAgICAgICAgICAgIDogMTAwMDA7IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuQHVzZSBcImZvbnRcIjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuJGJhc2UtaW5wdXQtcGFkZGluZzogJGdhcDtcblxuXG5AbWl4aW4gYXJyb3ctZG93bi1pbWFnZSgkc3Ryb2tlIDogdmFyKC0tZm9udC1jb2xvdXIpKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElOUFVUU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gY2hhcmFjdGVyLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXQoKSB7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tcGFkZGluZyAgICAgICAgICAgOiBjYWxjKCN7JGJhc2UtaW5wdXQtcGFkZGluZ30gLyAxLjUpICN7JGJhc2UtaW5wdXQtcGFkZGluZ307XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgOiAjeyRncmV5N307XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwO1xuXG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICAvKiBPcGVyYSAxMC41LCBJRSA5LCBTYWZhcmkgNSwgQ2hyb21lLCBGaXJlZm94IDQsIGlPUyA0LCBBbmRyb2lkIDIuMSsgKi9cbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOyAgLyogU2FmYXJpIDMtNCwgaU9TIDEtMy4yLCBBbmRyb2lkIDEuNi0gKi8gICAgXG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIC8qIEZpcmVmb3ggMS0zLjYgKi8gICAgIFxuXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJHRyYW5zaXRpb247XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudDtcblxuICAmOjpwbGFjZWhvbGRlciB7IHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uIH1cblxuICAvLyAmOm5vdCg6ZW1wdHkpIHtcbiAgLy8gICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkdHJhbnNwYXJlbnQgfVxuICAvLyB9XG59XG5cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDT05UQUlORVJTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjb250YWluZXIoKSB7XG4gIC0tbGFiZWwtY29sb3VyICAgICAgICA6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1sYWJlbC1hY3RpdmUtY29sb3VyIDogdmFyKC0tdGhlbWUtYWNjZW50KTtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogMXJlbTtcblxuICBsYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWxhYmVsLWNvbG91cik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbn1cblxuQG1peGluIHRleHQtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbn1cblxuXG5AbWl4aW4gcmFkaW8tY2hlY2tib3gtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcblxuICAtLWlucHV0LXdpZHRoOiAxLjJlbTtcbiAgLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4gIC0taW5wdXQtYWN0aXZlLWNvbG91cjogI3skcmVkfTtcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdyaWQtZ2FwOiAkZ2FwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKHZhcigtLWlucHV0LXdpZHRoKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci10aGlja25lc3MsIDFweCkgc29saWQgJGdyZXk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKGNhbGModmFyKC0taW5wdXQtd2lkdGgpIC0gdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcykgKiA2KSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBsZWZ0OiAtMTBweDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAtLWxhYmVsLWNvbG91cjogdmFyKC0tbGFiZWwtYWN0aXZlLWNvbG91cik7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYWN0aXZlLWNvbG91cik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLWNvbnRhaW5lcigpIHtcbiAgbGFiZWwge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbXVsdGktaW5wdXQoKSB7XG4gIC0taW5wdXQtc3BhY2luZzogMDtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0taW5wdXQtc3BhY2luZyk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcblxuICBAaW5jbHVkZSBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICAgICY6bm90KHNlbGVjdCkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAqOm5vdChzZWxlY3QsIGJ1dHRvbiwgYSkge1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgXG4gIHNlbGVjdCwgYnV0dG9uLCBhIHtcbiAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfTtcblxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgc2VsZWN0IHsgQGluY2x1ZGUgYXJyb3ctZG93bi1pbWFnZSgkd2hpdGUpIH07XG59XG5cbkBtaXhpbiBiYXNlLXJlcXVpcmVkKCkge1xuICByZXF1aXJlZC1ub3RpY2Uge1xuICAgIC0tbm90aWNlLWNvbG91cjogI3skcmVkfTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLW5vdGljZS1jb2xvdXIpO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByYWRpby10YWJzKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIHJhZGlvLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgXG4gICAgaW5wdXQgeyBcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICArIGxhYmVsOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIFxuXG4gICAgfVxuXG4gIH1cbn1cblxuXG5AbWl4aW4gaW5wdXQtZm9jdXMoKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDFweCByZ2JhKCRyZWQsIDAuMyk7XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcy8nIGFzICo7XG5AdXNlICcuLi9faGVscGVycy8nIGFzICo7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuQG1peGluIGJhc2UoKSB7XG5cbiAgLS1oZWFkaW5nLWNvbG91ciAgICA6ICN7JGJsdWV9O1xuXG4gIC0tYm9yZGVyLXRoaWNrbmVzcyAgOiAxcHg7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwcHg7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLXBhZGRpbmcgICAgICAgICAgIDogMnJlbTtcblxuICAtLXBhZGRpbmctbGVmdCAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1yaWdodCAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXRvcCAgICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctYm90dG9tICAgIDogdmFyKC0tcGFkZGluZyk7XG5cbiAgLS1pbWFnZS13aWR0aCAgICAgICA6IDEwMHB4O1xuICAtLWltYWdlLWhlaWdodCAgICAgIDogMTAwcHg7XG5cbiAgLS1ncmlkLWdhcCAgICAgICAgICA6ICN7JGdhcH07XG5cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctdG9wKSB2YXIoLS1wYWRkaW5nLXJpZ2h0KSB2YXIoLS1wYWRkaW5nLWJvdHRvbSkgdmFyKC0tcGFkZGluZy1sZWZ0KTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItdGhpY2tuZXNzKSBzb2xpZCAkdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIC8vIGJveC1zaGFkb3c6IDBweCAwcHggNXB4IDFweCByZ2JhKCRncmV5LCAwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHRyYW5zaXRpb246IGJvcmRlciAkdHJhbnNpdGlvbjtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3JpZC1nYXApIHZhcigtLWdyaWQtZ2FwKTtcbiAgLy8gcGxhY2UtY29udGVudDogc3RhcnQ7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xuICAgICAgXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdmFyKC0taW1hZ2UtaGVpZ2h0KTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgZ3JpZC1hcmVhOiB0aXRsZTtcbiAgICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpO1xuICAgIGEgeyBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpIH1cbiAgfVxuXG4gIC5yZXN1bHQtc3VidGl0bGUgeyBncmlkLWFyZWE6IHN1YnRpdGxlIH1cbiAgLnJlc3VsdC1ib2R5ICAgICB7IGdyaWQtYXJlYTogYm9keSB9XG5cbiAgJi5ibG9nICAgIHsgQGluY2x1ZGUgYmxvZygpIH1cbiAgJi5tYXJrZXQtc2VjdG9yICAgIHsgQGluY2x1ZGUgbWFya2V0LXNlY3RvcigpIH1cbiAgJi5wcm9kdWN0IHsgQGluY2x1ZGUgcHJvZHVjdCgpIH1cbiAgJi5wYWdlICAgIHsgQGluY2x1ZGUgcGFnZSgpIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBtYXJrZXQtc2VjdG9yKCkge1xuXG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6dHJhbnNwYXJlbnQ7IFxuICAtLWZvbnQtY29sb3VyOndoaXRlOyBcbiAgLS1oZWFkaW5nLWNvbG91ciA6IHdoaXRlOyBcblxuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6MCAwICRndXR0ZXIwIDAgOyBcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcmVzdWx0LWl0ZW0tYm9yZGVyLWJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpKTtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNsYW1wKDE0MHB4LCA0MHZ3LCAxODBweCk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWltYWdlLW91dGxpbmUtY29sb3VyLCB0cmFuc3BhcmVudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWltYWdlLW91dGxpbmUtb2Zmc2V0LCAwLjFlbSk7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yICR0cmFuc2l0aW9uLCBvdXRsaW5lLW9mZnNldCAkdHJhbnNpdGlvbjtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgfVxuXG4gICY6aG92ZXIgeyBcbiAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjIpfTtcbiAgICAtLWltYWdlLW91dGxpbmUtb2Zmc2V0IDogMC4zZW07XG4gICAgLnJlc3VsdC10aXRsZSBhIHsgY29sb3I6JHJlZDsgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICY6OmFmdGVyIHsgXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6MDsgXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgei1pbmRleDoxOyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5W2RhdGEtdGhlbWU9J3doaXRlJ10gJiB7XG4gICAgLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tIDogI3tyZ2JhKCRibHVlLCAwLjIpfTtcbiAgICAtLWZvbnQtY29sb3VyOiN7JGJsdWV9OyBcbiAgICAtLWhlYWRpbmctY29sb3VyIDogI3skYmx1ZX07IFxuICAgICY6aG92ZXIgeyBcbiAgICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkjbWFya2V0LXNlY3RvcnMge1xuICAgICYge1xuICAgICAgLy8gaXNvbGF0aW9uOiBpbml0aWFsO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xuICAgICAgY29udGFpbmVyLW5hbWUgOiBtYXJrZXQtc2VjdG9yO1xuICAgICAgLnJlc3VsdC1pdGVtIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgYS5kZXRhaWxzOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOjAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtZGFyaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDIyMHB4O1xuICAgICAgICB3aWR0aDp2YXIoLS1tYXJrZXQtc2VjdG9yLWFydGljbGUtd2lkdGgsIGNhbGMoMjAwJSArICN7JGd1dHRlcn0gKyAycHgpKTtcblxuICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gc2V0dXBcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBvcGFjaXR5ICR0cmFuc2l0aW9uLFxuICAgICAgICAgIGRpc3BsYXkgJHRyYW5zaXRpb24gYWxsb3ctZGlzY3JldGU7XG4gICAgICAgIC5kZXRhaWxzLXRleHQge1xuICAgICAgICAgIHBhZGRpbmc6JGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1oZWFkaW5nIHtcbiAgICAgICAgICBjb2xvcjokcmVkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjFlbTtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDM1JSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjA7XG4gICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRldGFpbHMge1xuICAgICAgICBAY29udGFpbmVyIG1hcmtldC1zZWN0b3IgKCB3aWR0aCA8IDQyMHB4KSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgLmRldGFpbHMtaW1hZ2Uge1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbml0aWFsO1xuICAgICAgICAgICAgaGVpZ2h0OjEwMHB4O1xuICAgICAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgJiAucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAuZGV0YWlscyB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEgKCB3aWR0aCA+IDIwNTBweCkge1xuICAgICAgICAgIHdpZHRoOjEwMCU7IFxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJ0aWNsZS1ncmlkOmhhcygucmVzdWx0LWl0ZW06aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHtcbiAgICAgIC5yZXN1bHQtaXRlbTpub3QoOmlzKDpob3ZlciwgOmZvY3VzLXZpc2libGUpKSB7IG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O31cbiAgICB9XG5cbiAgICBAY29udGFpbmVyIG1haW4gKCB3aWR0aCA8IDY2MHB4KSB7XG4gICAgICBhcnRpY2xlLWdyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICAgICAgICAtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCA6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgIEBjb250YWluZXIgbWFpbiAoNjYwcHggPCB3aWR0aCA8IDk2NHB4KSAge1xuICAgICAgICAucmVzdWx0LWl0ZW06bnRoLWNoaWxkKDJuKSAuZGV0YWlscyB7XG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGNvbnRhaW5lciBtYWluICggd2lkdGggPiA5NjRweCkgIHtcbiAgICAgICAgLnJlc3VsdC1pdGVtOm50aC1jaGlsZCgzbikgLmRldGFpbHMge1xuICAgICAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2coKSB7XG4gIC0tcGFkZGluZyAgICAgICAgICA6IDRyZW07XG4gIC0tYm9yZGVyLXRoaWNrbmVzcyA6IDA7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICA6IDA7XG4gIC8vIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB0cmFuc3BhcmVudDtcblxuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwic3VidGl0bGVcIlxuICAgIFwidGl0bGVcIlxuICAgIFwiYm9keVwiO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgcmdiYSh3aGl0ZSwgMSkgNDUlLCB0cmFuc3BhcmVudCAxMjAlKTtcbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LXN1YnRpdGxlIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSB9XG5cbiAgLnJlc3VsdC10aXRsZSB7ICAgICBcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICAucmVzdWx0LXN1YnRpdGxlIHtcbiAgICAtLWhlYWRpbmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgaDQsIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtYm9keSB7IC0tZm9udC1jb2xvdXI6ICN7JGJsYWNrfTsgfVxuXG4gICYuZmVhdHVyZWQge1xuICAgIC0tcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuXG4gICAgLnJlc3VsdC10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWgyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnRkVBVFVSRUQnO1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZWQtYmFkZ2UoKTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUsIC5yZXN1bHQtYm9keSB7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG5cblxuQG1peGluIHBhZ2UoKSB7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gIFwiaW1hZ2UgdGl0bGVcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIlxuICBcImltYWdlIGJvZHlcIjtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gcHJvZHVjdCgpIHtcbiAgLS1iYWRnZS1zcGFjaW5nIDogM3JlbTtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWltYWdlLXdpZHRoKSBhdXRvO1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSB0aXRsZVwiXG4gICAgXCJpbWFnZSBkYXRhXCJcbiAgICBcImltYWdlIGRhdGFcIjtcblxuICAvLyAucmVzdWx0LXRpdGxlIHtcbiAgLy8gICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAvLyB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJhZGdlLXNwYWNpbmcpICogMik7XG4gIH1cblxuICAucHJvZHVjdC1kYXRhIHtcbiAgICBncmlkLWFyZWE6IGRhdGE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBncmlkLWdhcDogY2FsYygkZ2FwIC8gMikgJGdhcDtcbiAgfVxuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oNDUwKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIFwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJkYXRhXCI7XG5cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVuc2V0O1xuXG4gICAgLnByb2R1Y3QtZGF0YSB7XG4gICAgICAvLyBtYXJnaW4tdG9wOiAkZ2FwLTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuXG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcblxuICAgIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtYm9keSB7IHBhZGRpbmctcmlnaHQ6IDAgfVxuICAgIC8vIC5yZXN1bHQtdGl0bGUgeyBhbGlnbi1zZWxmOiBjZW50ZXIgfVxuICB9XG5cblxuICAmLmluLXN0b2NrOjpiZWZvcmUge1xuICAgIC0tcGFkZGluZy15IDogMC4yZW07XG4gICAgLS1wYWRkaW5nLXggOiAxMGVtO1xuXG4gICAgY29udGVudDogJ2luIHN0b2NrJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDFlbSArIHZhcigtLXBhZGRpbmcteSkpO1xuICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tcGFkZGluZy14KSk7XG4gICAgcGFkZGluZzogMC41ZW0gdmFyKC0tcGFkZGluZy14KTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuQG1peGluIHRhZygpIHtcbiAgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBkaXNhYmxlZCgpIH1cbiAgJi5jYXRlZ29yeSB7XG4gICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG4gICAgLnRhZy1zZWNvbmRhcnk6aG92ZXIgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIoKSB9XG4gIH1cblxuICAmLmNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSB0YWctY2hlY2tib3goKTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWJhc2UoKSB7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgICA6IDBweDtcbiAgLS1mb250LWNvbG91ciAgICAgICAgIDogI3skcmVkfTtcbiAgLS1iZy1jb2xvdXIgICAgICAgICAgIDogd2hpdGU7XG4gIC0tc2Vjb25kYXJ5LXdpZHRoICAgICA6IDNjaDtcbiAgLS1zZWNvbmRhcnktcGFkZGluZy14IDogM3B4O1xuICAtLWJvcmRlci1jb2xvdXIgICAgICAgOiB0cmFuc3BhcmVudDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAudGFnLWxhYmVsIHtcbiAgICBwYWRkaW5nOiAzcHggJGdhcCAzcHggJGdhcDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy13aXRoLXNlY29uZGFyeSgpIHtcbiAgLS1zeW1ib2wtY29sb3VyIDogI3skcmVkfTtcblxuICAudGFnLXNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tc2Vjb25kYXJ5LXBhZGRpbmcteCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAzY2g7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWNoZWNrYm94KCkge1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgQGluY2x1ZGUgdGFnLWJhc2UoKTtcbiAgICAgIEBpbmNsdWRlIHRhZy13aXRoLXNlY29uZGFyeSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAtLWJnLWNvbG91cjogI3skcmVkfTtcblxuICAgICAgLnRhZy1zZWNvbmRhcnkgeyBAaW5jbHVkZSBzZWNvbmRhcnktaG92ZXIocmdiYSh3aGl0ZSwgMC4zKSkgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBzZWNvbmRhcnktaG92ZXIoJGNvbG91ciA6ICRyZWQpIHtcbiAgLS1zeW1ib2wtY29sb3VyOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuXG5ib2R5Lm1vYmlsZS1zZWFyY2gtb3BlbiB7XG4gIHNlYXJjaC1yZXN1bHRzIC5jb250cm9sLWZpbHRlciB7XG4gICAgdG9wOiBjYWxjKHZhcigtLW5hdmlnYXRpb24tY29udGFpbmVyLWhlaWdodCkgKyB2YXIoLS1uYXZpZ2F0aW9uLW1vYmlsZS1zZWFyY2gtaGVpZ2h0KSk7XG4gIH1cbn1cblxuc2VhcmNoLXJlc3VsdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogJGdhcDI7XG5cbiAgLmhlYWRpbmcgeyBcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyKCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5jb250cm9sLWZpbHRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgQGluY2x1ZGUgZmVhdHVyZWQtYmFkZ2UoJHJlZCk7XG4gICAgdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWNvbnRhaW5lci1oZWlnaHQpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgzOXB4KTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgJHRyYW5zaXRpb24tc2VhcmNoLW9wZW47XG4gICAgXG4gICAgc3ZnIHsgXG4gICAgICBAaW5jbHVkZSBzcXVhcmUoMjBweCk7XG4gICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICAgIHN2ZyB7IFxuICAgICAgICBhbmltYXRpb246IHdpZ2dsZSAyLjVzIGluZmluaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogJGdhcDAtICRnYXAtO1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luOiAkZ2FwMCAkZ2FwO1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuICAgIC5yZXN1bHRzIHtcbiAgICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDQzMHB4O1xuICAgICAgLy8gZGlzcGxheTogZ3JpZDtcbiAgICAgIC8vIGdyaWQtZ2FwOiAkZ2FwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIGxpOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiAkYmx1ZSB9XG4gICAgfVxuICAgIC5uby1yZXN1bHRzIHtcbiAgICAgIC8vIFRPRE86XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAuY29udHJvbC1maWx0ZXIgeyBkaXNwbGF5OiBmbGV4IH1cbiAgfVxufSIsIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5Lm1vYmlsZS1zZWFyY2gtb3BlbiBzZWFyY2gtcmVzdWx0cyAuY29udHJvbC1maWx0ZXIge1xuICB0b3A6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1jb250YWluZXItaGVpZ2h0KSArIHZhcigtLW5hdmlnYXRpb24tbW9iaWxlLXNlYXJjaC1oZWlnaHQpKTtcbn1cblxuc2VhcmNoLXJlc3VsdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogY2FsYyh2YXIoLS1nYXApICogMik7XG59XG5zZWFyY2gtcmVzdWx0cyAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5zZWFyY2gtcmVzdWx0cyAuY29udHJvbC1maWx0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAwLjdyZW0gMnJlbSAwLjdyZW0gM3JlbTtcbiAgaGVpZ2h0OiAzOXB4O1xuICBiYWNrZ3JvdW5kOiAjREYzMDM1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTAuNXB4KSB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMTVweCAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWNvbnRhaW5lci1oZWlnaHQpO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDM5cHgpO1xuICB0cmFuc2l0aW9uOiB0b3AgMC40cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbn1cbnNlYXJjaC1yZXN1bHRzIC5jb250cm9sLWZpbHRlciBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmaWxsOiAjRkZGRkZGO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLXJlc3VsdHMgLmNvbnRyb2wtZmlsdGVyOmhvdmVyIHN2ZyB7XG4gICAgYW5pbWF0aW9uOiB3aWdnbGUgMi41cyBpbmZpbml0ZTtcbiAgfVxufVxuc2VhcmNoLXJlc3VsdHMgLnRhZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1nYXApICogLTAuNSkgY2FsYyh2YXIoLS1nYXApICogLTEpO1xufVxuc2VhcmNoLXJlc3VsdHMgLnRhZ3MgbGkge1xuICBtYXJnaW46IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbn1cbnNlYXJjaC1yZXN1bHRzIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdHMge1xuICAtLWFydGljbGUtbWluLXdpZHRoOiA0MzBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5zZWFyY2gtcmVzdWx0cyAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHRzIGxpOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTMxZjZiO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIHNlYXJjaC1yZXN1bHRzIC5jb250cm9sLWZpbHRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZihzYXNzKCRtaW4gPT0gMCk6IDBweDsgZWxzZTogJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIZWFkaW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuL2NvbGxlY3Rpb25zL2ZvbnQnO1xuQHVzZSAnLi9tb2R1bGVzL3VuaXQnO1xuXG4vLyBEZWZhdWx0IEhlYWRpbmcgVmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEgOiAoXG4gICdmb250LXNpemUnICAgOiAzLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjFcbikgIWRlZmF1bHQ7XG5cbiRoMiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuNXJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuM1xuKSAhZGVmYXVsdDtcblxuJGgzIDogKFxuICAnZm9udC1zaXplJyAgIDogMi4ycmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDQgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuOHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg2IDogKFxuICAnZm9udC1zaXplJyAgIDogMS42cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kYmFzZSA6IDYyLjUgIWRlZmF1bHQ7XG4kc2NhbGVyIDogMS41dncgIWRlZmF1bHQ7XG4kZW5hYmxlLWNyb3BwaW5nIDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhbGxiYWNrIExpbmUtaGVpZ2h0cyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgxLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgxIDogbWFwLnNldCgkaDEsICdsaW5lLWhlaWdodCcsIDEuMSk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgyLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgyIDogbWFwLnNldCgkaDIsICdsaW5lLWhlaWdodCcsIDEuMyk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgzLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgzIDogbWFwLnNldCgkaDMsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg0LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg0IDogbWFwLnNldCgkaDQsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg1LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg1IDogbWFwLnNldCgkaDUsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg2LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg2IDogbWFwLnNldCgkaDYsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cblxuLy8gRGVmaW5lIHRoZSB2YXJpYWJsZXMgc28gdGhleSBhcmUgc3RpbGwgYWNjZXNpYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxLWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoMSwgJ2ZvbnQtc2l6ZScpO1xuJGgxLWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoMSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDEtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoMSwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDEtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGgxLCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoMi1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDIsICdmb250LXNpemUnKTtcbiRoMi1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDIsICdsaW5lLWhlaWdodCcpO1xuJGgyLWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDIsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGgyLXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoMiwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDMtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGgzLCAnZm9udC1zaXplJyk7XG4kaDMtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGgzLCAnbGluZS1oZWlnaHQnKTtcbiRoMy1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGgzLCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoMy1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDMsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGg0LWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoNCwgJ2ZvbnQtc2l6ZScpO1xuJGg0LWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoNCwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDQtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoNCwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDQtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGg0LCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoNS1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDUsICdmb250LXNpemUnKTtcbiRoNS1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDUsICdsaW5lLWhlaWdodCcpO1xuJGg1LWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDUsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGg1LXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoNSwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDYtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGg2LCAnZm9udC1zaXplJyk7XG4kaDYtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGg2LCAnbGluZS1oZWlnaHQnKTtcbiRoNi1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGg2LCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoNi1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDYsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuLy8gSGFuZGxlcyBDcm9wcyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJF9oMS1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDEsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDItY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGgyLCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gzLWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoMywgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNC1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDQsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDUtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGg1LCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g2LWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoNiwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuXG4kX2gxLWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoMSwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oMi1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDIsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDMtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGgzLCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g0LWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoNCwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNS1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDUsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDYtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGg2LCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG5cblxuLy8gTWl4aW5zIGZvciBlYWNoIGhlYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIF9zZXQtY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wKSB7XG5cbiAgQGlmIChtZXRhLnR5cGUtb2YoJGNyb3ApID09ICdtYXAnKSB7XG5cbiAgICAkZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRmb250LXNpemUpICogMTA7XG4gICAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICAgICR0b3AgICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpKTogdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcInRvcFwiKSk7IGVsc2U6IDApO1xuICAgICRib3R0b20gICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpKTogdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcImJvdHRvbVwiKSk7IGVsc2U6IDApO1xuXG4gICAgQGluY2x1ZGUgZm9udC5jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHRvcCwgJGJvdHRvbSk7XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMS1mb250LXNpemUtbWluIGFuZCAkaDEtZm9udC1zaXplLW1pbiA8ICRoMS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZS1taW4pfSwgI3skaDEtc2NhbGVyfSwgI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgxLWZvbnQtc2l6ZSwgJGgxLWxpbmUtaGVpZ2h0LCAkX2gxLWNyb3AtdG9wLCAkX2gxLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDEtbGluZS1oZWlnaHQ7IFxuICAgIH1cblxuICB9XG5cbn1cblxuQG1peGluIGgyKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgyLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgyLWZvbnQtc2l6ZS1taW4gYW5kICRoMi1mb250LXNpemUtbWluIDwgJGgyLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplLW1pbil9LCAjeyRoMi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDItZm9udC1zaXplLCAkaDItbGluZS1oZWlnaHQsICRfaDItY3JvcC10b3AsICRfaDItY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGgzKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgzLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgzLWZvbnQtc2l6ZS1taW4gYW5kICRoMy1mb250LXNpemUtbWluIDwgJGgzLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplLW1pbil9LCAjeyRoMy1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDMtZm9udC1zaXplLCAkaDMtbGluZS1oZWlnaHQsICRfaDMtY3JvcC10b3AsICRfaDMtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMy1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg0KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg0LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg0LWZvbnQtc2l6ZS1taW4gYW5kICRoNC1mb250LXNpemUtbWluIDwgJGg0LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplLW1pbil9LCAjeyRoNC1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDQtZm9udC1zaXplLCAkaDQtbGluZS1oZWlnaHQsICRfaDQtY3JvcC10b3AsICRfaDQtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNC1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg1KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg1LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg1LWZvbnQtc2l6ZS1taW4gYW5kICRoNS1mb250LXNpemUtbWluIDwgJGg1LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplLW1pbil9LCAjeyRoNS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDUtZm9udC1zaXplLCAkaDUtbGluZS1oZWlnaHQsICRfaDUtY3JvcC10b3AsICRfaDUtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNS1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg2KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg2LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg2LWZvbnQtc2l6ZS1taW4gYW5kICRoNi1mb250LXNpemUtbWluIDwgJGg2LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplLW1pbil9LCAjeyRoNi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcDIoJGg2LWZvbnQtc2l6ZSwgJGg2LWxpbmUtaGVpZ2h0LCAkX2g2LWNyb3AtdG9wLCAkX2g2LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDYtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cblxuIiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcblxuXG5AbWl4aW4gYW5nbGVkLWNsaXAoKSB7XG5cdGNsaXAtcGF0aDogcG9seWdvbigwJSAxMDAlLCAxNXB4IDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xufVxuXG5AbWl4aW4gc3F1YXJlKCRsZW5ndGgpIHtcblx0d2lkdGg6ICRsZW5ndGg7XG5cdGhlaWdodDogJGxlbmd0aDtcbn1cblxuQG1peGluIGZlYXR1cmVkLWJhZGdlKCRjb2xvdXIgOiAkb3JhbmdlKSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRwYWRkaW5nOiAwLjdyZW0gMnJlbSAwLjdyZW0gM3JlbTtcblx0Ly8gRml4ZWQgaGVpZ2h0IHNsaWdodGx5IGZpeGVzIGJsdXJyeSB0ZXh0IGlzc3VlIGluIGNocm9tZVxuXHRoZWlnaHQ6IDM5cHg7XG5cdGJhY2tncm91bmQ6ICRjb2xvdXI7XG5cdGNvbG9yOiAkd2hpdGU7XG5cdC8vIC0wLjVweCBzbGlnaHRseSBmaXhlcyBibHVycnkgdGV4dCBpc3N1ZSBpbiBjaHJvbWVcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTAuNXB4KSB0cmFuc2xhdGVYKC0xMDAlKSB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoLTkwZGVnKTtcblx0dHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xuXHRAaW5jbHVkZSBhbmdsZWQtY2xpcCgpO1xufVxuXG5AbWl4aW4gZGlzYWJsZWQoJG9wYWNpdHkgOiAwLjQpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWl4aW4gdGV4dC1lbGxpcHNpcygpIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuIFxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvdyBcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnQgXG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLiBcbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsIFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duIFxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZSBcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS4gXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS4gXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZSAgICAgICAgICAgICA6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMiAgICAgICAgICAgIDogIzI5MkI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzICAgICAgICAgICAgOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0ICAgICAgICAgICAgOiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTUgICAgICAgICAgICA6ICMwMDk1RkY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciBcblxuJHJlZCAgICAgICAgICAgICAgOiAjREYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZSBcblxuJGdyZXkgICAgICAgICAgICAgOiAjOTY5Njk1O1xuJGdyZXkyICAgICAgICAgICAgOiAjNkE2QTZBOyAvLyBGb250XG4kZ3JleTMgICAgICAgICAgICA6ICNGNEY0RjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQgICAgICAgICAgICA6ICNkY2RjZGM7XG4kZ3JleTUgICAgICAgICAgICA6ICNCMUIxQjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2ICAgICAgICAgICAgOiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgIFxuJGdyZXk3ICAgICAgICAgICAgOiAjZTllOWU5O1xuJGdyZWVuICAgICAgICAgICAgOiAjNTBCQzA4O1xuJHllbGxvdyAgICAgICAgICAgOiAjRjZGNERCOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyICAgICAgICAgIDogI0ZDQjAwMjtcbiRibGFjayAgICAgICAgICAgIDogIzFFMUExQTtcbiR3aGl0ZSAgICAgICAgICAgIDogI0ZGRkZGRjtcblxuJG9yYW5nZSAgICAgICAgICAgOiAjZWQ2MjI0O1xuXG5cbiR0cmFuc3BhcmVudCAgICAgIDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiRtYXJrICAgICAgICAgICAgIDogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJGRlZmF1bHQtZ3JhZGllbnQgOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCAkYmx1ZSA1JSwgJGJsYWNrIDY2JSk7XG4kcmV2ZXJzZS1ncmFkaWVudCA6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMxMDEyNGQgMCUsICRibHVlIDgwJSk7XG4kbGlnaHQtZ3JhZGllbnQgICA6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tLCAjMTAxMjRkIDU1JSwgIzE3MjU4MiAxMDAlKTtcblxuXG4vLy9cbiRwcmltYXJ5OiAkYmx1ZTtcbi8vL1xuXG5cblxuXG4vLy8gVGhlbWVzICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kdGhlbWUtZGVmYXVsdC1wYWdlLWJhY2tncm91bmQgICAgOiAkZGVmYXVsdC1ncmFkaWVudDtcbiR0aGVtZS1kZWZhdWx0LWNvbnRlbnQtYmFja2dyb3VuZCA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS1kZWZhdWx0LW5hdi1iYWNrZ3JvdW5kICAgICA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS1kZWZhdWx0LW5hdi1iYWNrZ3JvdW5kLW1vYiA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1mb250ICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1mb250LW1vYiAgICAgICA6ICRibHVlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LXNwYWNpbmctY29sb3VyIDogcmdiYSgkYmx1ZSwgMC4zKTtcbiR0aGVtZS1kZWZhdWx0LWZvbnQgICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LWhlYWRpbmcgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1kZWZhdWx0LWFjY2VudFx0XHRcdFx0XHQgICAgOiAkcmVkO1xuJHRoZW1lLWRlZmF1bHQtbG9nbyAgICAgICAgICAgICAgIDogJHdoaXRlO1xuXG4kdGhlbWUtd2hpdGUtcGFnZS1iYWNrZ3JvdW5kICAgICAgOiAkbGlnaHQtZ3JhZGllbnQ7XG4kdGhlbWUtd2hpdGUtY29udGVudC1iYWNrZ3JvdW5kICAgOiAjZjhmOGY4O1xuJHRoZW1lLXdoaXRlLW5hdi1iYWNrZ3JvdW5kICAgICAgIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLXdoaXRlLW5hdi1iYWNrZ3JvdW5kLW1vYiAgIDogJGJsdWU7XG4kdGhlbWUtd2hpdGUtbmF2LWZvbnQgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtd2hpdGUtbmF2LWZvbnQtbW9iICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtd2hpdGUtbmF2LXNwYWNpbmctY29sb3VyICAgOiByZ2JhKCR3aGl0ZSwgMC4zKTtcbiR0aGVtZS13aGl0ZS1mb250ICAgICAgICAgICAgICAgICA6ICRibGFjaztcbiR0aGVtZS13aGl0ZS1oZWFkaW5nICAgICAgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLXdoaXRlLWFjY2VudFx0XHRcdFx0XHQgICAgICA6ICR0aGVtZS1kZWZhdWx0LWFjY2VudDtcbiR0aGVtZS13aGl0ZS1sb2dvICAgICAgICAgICAgICAgICA6ICR3aGl0ZTtcblxuJHRoZW1lLWJsYWNrLXBhZ2UtYmFja2dyb3VuZCAgICAgIDogJGRlZmF1bHQtZ3JhZGllbnQ7XG4kdGhlbWUtYmxhY2stY29udGVudC1iYWNrZ3JvdW5kICAgOiAkYmxhY2s7XG4kdGhlbWUtYmxhY2stbmF2LWJhY2tncm91bmQgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stbmF2LWJhY2tncm91bmQtbW9iICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stbmF2LWZvbnQgICAgICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1ibGFjay1uYXYtZm9udC1tb2IgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLWJsYWNrLW5hdi1zcGFjaW5nLWNvbG91ciAgIDogcmdiYSgkYmx1ZSwgMC4zKTtcbiR0aGVtZS1ibGFjay1mb250ICAgICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1oZWFkaW5nICAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1hY2NlbnRcdFx0XHRcdFx0ICAgICAgOiAkdGhlbWUtZGVmYXVsdC1hY2NlbnQ7XG4kdGhlbWUtYmxhY2stbG9nbyAgICAgICAgICAgICAgICAgOiAkYmx1ZTtcblxuLy8vIFBhbGV0dGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBCeSBsb2FkaW5nIGNvbmZpZ3VyYXRpb25zIGludG8gdGhpcyAncGFsbGV0ZScgbW9kdWxlLCB3ZSB3aWxsIGJlIGFibGVcbi8vLyB0byBkZWNsYXJlIHZhcmlhbnRzIG9mIGEgZmV3IGNvbW1vbiBjb2xvdXJzLiBZb3UgY2FuIGFsc28gYWRqdXN0IHRoZSBsaWdodG5lc3Ncbi8vLyBvciBkYXJrbmVzcyBvZiBlYWNoIHZhcmlhbnQgYnkgcGFzc2luZyBpbiB0aGUgcmVsZXZhbnQgcHJpdmF0ZSBydWxlcy4gXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnd2l0aCAoJGJsdWUgOiAkYmx1ZSxcblx0JHJlZCA6ICRyZWQsXG5cdCRncmV5IDogJGdyZXksXG5cdCR5ZWxsb3cgOiAkeWVsbG93LFxuXHQkZ3JlZW4gOiAkZ3JlZW4sXG5cdCRibGFjayA6ICRibGFjayk7XG5cbiRjb21wb25lbnQtdGhlbWVzIDogKFwicmVkXCI6ICRyZWQsIFwiYmx1ZVwiOiAkYmx1ZSwgXCJncmV5XCI6ICRncmV5MywgXCJ3aGl0ZVwiIDogJHdoaXRlKTsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iXX0= */