body:not([data-components*=breadcrumbs-bar]) {
  --row-main: 3;
}

body.markets {
  --row-navigation: 1 !important;
  --row-breadcrumbs: 3 !important;
  --row-anchors: 4 !important;
  --row-header: 1 !important;
}
body.markets header {
  grid-row: 2;
  padding-top: var(--spacer0);
  padding-bottom: var(--spacer1);
  display: flex;
  position: relative;
  flex-direction: column;
  place-items: center;
  place-content: center;
  text-shadow: 0px 0px 30px black, 0px 0px 5px rgba(0, 0, 0, 0.6);
  --translate-y: -20px;
}
body.markets header .heading {
  --heading-colour:white;
  text-align: center;
  font-size: 3.8125em;
  font-size: clamp(2.5em, 5vw, 3.8125em);
  line-height: 1.2;
}
body.markets header .sub-heading {
  margin-top: var(--gutter1);
}
body.markets header .heading, body.markets header .sub-heading {
  opacity: 0;
  transform: translateY(var(--translate-y));
}
body.markets header.in-view .heading, body.markets header.in-view .sub-heading {
  --translate-y: 0;
  opacity: 1;
  transition: opacity 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.6s, transform 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.6s;
}
body.markets header.in-view .sub-heading {
  transition-delay: 0.4s, 0.4s;
}
body.markets navigation-bar {
  background: initial;
}
body.markets navigation-bar::before {
  display: none;
}
body.markets > gallery-container {
  z-index: -1;
  grid-row: 1/span 2;
  grid-column: 1/-1;
  --background-theme-one: #1E1A1A;
  --background-theme-two: #1E1A1A;
}
body.markets > gallery-container .slide.image {
  filter: saturate(0.4);
}
body.markets > gallery-container::after {
  content: "";
  position: absolute;
  pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  background: linear-gradient(to bottom, var(--background-theme-one), var(--background-theme-two));
}
body.markets #breadcrumbs-bar::before {
  border-top: none;
}
body.markets background-image {
  --row-background: 1 / span 2;
}
body.markets main > .header {
  box-shadow: initial;
}
@media (min-width: 1401px) {
  body.markets header {
    padding-top: var(--spacer1);
    padding-bottom: var(--spacer2);
  }
}
@media (min-width: 981px) {
  body.markets {
    --row-sidebar: 5 / span 2 !important;
  }
  body.markets.powder-metals {
    --row-sidebar: 4 / span 2 !important;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9lbGVtZW50cy9jb21wb25lbnQuc2NzcyIsInBhZ2VzL21hcmtldHMuc2NzcyIsInBhZ2VzL21hcmtldHMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL191bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19oZWFkaW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJlYWsuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQlc7RUM1QlQsYUFBQTtBQ0RGOztBREtBO0VBRUUsOEJBQUE7RUFDQSwrQkFBQTtFQUNBLDJCQUFBO0VBQ0EsMEJBQUE7QUNIRjtBRE1FO0VBQ0UsV0FBQTtFQUNBLDJCRXVGTztFRnRGUCw4QkV1Rk87RUZ0RlAsYUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsK0RBQUE7RUFjQSxvQkFBQTtBQ2pCSjtBREtJO0VBQ0Usc0JBQUE7RUFDQSxrQkFBQTtFR2dHSixtQkFBQTtFQUdFLHNDQUFBO0VBUUUsZ0JBNUVjO0FGL0JwQjtBRElJO0VBQ0UsMEJFbUdLO0FEckdYO0FEU0k7RUFDRSxVQUFBO0VBQ0EseUNBQUE7QUNQTjtBRFdNO0VBQ0UsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esd0hBQUE7QUNUUjtBRFdNO0VBQWUsNEJBQUE7QUNSckI7QURjRTtFQUNFLG1CQUFBO0FDWko7QURhRTtFQUFZLGFBQUE7QUNWZDtBRGFFO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFHQSwrQkFBQTtFQUNBLCtCQUFBO0FDYko7QUR1Qk07RUFDRSxxQkFBQTtBQ3JCUjtBRHlCSTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnR0FBQTtBQ3ZCTjtBRDRCRTtFQUEyQixnQkFBQTtBQ3pCN0I7QUQyQkU7RUFBbUIsNEJBQUE7QUN4QnJCO0FEMkJJO0VBQ0UsbUJBQUE7QUN6Qk47QUcxRUU7RUp3R0U7SUFDRSwyQkVMSztJRk1MLDhCRUxLO0VEdEJUO0FBQ0Y7QUdoRkU7RUpFRjtJQTZHSSxvQ0FBQTtFQzNCRjtFRDRCRTtJQUNFLG9DQUFBO0VDMUJKO0FBQ0YiLCJmaWxlIjoicGFnZXMvbWFya2V0cy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwic2FzczpsaXN0XCI7XG5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykgeyBvcGFjaXR5OjAuNTsgfVxuLy8vIFBhc3MgaW4gbXVsdHVpcGxlIGNvbXBlbmVudCBuYW1lcyBpZiB5b3Ugd2FudCB0byBjaGVjayB0aGV5IGFsbCBleGlzdFxuXG5AbWl4aW4gZXhpc3RzKCRuYW1lcy4uLikge1xuXG4gICRzZWxlY3RvciA6ICdib2R5JztcbiAgJHBhcmVudCA6aWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgICRzZWxlY3RvciA6ICRzZWxlY3RvciArICdbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdJztcbiAgfVxuXG4gIEBhdC1yb290ICN7JHNlbGVjdG9yfSAjeyRwYXJlbnR9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7IG9wYWNpdHk6MC41OyB9XG4vLy8gUGFzcyBpbiBtdWx0dWlwbGUgY29tcGVuZW50IG5hbWVzIGlmIHlvdSB3YW50IHRvIGNoZWNrIG5vbmUgZXhpc3RcblxuQG1peGluIGRvZXNudC1leGlzdHMoJG5hbWVzLi4uKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2JvZHknO1xuICAkcGFyZW50IDppZihsaXN0Lm50aChsaXN0Lm50aCgmLCAxKSwgMSkgPT0gJzpyb290JywgJycsICYpO1xuICBcbiAgQGVhY2ggJG5hbWUgaW4gJG5hbWVzIHtcbiAgICAkc2VsZWN0b3IgOiAkc2VsZWN0b3IgKyAnOm5vdChbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdKSc7XG4gIH1cblxuICBAYXQtcm9vdCAjeyRzZWxlY3Rvcn0gI3skcGFyZW50fSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYnJlYWRjcnVtYnMtYmFyJykge1xuICAtLXJvdy1tYWluIDogMztcbn1cblxuXG5ib2R5Lm1hcmtldHMge1xuXG4gIC0tcm93LW5hdmlnYXRpb24gIDogMSAhaW1wb3J0YW50O1xuICAtLXJvdy1icmVhZGNydW1icyA6IDMgIWltcG9ydGFudDtcbiAgLS1yb3ctYW5jaG9ycyAgICAgOiA0ICFpbXBvcnRhbnQ7XG4gIC0tcm93LWhlYWRlciAgICAgIDogMSAhaW1wb3J0YW50O1xuICBcblxuICBoZWFkZXIge1xuICAgIGdyaWQtcm93OjI7IFxuICAgIHBhZGRpbmctdG9wOiRzcGFjZXIwO1xuICAgIHBhZGRpbmctYm90dG9tOiRzcGFjZXI7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDMwcHggYmxhY2ssIDBweCAwcHggNXB4IHJnYmEoYmxhY2ssIDAuNik7XG5cbiAgICAuaGVhZGluZyB7XG4gICAgICAtLWhlYWRpbmctY29sb3VyOndoaXRlOyBcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDE7XG4gICAgfVxuXG4gICAgLnN1Yi1oZWFkaW5nIHtcbiAgICAgIG1hcmdpbi10b3A6JGd1dHRlcjtcbiAgICB9XG5cbiAgICAvLyBUcmFuc2l0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC0tdHJhbnNsYXRlLXkgOiAtMjBweDsgXG5cbiAgICAuaGVhZGluZywgLnN1Yi1oZWFkaW5nIHtcbiAgICAgIG9wYWNpdHkgOiAwO1xuICAgICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGUteSkpO1xuICAgIH1cblxuICAgICYuaW4tdmlldyB7XG4gICAgICAuaGVhZGluZywgLnN1Yi1oZWFkaW5nIHtcbiAgICAgICAgLS10cmFuc2xhdGUteSA6IDA7XG4gICAgICAgIG9wYWNpdHkgOiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEuMnMgJGVhc2Utb3V0LXF1YXJ0IDAuNnMsIHRyYW5zZm9ybSAxLjJzICRlYXNlLW91dC1xdWFydCAwLjZzO1xuICAgICAgfVxuICAgICAgLnN1Yi1oZWFkaW5nIHsgdHJhbnNpdGlvbi1kZWxheTogMC40cywgMC40czsgfVxuICAgIH1cblxuXG4gIH1cblxuICBuYXZpZ2F0aW9uLWJhciB7XG4gICAgYmFja2dyb3VuZDppbml0aWFsOyBcblx0XHQmOjpiZWZvcmUgeyBkaXNwbGF5Om5vbmU7IH1cbiAgfVxuXG4gID4gZ2FsbGVyeS1jb250YWluZXIge1xuICAgIHotaW5kZXggICAgIDogLTE7ICAgXG4gICAgZ3JpZC1yb3cgICAgOiAxIC8gc3BhbiAyO1xuICAgIGdyaWQtY29sdW1uIDogMSAvIC0xO1xuICAgIC8vIG1heC1oZWlnaHQ6dmFyKC0taGVhZGVyLW1heC1oZWlnaHQpO1xuXG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSA6ICN7JGJsYWNrfTtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skYmxhY2t9O1xuXG4gICAgLy8gJjphZnRlciB7XG4gICAgLy8gICBiYWNrZHJvcC1maWx0ZXI6Ymx1cig1cHgpICFpbXBvcnRhbnQ7XG4gICAgLy8gICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoYmxhY2sgMCUsdHJhbnNwYXJlbnQgMTUwJSkgIWltcG9ydGFudDtcbiAgICAvLyAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAvLyAgIGJhY2tncm91bmQ6IHJnYmEoYmxhY2ssIDAuMykgIWltcG9ydGFudDtcbiAgICAvLyB9XG5cbiAgICAuc2xpZGUge1xuICAgICAgJi5pbWFnZSB7XG4gICAgICAgIGZpbHRlcjpzYXR1cmF0ZSgwLjQpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlOyBcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdG9wOjA7IFxuICAgICAgbGVmdDowOyBcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgICBoZWlnaHQ6MTAwJTsgXG4gICAgICBvcGFjaXR5OjAuNjtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pKTtcbiAgICB9XG4gIH1cblxuXG4gICNicmVhZGNydW1icy1iYXI6OmJlZm9yZSB7IGJvcmRlci10b3A6bm9uZTsgfSBcblxuICBiYWNrZ3JvdW5kLWltYWdlIHsgLS1yb3ctYmFja2dyb3VuZCA6IDEgLyBzcGFuIDI7IH1cbiAgXG4gIG1haW4ge1xuICAgID4gLmhlYWRlciB7XG4gICAgICBib3gtc2hhZG93OmluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KCdsYXJnZScpIHtcbiAgICBoZWFkZXIge1xuICAgICAgcGFkZGluZy10b3A6JHNwYWNlcjtcbiAgICAgIHBhZGRpbmctYm90dG9tOiRzcGFjZXIyO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwtbWVkaXVtJykgeyBcbiAgICAtLXJvdy1zaWRlYmFyIDogNSAvIHNwYW4gMiAhaW1wb3J0YW50O1xuICAgICYucG93ZGVyLW1ldGFscyB7XG4gICAgICAtLXJvdy1zaWRlYmFyIDogNCAvIHNwYW4gMiAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBAaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYmFja2dyb3VuZC1pbWFnZScpIHtcbi8vICAgaGVhZGVyLm1hcmtldHMgeyBcbi8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRibHVlOyBcbi8vICAgICB0ZXh0LXNoYWRvdzogaW5pdGlhbDtcbi8vICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWJsb3dvdXQ7XG4vLyAgIH1cbi8vIH0iLCJib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB7XG4gIC0tcm93LW1haW46IDM7XG59XG5cbmJvZHkubWFya2V0cyB7XG4gIC0tcm93LW5hdmlnYXRpb246IDEgIWltcG9ydGFudDtcbiAgLS1yb3ctYnJlYWRjcnVtYnM6IDMgIWltcG9ydGFudDtcbiAgLS1yb3ctYW5jaG9yczogNCAhaW1wb3J0YW50O1xuICAtLXJvdy1oZWFkZXI6IDEgIWltcG9ydGFudDtcbn1cbmJvZHkubWFya2V0cyBoZWFkZXIge1xuICBncmlkLXJvdzogMjtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjApO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogMHB4IDBweCAzMHB4IGJsYWNrLCAwcHggMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIC0tdHJhbnNsYXRlLXk6IC0yMHB4O1xufVxuYm9keS5tYXJrZXRzIGhlYWRlciAuaGVhZGluZyB7XG4gIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAzLjgxMjVlbTtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjVlbSwgNXZ3LCAzLjgxMjVlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5ib2R5Lm1hcmtldHMgaGVhZGVyIC5zdWItaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuYm9keS5tYXJrZXRzIGhlYWRlciAuaGVhZGluZywgYm9keS5tYXJrZXRzIGhlYWRlciAuc3ViLWhlYWRpbmcge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tdHJhbnNsYXRlLXkpKTtcbn1cbmJvZHkubWFya2V0cyBoZWFkZXIuaW4tdmlldyAuaGVhZGluZywgYm9keS5tYXJrZXRzIGhlYWRlci5pbi12aWV3IC5zdWItaGVhZGluZyB7XG4gIC0tdHJhbnNsYXRlLXk6IDA7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMS4ycyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIDAuNnMsIHRyYW5zZm9ybSAxLjJzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgMC42cztcbn1cbmJvZHkubWFya2V0cyBoZWFkZXIuaW4tdmlldyAuc3ViLWhlYWRpbmcge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjRzLCAwLjRzO1xufVxuYm9keS5tYXJrZXRzIG5hdmlnYXRpb24tYmFyIHtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbn1cbmJvZHkubWFya2V0cyBuYXZpZ2F0aW9uLWJhcjo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmJvZHkubWFya2V0cyA+IGdhbGxlcnktY29udGFpbmVyIHtcbiAgei1pbmRleDogLTE7XG4gIGdyaWQtcm93OiAxL3NwYW4gMjtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxRTFBMUE7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICMxRTFBMUE7XG59XG5ib2R5Lm1hcmtldHMgPiBnYWxsZXJ5LWNvbnRhaW5lciAuc2xpZGUuaW1hZ2Uge1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuNCk7XG59XG5ib2R5Lm1hcmtldHMgPiBnYWxsZXJ5LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bykpO1xufVxuYm9keS5tYXJrZXRzICNicmVhZGNydW1icy1iYXI6OmJlZm9yZSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5ib2R5Lm1hcmtldHMgYmFja2dyb3VuZC1pbWFnZSB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDI7XG59XG5ib2R5Lm1hcmtldHMgbWFpbiA+IC5oZWFkZXIge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDFweCkge1xuICBib2R5Lm1hcmtldHMgaGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjIpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keS5tYXJrZXRzIHtcbiAgICAtLXJvdy1zaWRlYmFyOiA1IC8gc3BhbiAyICFpbXBvcnRhbnQ7XG4gIH1cbiAgYm9keS5tYXJrZXRzLnBvd2Rlci1tZXRhbHMge1xuICAgIC0tcm93LXNpZGViYXI6IDQgLyBzcGFuIDIgIWltcG9ydGFudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIZWFkaW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuL2NvbGxlY3Rpb25zL2ZvbnQnO1xuQHVzZSAnLi9tb2R1bGVzL3VuaXQnO1xuXG4vLyBEZWZhdWx0IEhlYWRpbmcgVmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEgOiAoXG4gICdmb250LXNpemUnICAgOiAzLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjFcbikgIWRlZmF1bHQ7XG5cbiRoMiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuNXJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuM1xuKSAhZGVmYXVsdDtcblxuJGgzIDogKFxuICAnZm9udC1zaXplJyAgIDogMi4ycmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDQgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuOHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg2IDogKFxuICAnZm9udC1zaXplJyAgIDogMS42cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kYmFzZSA6IDYyLjUgIWRlZmF1bHQ7XG4kc2NhbGVyIDogMS41dncgIWRlZmF1bHQ7XG4kZW5hYmxlLWNyb3BwaW5nIDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhbGxiYWNrIExpbmUtaGVpZ2h0cyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgxLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgxIDogbWFwLnNldCgkaDEsICdsaW5lLWhlaWdodCcsIDEuMSk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgyLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgyIDogbWFwLnNldCgkaDIsICdsaW5lLWhlaWdodCcsIDEuMyk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgzLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgzIDogbWFwLnNldCgkaDMsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg0LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg0IDogbWFwLnNldCgkaDQsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg1LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg1IDogbWFwLnNldCgkaDUsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg2LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg2IDogbWFwLnNldCgkaDYsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cblxuLy8gRGVmaW5lIHRoZSB2YXJpYWJsZXMgc28gdGhleSBhcmUgc3RpbGwgYWNjZXNpYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMSwgJ2ZvbnQtc2l6ZScpO1xuJGgxLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDEtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDEtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgxLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDIsICdmb250LXNpemUnKTtcbiRoMi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDIsICdsaW5lLWhlaWdodCcpO1xuJGgyLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDIsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgyLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDIsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDMtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgzLCAnZm9udC1zaXplJyk7XG4kaDMtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgzLCAnbGluZS1oZWlnaHQnKTtcbiRoMy1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgzLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMy1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDMsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg0LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNCwgJ2ZvbnQtc2l6ZScpO1xuJGg0LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNCwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDQtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNCwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDQtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg0LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDUsICdmb250LXNpemUnKTtcbiRoNS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDUsICdsaW5lLWhlaWdodCcpO1xuJGg1LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDUsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg1LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDUsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDYtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg2LCAnZm9udC1zaXplJyk7XG4kaDYtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg2LCAnbGluZS1oZWlnaHQnKTtcbiRoNi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg2LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDYsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuLy8gSGFuZGxlcyBDcm9wcyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJF9oMS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDItY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDUtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuXG4kX2gxLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDMtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDYtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG5cblxuLy8gTWl4aW5zIGZvciBlYWNoIGhlYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIF9zZXQtY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wKSB7XG5cbiAgQGlmIChtZXRhLnR5cGUtb2YoJGNyb3ApID09ICdtYXAnKSB7XG5cbiAgICAkZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRmb250LXNpemUpICogMTA7XG4gICAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICAgICR0b3AgICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRjcm9wLCBcInRvcFwiKSwgdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcInRvcFwiKSksIDApO1xuICAgICRib3R0b20gICAgICA6IGlmKG1hcC5oYXMta2V5KCRjcm9wLCBcImJvdHRvbVwiKSwgdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcImJvdHRvbVwiKSksIDApO1xuXG4gICAgQGluY2x1ZGUgZm9udC5jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHRvcCwgJGJvdHRvbSk7XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMS1mb250LXNpemUtbWluIGFuZCAkaDEtZm9udC1zaXplLW1pbiA8ICRoMS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZS1taW4pfSwgI3skaDEtc2NhbGVyfSwgI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgxLWZvbnQtc2l6ZSwgJGgxLWxpbmUtaGVpZ2h0LCAkX2gxLWNyb3AtdG9wLCAkX2gxLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDEtbGluZS1oZWlnaHQ7IFxuICAgIH1cblxuICB9XG5cbn1cblxuQG1peGluIGgyKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgyLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgyLWZvbnQtc2l6ZS1taW4gYW5kICRoMi1mb250LXNpemUtbWluIDwgJGgyLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplLW1pbil9LCAjeyRoMi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDItZm9udC1zaXplLCAkaDItbGluZS1oZWlnaHQsICRfaDItY3JvcC10b3AsICRfaDItY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGgzKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgzLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgzLWZvbnQtc2l6ZS1taW4gYW5kICRoMy1mb250LXNpemUtbWluIDwgJGgzLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplLW1pbil9LCAjeyRoMy1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDMtZm9udC1zaXplLCAkaDMtbGluZS1oZWlnaHQsICRfaDMtY3JvcC10b3AsICRfaDMtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMy1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg0KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg0LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg0LWZvbnQtc2l6ZS1taW4gYW5kICRoNC1mb250LXNpemUtbWluIDwgJGg0LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplLW1pbil9LCAjeyRoNC1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDQtZm9udC1zaXplLCAkaDQtbGluZS1oZWlnaHQsICRfaDQtY3JvcC10b3AsICRfaDQtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNC1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg1KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg1LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg1LWZvbnQtc2l6ZS1taW4gYW5kICRoNS1mb250LXNpemUtbWluIDwgJGg1LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplLW1pbil9LCAjeyRoNS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDUtZm9udC1zaXplLCAkaDUtbGluZS1oZWlnaHQsICRfaDUtY3JvcC10b3AsICRfaDUtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNS1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg2KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg2LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg2LWZvbnQtc2l6ZS1taW4gYW5kICRoNi1mb250LXNpemUtbWluIDwgJGg2LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplLW1pbil9LCAjeyRoNi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcDIoJGg2LWZvbnQtc2l6ZSwgJGg2LWxpbmUtaGVpZ2h0LCAkX2g2LWNyb3AtdG9wLCAkX2g2LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDYtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVhayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JGJyZWFrcG9pbnQgKyAxfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDojeyRicmVha3BvaW50fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skbWlufSkgYW5kIChtYXgtd2lkdGg6I3skbWF4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59Il19 */