/* 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
----------------------------------------------------- */
.content-block.callToAction {
  background: linear-gradient(120deg, #10124d 0%, #131f6b 80%);
  padding: calc(var(--gap) * 2);
  display: flex;
  flex-direction: column;
}
.content-block.callToAction .call-to-action-heading, .content-block.callToAction .call-to-action-subheading {
  text-transform: uppercase;
}
.content-block.callToAction .call-to-action-heading {
  --heading-colour: #FFFFFF;
  font-size: 1.25em;
  line-height: 1.3;
  padding-right: calc(var(--gap) * 2);
  font-weight: 800;
}
.content-block.callToAction .call-to-action-subheading {
  --heading-colour: #DF3035;
  font-size: 0.9375em;
  line-height: 1.6;
  margin-bottom: var(--gap);
}
.content-block.callToAction .call-to-action-button {
  margin-top: var(--gap);
  margin-left: calc(var(--gap) * 3);
  margin-right: calc(var(--gap) * -2);
  align-self: flex-end;
  margin-block-end: calc(var(--gap) * -2);
  width: -moz-fit-content;
  width: fit-content;
}
.content-block.callToAction .image {
  order: -1;
  width: calc(100% + var(--gap) * 4);
  aspect-ratio: 16/7;
  max-height: 500px;
  margin: calc(var(--gap) * -2) calc(var(--gap) * -2) calc(var(--gap) * 2) calc(var(--gap) * -2);
}
side-bar .content-block.callToAction .call-to-action-button {
  margin-block-end: 0;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy9jYWxsLXRvLWFjdGlvbi5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJfbGliL2NyZWF0ZS9fdW5pdHMuc2NzcyIsImNvbXBvbmVudHMvY29udGVudC1ibG9ja3MvY2FsbC10by1hY3Rpb24uY3NzIiwiX2xpYi9jcmVhdGUvX2hlYWRpbmdzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFBQTtBQ2FBOzt5REFBQTtBQW1EQTs7eURBQUE7QUM1REE7O3NCQUFBO0FBdUVBOztzQkFBQTtBQzFEQTs7dURBQUE7QUErQkE7O3VEQUFBO0FBeUJBOzt1REFBQTtBQTJCQTs7dURBQUE7QUNsR0E7RUFDRSw0REMyQ2tCO0VEMUNsQiw2QkVnRE07RUY5Q04sYUFBQTtFQUNBLHNCQUFBO0FHMkJGO0FIekJFO0VBQ0UseUJBQUE7QUcyQko7QUh4QkU7RUFDRSx5QkFBQTtFSWtJRixpQkFBQTtFQVdJLGdCQTNGYztFSi9DaEIsbUNFbUNJO0VGbENKLGdCQUFBO0FHMEJKO0FIeEJFO0VBQ0UseUJBQUE7RUkrSUYsbUJBQUE7RUFXSSxnQkExR2M7RUo5Q2hCLHlCRTRCSTtBQ0RSO0FIeEJFO0VBQ0Usc0JFd0JJO0VGdkJKLGlDRXlCSTtFRnhCSixtQ0V1QnVCO0VGdEJ2QixvQkFBQTtFQUNBLHVDRXFCdUI7RUZwQnZCLHVCQUFBO0VBQUEsa0JBQUE7QUcwQko7QUh2QkU7RUFDRSxTQUFBO0VBQ0Esa0NBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsOEZBQUE7QUd5Qko7QUh0Qlc7RUFDUCxtQkFBQTtBR3dCSiIsImZpbGUiOiJjb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2NhbGwtdG8tYWN0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cblxuJHBhZ2UtYmFja2dyb3VuZCAgICAgICAgICA6IDUwMDtcblxuJG5hdmlnYXRpb24tYmFyICAgICAgICAgICA6IDE1MDA7XG4kbmF2aWdhdGlvbi1iYXItY29udGFpbmVyIDogJG5hdmlnYXRpb24tYmFyO1xuJGdsb2JhbC1zZWFyY2gtbW9iaWxlICAgICA6IC0xO1xuXG4kc2Nyb2xsLWJhciAgICAgICAgICAgICAgIDogMTEwMDtcblxuJG1haW4gICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG4kaGVhZGVyICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRzaWRlLWJhciAgICAgICAgICAgICAgICAgOiAxNzUwO1xuXG4kbW9kYWwgICAgICAgICAgICAgICAgICAgIDogMTAwMDA7IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuQHVzZSBcImZvbnRcIjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuJGJhc2UtaW5wdXQtcGFkZGluZzogJGdhcDtcblxuXG5AbWl4aW4gYXJyb3ctZG93bi1pbWFnZSgkc3Ryb2tlIDogdmFyKC0tZm9udC1jb2xvdXIpKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElOUFVUU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gY2hhcmFjdGVyLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXQoKSB7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tcGFkZGluZyAgICAgICAgICAgOiBjYWxjKCN7JGJhc2UtaW5wdXQtcGFkZGluZ30gLyAxLjUpICN7JGJhc2UtaW5wdXQtcGFkZGluZ307XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgOiAjeyRncmV5N307XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwO1xuXG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICAvKiBPcGVyYSAxMC41LCBJRSA5LCBTYWZhcmkgNSwgQ2hyb21lLCBGaXJlZm94IDQsIGlPUyA0LCBBbmRyb2lkIDIuMSsgKi9cbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOyAgLyogU2FmYXJpIDMtNCwgaU9TIDEtMy4yLCBBbmRyb2lkIDEuNi0gKi8gICAgXG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIC8qIEZpcmVmb3ggMS0zLjYgKi8gICAgIFxuXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJHRyYW5zaXRpb247XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudDtcblxuICAmOjpwbGFjZWhvbGRlciB7IHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uIH1cblxuICAvLyAmOm5vdCg6ZW1wdHkpIHtcbiAgLy8gICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkdHJhbnNwYXJlbnQgfVxuICAvLyB9XG59XG5cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDT05UQUlORVJTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjb250YWluZXIoKSB7XG4gIC0tbGFiZWwtY29sb3VyICAgICAgICA6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1sYWJlbC1hY3RpdmUtY29sb3VyIDogdmFyKC0tdGhlbWUtYWNjZW50KTtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogMXJlbTtcblxuICBsYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWxhYmVsLWNvbG91cik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbn1cblxuQG1peGluIHRleHQtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbn1cblxuXG5AbWl4aW4gcmFkaW8tY2hlY2tib3gtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcblxuICAtLWlucHV0LXdpZHRoOiAxLjJlbTtcbiAgLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4gIC0taW5wdXQtYWN0aXZlLWNvbG91cjogI3skcmVkfTtcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdyaWQtZ2FwOiAkZ2FwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKHZhcigtLWlucHV0LXdpZHRoKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci10aGlja25lc3MsIDFweCkgc29saWQgJGdyZXk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKGNhbGModmFyKC0taW5wdXQtd2lkdGgpIC0gdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcykgKiA2KSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBsZWZ0OiAtMTBweDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAtLWxhYmVsLWNvbG91cjogdmFyKC0tbGFiZWwtYWN0aXZlLWNvbG91cik7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYWN0aXZlLWNvbG91cik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLWNvbnRhaW5lcigpIHtcbiAgbGFiZWwge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbXVsdGktaW5wdXQoKSB7XG4gIC0taW5wdXQtc3BhY2luZzogMDtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0taW5wdXQtc3BhY2luZyk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcblxuICBAaW5jbHVkZSBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICAgICY6bm90KHNlbGVjdCkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAqOm5vdChzZWxlY3QsIGJ1dHRvbiwgYSkge1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgXG4gIHNlbGVjdCwgYnV0dG9uLCBhIHtcbiAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfTtcblxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgc2VsZWN0IHsgQGluY2x1ZGUgYXJyb3ctZG93bi1pbWFnZSgkd2hpdGUpIH07XG59XG5cbkBtaXhpbiBiYXNlLXJlcXVpcmVkKCkge1xuICByZXF1aXJlZC1ub3RpY2Uge1xuICAgIC0tbm90aWNlLWNvbG91cjogI3skcmVkfTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLW5vdGljZS1jb2xvdXIpO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByYWRpby10YWJzKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIHJhZGlvLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgXG4gICAgaW5wdXQgeyBcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICArIGxhYmVsOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIFxuXG4gICAgfVxuXG4gIH1cbn1cblxuXG5AbWl4aW4gaW5wdXQtZm9jdXMoKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDFweCByZ2JhKCRyZWQsIDAuMyk7XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcy8nIGFzICo7XG5AdXNlICcuLi9faGVscGVycy8nIGFzICo7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuQG1peGluIGJhc2UoKSB7XG5cbiAgLS1oZWFkaW5nLWNvbG91ciAgICA6ICN7JGJsdWV9O1xuXG4gIC0tYm9yZGVyLXRoaWNrbmVzcyAgOiAxcHg7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwcHg7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLXBhZGRpbmcgICAgICAgICAgIDogMnJlbTtcblxuICAtLXBhZGRpbmctbGVmdCAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1yaWdodCAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXRvcCAgICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctYm90dG9tICAgIDogdmFyKC0tcGFkZGluZyk7XG5cbiAgLS1pbWFnZS13aWR0aCAgICAgICA6IDEwMHB4O1xuICAtLWltYWdlLWhlaWdodCAgICAgIDogMTAwcHg7XG5cbiAgLS1ncmlkLWdhcCAgICAgICAgICA6ICN7JGdhcH07XG5cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctdG9wKSB2YXIoLS1wYWRkaW5nLXJpZ2h0KSB2YXIoLS1wYWRkaW5nLWJvdHRvbSkgdmFyKC0tcGFkZGluZy1sZWZ0KTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItdGhpY2tuZXNzKSBzb2xpZCAkdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgLy8gYm94LXNoYWRvdzogMHB4IDBweCA1cHggMXB4IHJnYmEoJGdyZXksIDAuMSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdHJhbnNpdGlvbjogYm9yZGVyICR0cmFuc2l0aW9uO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ncmlkLWdhcCkgdmFyKC0tZ3JpZC1nYXApO1xuICAvLyBwbGFjZS1jb250ZW50OiBzdGFydDtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgcGljdHVyZSB7XG4gICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCk7XG4gICAgICBcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlIHtcbiAgICBncmlkLWFyZWE6IHRpdGxlO1xuICAgIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91cik7XG4gICAgYSB7IGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91cikgfVxuICB9XG5cbiAgLnJlc3VsdC1zdWJ0aXRsZSB7IGdyaWQtYXJlYTogc3VidGl0bGUgfVxuICAucmVzdWx0LWJvZHkgICAgIHsgZ3JpZC1hcmVhOiBib2R5IH1cblxuICAmLmJsb2cgICAgeyBAaW5jbHVkZSBibG9nKCkgfVxuICAmLm1hcmtldC1zZWN0b3IgICAgeyBAaW5jbHVkZSBtYXJrZXQtc2VjdG9yKCkgfVxuICAmLnByb2R1Y3QgeyBAaW5jbHVkZSBwcm9kdWN0KCkgfVxuICAmLnBhZ2UgICAgeyBAaW5jbHVkZSBwYWdlKCkgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0VmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIG1hcmtldC1zZWN0b3IoKSB7XG5cbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjp0cmFuc3BhcmVudDsgXG4gIC0tZm9udC1jb2xvdXI6d2hpdGU7IFxuICAtLWhlYWRpbmctY29sb3VyIDogd2hpdGU7IFxuXG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzowIDAgJGd1dHRlcjAgMCA7IFxuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDQwdncsIDE4MHB4KTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0taW1hZ2Utb3V0bGluZS1jb2xvdXIsIHRyYW5zcGFyZW50KTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0taW1hZ2Utb3V0bGluZS1vZmZzZXQsIDAuMWVtKTsgXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgJHRyYW5zaXRpb24sIG91dGxpbmUtb2Zmc2V0ICR0cmFuc2l0aW9uO1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICB9XG5cbiAgJjpob3ZlciB7IFxuICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOiAwLjNlbTtcbiAgICAucmVzdWx0LXRpdGxlIGEgeyBjb2xvcjokcmVkOyB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgJjo6YWZ0ZXIgeyBcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBpbnNldDowOyBcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OjE7IFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHlbZGF0YS10aGVtZT0nd2hpdGUnXSAmIHtcbiAgICAtLXJlc3VsdC1pdGVtLWJvcmRlci1ib3R0b20gOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIC0tZm9udC1jb2xvdXI6I3skYmx1ZX07IFxuICAgIC0taGVhZGluZy1jb2xvdXIgOiAjeyRibHVlfTsgXG4gICAgJjpob3ZlciB7IFxuICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6ICN7cmdiYSgkYmx1ZSwgMC4yKX07XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keSNtYXJrZXQtc2VjdG9ycyB7XG4gICAgJiB7XG4gICAgICAvLyBpc29sYXRpb246IGluaXRpYWw7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgICBjb250YWluZXItbmFtZSA6IG1hcmtldC1zZWN0b3I7XG4gICAgICAucmVzdWx0LWl0ZW0ge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICBhLmRldGFpbHM6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmhvdmVyIC5yZXN1bHQtaW1hZ2Uge1xuICAgICAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgLS1pbWFnZS1vdXRsaW5lLW9mZnNldCA6MCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLmRldGFpbHMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1kYXJrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjIwcHg7XG4gICAgICAgIHdpZHRoOnZhcigtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCwgY2FsYygyMDAlICsgI3skZ3V0dGVyfSArIDJweCkpO1xuXG4gICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiBzZXR1cFxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgJHRyYW5zaXRpb24sXG4gICAgICAgICAgZGlzcGxheSAkdHJhbnNpdGlvbiBhbGxvdy1kaXNjcmV0ZTtcbiAgICAgICAgLmRldGFpbHMtdGV4dCB7XG4gICAgICAgICAgcGFkZGluZzokZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWhlYWRpbmcge1xuICAgICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206MWVtO1xuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWltYWdlIHtcbiAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMzUlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206MDtcbiAgICAgICAgICByaWdodDowO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGV0YWlscyB7XG4gICAgICAgIEBjb250YWluZXIgbWFya2V0LXNlY3RvciAoIHdpZHRoIDwgNDIwcHgpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwcHg7XG4gICAgICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAmIC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYSAoIHdpZHRoID4gMjA1MHB4KSB7XG4gICAgICAgICAgd2lkdGg6MTAwJTsgXG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhcnRpY2xlLWdyaWQ6aGFzKC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkge1xuICAgICAgLnJlc3VsdC1pdGVtOm5vdCg6aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHsgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7fVxuICAgIH1cblxuICAgIEBjb250YWluZXIgbWFpbiAoIHdpZHRoIDwgNjYwcHgpIHtcbiAgICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gICAgICAgIC0tbWFya2V0LXNlY3Rvci1hcnRpY2xlLXdpZHRoIDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhcnRpY2xlLWdyaWQge1xuICAgICAgQGNvbnRhaW5lciBtYWluICg2NjBweCA8IHdpZHRoIDwgOTY0cHgpICB7XG4gICAgICAgIC5yZXN1bHQtaXRlbTpudGgtY2hpbGQoMm4pIC5kZXRhaWxzIHtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDowO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAY29udGFpbmVyIG1haW4gKCB3aWR0aCA+IDk2NHB4KSAge1xuICAgICAgICAucmVzdWx0LWl0ZW06bnRoLWNoaWxkKDNuKSAuZGV0YWlscyB7XG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmxvZygpIHtcbiAgLS1wYWRkaW5nICAgICAgICAgIDogNHJlbTtcbiAgLS1ib3JkZXItdGhpY2tuZXNzIDogMDtcbiAgLS1ib3JkZXItcmFkaXVzICAgIDogMDtcbiAgLy8gLS1iYWNrZ3JvdW5kLWNvbG91ciA6IHRyYW5zcGFyZW50O1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJzdWJ0aXRsZVwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJib2R5XCI7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHJnYmEod2hpdGUsIDEpIDQ1JSwgdHJhbnNwYXJlbnQgMTIwJSk7XG4gICAgfVxuICB9XG5cbiAgdGltZSB7IFxuICAgIGNvbG9yOiAkcmVkO1xuICB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1zdWJ0aXRsZSB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgfVxuXG4gIC5yZXN1bHQtdGl0bGUgeyAgICAgXG4gICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICB9XG5cbiAgLnJlc3VsdC1zdWJ0aXRsZSB7XG4gICAgLS1oZWFkaW5nLWNvbG91cjogI3skcmVkfTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGg0LCB0aW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICB0aW1lIHtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICB9XG4gIH1cblxuICAucmVzdWx0LWJvZHkgeyAtLWZvbnQtY29sb3VyOiAjeyRibGFja307IH1cblxuICAmLmZlYXR1cmVkIHtcbiAgICAtLXBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcblxuICAgIC5yZXN1bHQtdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oMjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ0ZFQVRVUkVEJztcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmVkLWJhZGdlKCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LXN1YnRpdGxlLCAucmVzdWx0LWJvZHkge1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBwYWdlKCkge1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICBcImltYWdlIHRpdGxlXCJcbiAgXCJpbWFnZSBib2R5XCJcbiAgXCJpbWFnZSBib2R5XCJcbiAgXCJpbWFnZSBib2R5XCI7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIHByb2R1Y3QoKSB7XG4gIC0tYmFkZ2Utc3BhY2luZyA6IDNyZW07XG5cbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1pbWFnZS13aWR0aCkgYXV0bztcblxuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwiaW1hZ2UgdGl0bGVcIlxuICAgIFwiaW1hZ2UgdGl0bGVcIlxuICAgIFwiaW1hZ2UgZGF0YVwiXG4gICAgXCJpbWFnZSBkYXRhXCI7XG5cbiAgLy8gLnJlc3VsdC10aXRsZSB7XG4gIC8vICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgLy8gfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtYm9keSB7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1iYWRnZS1zcGFjaW5nKSAqIDIpO1xuICB9XG5cbiAgLnByb2R1Y3QtZGF0YSB7XG4gICAgZ3JpZC1hcmVhOiBkYXRhO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ3JpZC1nYXA6IGNhbGMoJGdhcCAvIDIpICRnYXA7XG4gIH1cblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDQ1MCkge1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJpbWFnZSBcIlxuICAgIFwidGl0bGVcIlxuICAgIFwiZGF0YVwiO1xuXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcblxuICAgIC5wcm9kdWN0LWRhdGEge1xuICAgICAgLy8gbWFyZ2luLXRvcDogJGdhcC07XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG5cbiAgICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LWJvZHkgeyBwYWRkaW5nLXJpZ2h0OiAwIH1cbiAgICAvLyAucmVzdWx0LXRpdGxlIHsgYWxpZ24tc2VsZjogY2VudGVyIH1cbiAgfVxuXG5cbiAgJi5pbi1zdG9jazo6YmVmb3JlIHtcbiAgICAtLXBhZGRpbmcteSA6IDAuMmVtO1xuICAgIC0tcGFkZGluZy14IDogMTBlbTtcblxuICAgIGNvbnRlbnQ6ICdpbiBzdG9jayc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxZW0gKyB2YXIoLS1wYWRkaW5nLXkpKTtcbiAgICByaWdodDogY2FsYygtMSAqIHZhcigtLXBhZGRpbmcteCkpO1xuICAgIHBhZGRpbmc6IDAuNWVtIHZhcigtLXBhZGRpbmcteCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufSIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICcuLi9faGVscGVycy9taXNjLnNjc3MnIGFzICo7XG5cbkBtaXhpbiB0YWcoKSB7XG4gICZbZGlzYWJsZWRdIHsgQGluY2x1ZGUgZGlzYWJsZWQoKSB9XG4gICYuY2F0ZWdvcnkge1xuICAgIEBpbmNsdWRlIHRhZy1iYXNlKCk7XG4gICAgLS1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgIEBpbmNsdWRlIHRhZy13aXRoLXNlY29uZGFyeSgpO1xuICAgIC50YWctc2Vjb25kYXJ5OmhvdmVyIHsgQGluY2x1ZGUgc2Vjb25kYXJ5LWhvdmVyKCkgfVxuICB9XG5cbiAgJi5jaGVja2JveCB7XG4gICAgQGluY2x1ZGUgdGFnLWNoZWNrYm94KCk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy1iYXNlKCkge1xuICAtLWJvcmRlci1yYWRpdXMgICAgICAgOiAwcHg7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgICA6ICN7JHJlZH07XG4gIC0tYmctY29sb3VyICAgICAgICAgICA6IHdoaXRlO1xuICAtLXNlY29uZGFyeS13aWR0aCAgICAgOiAzY2g7XG4gIC0tc2Vjb25kYXJ5LXBhZGRpbmcteCA6IDNweDtcbiAgLS1ib3JkZXItY29sb3VyICAgICAgIDogdHJhbnNwYXJlbnQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG5cbiAgLnRhZy1sYWJlbCB7XG4gICAgcGFkZGluZzogM3B4ICRnYXAgM3B4ICRnYXA7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0YWctd2l0aC1zZWNvbmRhcnkoKSB7XG4gIC0tc3ltYm9sLWNvbG91ciA6ICN7JHJlZH07XG5cbiAgLnRhZy1zZWNvbmRhcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIHZhcigtLXNlY29uZGFyeS1wYWRkaW5nLXgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogM2NoO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBDaGVja2JveCB0YWdzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHRhZy1jaGVja2JveCgpIHtcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJiB+IGxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIHRhZy1iYXNlKCk7XG4gICAgICBAaW5jbHVkZSB0YWctd2l0aC1zZWNvbmRhcnkoKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC0tYm9yZGVyLWNvbG91cjogI3skcmVkfTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAgICAgLS1iZy1jb2xvdXI6ICN7JHJlZH07XG5cbiAgICAgIC50YWctc2Vjb25kYXJ5IHsgQGluY2x1ZGUgc2Vjb25kYXJ5LWhvdmVyKHJnYmEod2hpdGUsIDAuMykpIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gc2Vjb25kYXJ5LWhvdmVyKCRjb2xvdXIgOiAkcmVkKSB7XG4gIC0tc3ltYm9sLWNvbG91cjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG59IiwiQHVzZSAnbW9kdWxlcycgYXMgKjtcblxuLmNvbnRlbnQtYmxvY2suY2FsbFRvQWN0aW9uIHtcbiAgYmFja2dyb3VuZDogJHJldmVyc2UtZ3JhZGllbnQ7XG4gIHBhZGRpbmc6ICRnYXAyO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIFxuICAuY2FsbC10by1hY3Rpb24taGVhZGluZywgLmNhbGwtdG8tYWN0aW9uLXN1YmhlYWRpbmcge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY2FsbC10by1hY3Rpb24taGVhZGluZyB7XG4gICAgLS1oZWFkaW5nLWNvbG91cjogI3skd2hpdGV9O1xuICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgLy8gZm9udC1zaXplOiAkZm9udC1zaXplLWgzO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnYXAyO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIH1cbiAgLmNhbGwtdG8tYWN0aW9uLXN1YmhlYWRpbmcge1xuICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHJlZH07XG4gICAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIC8vIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oNDtcbiAgfVxuICAuY2FsbC10by1hY3Rpb24tYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMztcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXAyLTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiRnYXAyLTsgXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICB9XG5cbiAgLmltYWdlIHtcbiAgICBvcmRlcjotMTsgXG4gICAgd2lkdGg6IGNhbGMoMTAwJSArICRnYXA0KTtcbiAgICBhc3BlY3QtcmF0aW86IDE2IC8gNztcbiAgICBtYXgtaGVpZ2h0OjUwMHB4OyBcbiAgICBtYXJnaW46JGdhcDItICRnYXAyLSAkZ2FwMiAkZ2FwMi1cbiAgfVxuXG4gIEBhdC1yb290IHNpZGUtYmFyICYgLmNhbGwtdG8tYWN0aW9uLWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDowOyBcblxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS4gXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93IFxuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudCBcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuIFxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucywgXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd24gXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlIFxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLiBcbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LiBcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlICAgICAgICAgICAgIDogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyICAgICAgICAgICAgOiAjMjkyQjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTMgICAgICAgICAgICA6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQgICAgICAgICAgICA6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNSAgICAgICAgICAgIDogIzAwOTVGRjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyIFxuXG4kcmVkICAgICAgICAgICAgICA6ICNERjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlIFxuXG4kZ3JleSAgICAgICAgICAgICA6ICM5Njk2OTU7XG4kZ3JleTIgICAgICAgICAgICA6ICM2QTZBNkE7IC8vIEZvbnRcbiRncmV5MyAgICAgICAgICAgIDogI0Y0RjRGNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NCAgICAgICAgICAgIDogI2RjZGNkYztcbiRncmV5NSAgICAgICAgICAgIDogI0IxQjFCMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTYgICAgICAgICAgICA6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciAgXG4kZ3JleTcgICAgICAgICAgICA6ICNlOWU5ZTk7XG4kZ3JlZW4gICAgICAgICAgICA6ICM1MEJDMDg7XG4keWVsbG93ICAgICAgICAgICA6ICNGNkY0REI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzIgICAgICAgICAgOiAjRkNCMDAyO1xuJGJsYWNrICAgICAgICAgICAgOiAjMUUxQTFBO1xuJHdoaXRlICAgICAgICAgICAgOiAjRkZGRkZGO1xuXG4kb3JhbmdlICAgICAgICAgICA6ICNlZDYyMjQ7XG5cblxuJHRyYW5zcGFyZW50ICAgICAgOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuJG1hcmsgICAgICAgICAgICAgOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kZGVmYXVsdC1ncmFkaWVudCA6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsICRibHVlIDUlLCAkYmxhY2sgNjYlKTtcbiRyZXZlcnNlLWdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgIzEwMTI0ZCAwJSwgJGJsdWUgODAlKTtcbiRsaWdodC1ncmFkaWVudCAgIDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sICMxMDEyNGQgNTUlLCAjMTcyNTgyIDEwMCUpO1xuXG5cbi8vL1xuJHByaW1hcnk6ICRibHVlO1xuLy8vXG5cblxuXG5cbi8vLyBUaGVtZXMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR0aGVtZS1kZWZhdWx0LXBhZ2UtYmFja2dyb3VuZCAgICA6ICRkZWZhdWx0LWdyYWRpZW50O1xuJHRoZW1lLWRlZmF1bHQtY29udGVudC1iYWNrZ3JvdW5kIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQgICAgIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQtbW9iIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQtbW9iICAgICAgIDogJGJsdWU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtc3BhY2luZy1jb2xvdXIgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWRlZmF1bHQtZm9udCAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtaGVhZGluZyAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtYWNjZW50XHRcdFx0XHRcdCAgICA6ICRyZWQ7XG4kdGhlbWUtZGVmYXVsdC1sb2dvICAgICAgICAgICAgICAgOiAkd2hpdGU7XG5cbiR0aGVtZS13aGl0ZS1wYWdlLWJhY2tncm91bmQgICAgICA6ICRsaWdodC1ncmFkaWVudDtcbiR0aGVtZS13aGl0ZS1jb250ZW50LWJhY2tncm91bmQgICA6ICNmOGY4Zjg7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQgICAgICAgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQtbW9iICAgOiAkYmx1ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udCAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udC1tb2IgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtc3BhY2luZy1jb2xvdXIgICA6IHJnYmEoJHdoaXRlLCAwLjMpO1xuJHRoZW1lLXdoaXRlLWZvbnQgICAgICAgICAgICAgICAgIDogJGJsYWNrO1xuJHRoZW1lLXdoaXRlLWhlYWRpbmcgICAgICAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtd2hpdGUtYWNjZW50XHRcdFx0XHRcdCAgICAgIDogJHRoZW1lLWRlZmF1bHQtYWNjZW50O1xuJHRoZW1lLXdoaXRlLWxvZ28gICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuXG4kdGhlbWUtYmxhY2stcGFnZS1iYWNrZ3JvdW5kICAgICAgOiAkZGVmYXVsdC1ncmFkaWVudDtcbiR0aGVtZS1ibGFjay1jb250ZW50LWJhY2tncm91bmQgICA6ICRibGFjaztcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZCAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZC1tb2IgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtZm9udCAgICAgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLWJsYWNrLW5hdi1mb250LW1vYiAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtYmxhY2stbmF2LXNwYWNpbmctY29sb3VyICAgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWJsYWNrLWZvbnQgICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWhlYWRpbmcgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWFjY2VudFx0XHRcdFx0XHQgICAgICA6ICR0aGVtZS1kZWZhdWx0LWFjY2VudDtcbiR0aGVtZS1ibGFjay1sb2dvICAgICAgICAgICAgICAgICA6ICRibHVlO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLiBcbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZSd3aXRoICgkYmx1ZSA6ICRibHVlLFxuXHQkcmVkIDogJHJlZCxcblx0JGdyZXkgOiAkZ3JleSxcblx0JHllbGxvdyA6ICR5ZWxsb3csXG5cdCRncmVlbiA6ICRncmVlbixcblx0JGJsYWNrIDogJGJsYWNrKTtcblxuJGNvbXBvbmVudC10aGVtZXMgOiAoXCJyZWRcIjogJHJlZCwgXCJibHVlXCI6ICRibHVlLCBcImdyZXlcIjogJGdyZXkzLCBcIndoaXRlXCIgOiAkd2hpdGUpOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZihzYXNzKCRtaW4gPT0gMCk6IDBweDsgZWxzZTogJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY29udGVudC1ibG9jay5jYWxsVG9BY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMTAxMjRkIDAlLCAjMTMxZjZiIDgwJSk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmNvbnRlbnQtYmxvY2suY2FsbFRvQWN0aW9uIC5jYWxsLXRvLWFjdGlvbi1oZWFkaW5nLCAuY29udGVudC1ibG9jay5jYWxsVG9BY3Rpb24gLmNhbGwtdG8tYWN0aW9uLXN1YmhlYWRpbmcge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmNvbnRlbnQtYmxvY2suY2FsbFRvQWN0aW9uIC5jYWxsLXRvLWFjdGlvbi1oZWFkaW5nIHtcbiAgLS1oZWFkaW5nLWNvbG91cjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmNvbnRlbnQtYmxvY2suY2FsbFRvQWN0aW9uIC5jYWxsLXRvLWFjdGlvbi1zdWJoZWFkaW5nIHtcbiAgLS1oZWFkaW5nLWNvbG91cjogI0RGMzAzNTtcbiAgZm9udC1zaXplOiAwLjkzNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbi5jb250ZW50LWJsb2NrLmNhbGxUb0FjdGlvbiAuY2FsbC10by1hY3Rpb24tYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDMpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIC0yKTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IGNhbGModmFyKC0tZ2FwKSAqIC0yKTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuLmNvbnRlbnQtYmxvY2suY2FsbFRvQWN0aW9uIC5pbWFnZSB7XG4gIG9yZGVyOiAtMTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkgKiA0KTtcbiAgYXNwZWN0LXJhdGlvOiAxNi83O1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWdhcCkgKiAtMikgY2FsYyh2YXIoLS1nYXApICogLTIpIGNhbGModmFyKC0tZ2FwKSAqIDIpIGNhbGModmFyKC0tZ2FwKSAqIC0yKTtcbn1cbnNpZGUtYmFyIC5jb250ZW50LWJsb2NrLmNhbGxUb0FjdGlvbiAuY2FsbC10by1hY3Rpb24tYnV0dG9uIHtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoMSwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDIsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGgzLCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoNCwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDUsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGg2LCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGgxLCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDMsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGg0LCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDYsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDEsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDQsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRjcm9wLCBcInRvcFwiKSk6IHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpOyBlbHNlOiAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRjcm9wLCBcImJvdHRvbVwiKSk6IHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpOyBlbHNlOiAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiJdfQ== */