/* css/app.css */
@font-face {
  font-family: "Maple";
  font-style: monospace;
  font-weight: 400;
  src: url(/fonts/maple/MapleMono-Regular-2e40aae10d4f732d54df4b3624c50891.otf?vsn=d) format("opentype");
  font-display: swap;
}
@font-face {
  font-family: "Maple";
  font-style: italic;
  font-weight: 400;
  src: url(/fonts/maple/MapleMono-Italic-1c215ae8c99f377f0d2bf43620a5cc11.otf?vsn=d) format("opentype");
  font-display: swap;
}
:root {
  --main-content: 680px;
  --margin-sm: 1rem;
  --bg-primary: #fbfefe;
  --bg-secondary: #f0f0f0;
  --font-primary: #231f1f;
  --highlight: #8dffb3;
  --accent: #8250df;
  --accent-light: #c6a8ff;
  --callout: #cf222e;
  --background-z: -100;
  --tablet: 768px;
  --header-padding: 0.6rem 0;
}
header {
  padding: var(--header-padding) a { font-family: "Maple"; font-style: italic; font-weight: bold; &:hover { color: var(--accent); } };
}
body {
  margin: 0 auto;
  padding: var(--gutter);
  background-color: var(--bg-primary);
  font-family: "Noto Sans", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "width" 100;
  color: var(--font-primary) z-index: var(--background-z);
  --dot: rgba(0, 0, 0, 0.05);
  background-image: radial-gradient(var(--dot) 10%, transparent 11%), radial-gradient(var(--dot) 10%, transparent 11%);
  background-size: 10px 10px;
  background-position: 0 0, 30px 30px;
  background-repeat: repeat;
}
.layout {
  margin: 0 auto;
  max-width: var(--main-content);
  &:has(.presentation-slides) {
    max-width: 100vw;
    padding-inline: 32px;
  }
}
h1,
h2,
h3,
h4,
h5,
h6,
blockquote {
  text-wrap: balance;
}
.presentation-slides {
  display: none;
}
.slides-mobile-warning {
  display: block;
  display: grid;
  height: 100%;
  place-content: center;
  font-size: 1.6rem;
}
@media only screen {
  :root {
    --gutter: 0.5rem 1rem;
    --font-text: 1rem;
    --font-code: 0.80rem;
    --text-line-height: 1.5;
  }
  p {
    text-align: justify;
  }
}
@media only screen and (min-width: 64.063em) {
  :root {
    --gutter: 1rem 2rem;
    --font-text: 1.2rem;
    --font-code: 1rem;
    --text-line-height: 1.45;
    --header-padding: 1rem 0;
  }
  .presentation-slides {
    display: block;
  }
  .slides-mobile-warning {
    display: none;
  }
}
main:has(.slide) {
  height: calc(100vh - 140px);
  article { height: 96% };
}
.round {
  border-radius: 100%;
}
:root:has(.slide) {
  font-size: 20px;
  .slide:has(.busy) {
    --font-code: 1rem;
  }
  .slide:has(.relaxed) {
    --font-code: 2rem;
  }
}
article.markdown .slide {
  --font-text: 1.4rem;
  --font-code: 1.4rem;
  display: none;
  li + li { margin-top: 0.6rem; } &[data-active] { display: grid; place-content: center; } min-height: 100%;
  > h1 {
    margin: 0 auto;
    font-size: 10rem;
    text-align: center;
    font-family: "Maple";
    background: linear-gradient(90deg, var(--accent), var(--highlight), var(--callout));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradient 15s ease infinite;
    background-size: 500% auto;
  }
  h2 { font-size: 2rem; };
}
@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
article.markdown,
main {
  position: relative;
  details > *:not(:is(summary)) { margin-inline: 1rem; } details { padding: 0.6rem; background-color: var(--bg-secondary) } &::before { position: absolute; width: 100%; height: 100%; content: ""; z-index: var(--background-z); background-color: var(--bg-primary); } p, li { line-height: var(--text-line-height); font-size: var(--font-text); } ul { padding-left: 1rem; } ol { padding-inline-start: 1.20rem } p { margin: 0; & + &, & + details { margin-top: 1rem; } } p:has(+ ol) { margin-bottom: 0.8rem; + ol { margin-top: 0; } } p:has(+ ul) { margin-bottom: 0.2rem; } pre { overflow-x: scroll; padding: var(--margin-sm); } pre, pre code { font-size: var(--font-code); } code { font-family: "Maple"; } u { --rotate: 2deg; --skew: -25deg; --bottom: -0.5px; --left: 0px; position: relative; text-decoration: none; font-style: italic; font-family: Maple; } *:nth-child(2) u { --bottom: 1px; --rotate: -8deg; --skew: 36deg; } *:nth-child(6) u { --left: -5px; --bottom: 5px; --skew: 40deg; --rotate: 12deg; } :not(h2) > u::before { position: absolute; content: ""; background-color: var(--highlight); width: 100%; height: 0.45rem; bottom: var(--bottom); z-index: -1; transform: skew(var(--skew)) rotate(var(--rotate)); } code .ahl-comment { font-style: italic; } code:not(pre > &) { position: relative; &::before { --bleed: 0.2rem; position: absolute; content: ""; font-size: 0.75rem; border-radius: 5%; z-index: -1; background-color: var(--bg-secondary); width: calc(100% + var(--bleed)); height: calc(100% + var(--bleed)); top: calc((var(--bleed) / 2) * -1); left: calc((var(--bleed) / 2) * -1); } } input { font-size: 1rem; padding: 0.3rem 0.8rem; border-radius: 5px; border: 1px solid black; * + & { margin-top: 0.4rem; } } button { background-color: var(--accent-light); font-style: italic; font-family: Maple; border: 1px solid black; border-radius: 5px; padding: 0.3em 0.8em; &:hover { cursor: pointer; } };
}
header a {
  text-decoration: none;
}
header a,
main a {
  color: unset;
}
main a {
  text-decoration: underline !important;
  text-decoration-thickness: .1rem !important;
  text-underline-offset: .1rem;
  text-decoration-color: var(--accent) !important;
  transition: color .2s, text-decoration-color .5s;
  &:hover {
    text-decoration-color: var(--callout) !important;
  }
}
a:not([class]),
.markdown u {
  text-decoration-thickness: max(0.08em, 1px);
  text-underline-offset: 0.12rem;
}
.split {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1rem;
  column-gap: 1rem;
  align-items: center;
  justify-content: space-between;
  &[data-evenly] {
    justify-content: space-evenly;
  }
  &.wide {
    column-gap: 4rem;
  }
  & + & {
    margin-top: 1rem;
  }
}
.demo {
  padding: 1rem 1.2rem;
  border: 1.5px solid var(--font-primary);
  border-radius: 5px;
  .title {
    font-weight: bold;
  }
}
.spacer {
  padding: 0.8rem;
}
main {
  h1 { font-size: 2rem; } h2 { font-size: 1.6rem; } h3 { font-size: 1.4rem; } h4 { font-size: 1.2rem; };
}
.mermaid {
  &:not(:has(svg)) {
    display: none;
  }
  [class^=messageLine][data-active] {
    stroke-width: 2.6 !important;
    stroke: var(--accent) !important;
  }
  &:has([data-active]) [class^=messageLine]:not([data-active]) {
    stroke: #999 !important;
  }
  &:not(:has([data-active])) g:last-of-type ~ *,
  [data-active] ~ * {
    display: none !important;
  }
}
.flash {
  z-index: 999;
  position: fixed;
  top: 20px;
  right: 20px;
  border-radius: 8px;
  min-width: 10vw;
  padding: 16px;
  background-color: var(--callout);
}
[data-line] {
  transition: background-color 0.3s;
  border-radius: 12px;
  padding: 2px;
  padding-right: 4px;
  &[data-active] {
    background-color: #f1ebff;
  }
}
code:has([data-line][data-active]) [data-line]:not([data-active]) {
  opacity: 60%;
}
.tabs {
  border: 1px solid black;
  padding: 22px;
  border-radius: 12px;
  width: 20vw;
  max-width: 290px;
  .tab {
    font-size: 1.2em;
    &:not([data-active]) {
      background-color: var(--bg-secondary);
    }
    &:first-child {
      border-radius: 12px 0 0 12px;
    }
    &:last-child {
      border-radius: 0 12px 12px 0;
    }
  }
  .group {
    display: flex;
    flex-direction: row;
    border-radius: 20px;
    place-content: center;
  }
  .panel {
    display: none;
    &[data-active] {
      padding-top: 12px;
      display: block;
    }
  }
}
.slide:has(.codeblock code[data-active]) .codeblock:not(:has(code[data-active])) {
  opacity: 55%;
}
.slide pre:has(code[data-active]):not(:has(svg)) {
  position: relative;
  &::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 10px 10px;
    border-color: transparent transparent var(--accent) transparent;
  }
  code { outline: none; };
}
.slide .mermaid svg {
  max-height: 75vh;
}
.slide .mermaid rect.note {
  fill: var(--highlight) !important;
  stroke: none !important;
}
.language-css {
  span[data-highlight="punctuation.bracket"] { color: #997 !important; };
}
article.markdown .slide .takeaway {
  max-width: 80vw;
  top: -6rem;
  :has(li.active) li:not(.active) {
    opacity: 60%;
  }
  :has(li.active) li.active ~ li:not(.active) {
    display: none;
  }
  ol { height: 376px; } li + li { margin-top: 1.6rem; } li.active { position: relative; font-style: bold; } li.active:nth-child(3)::before { content: "\1f35d" !important; } li.active::before { content: "\1f449"; position: absolute; margin-right: 1rem; font-size: 3rem; left: -6rem; bottom: -1.2rem; --bounce: 10%; animation: bouncyLeftToRight 1s cubic-bezier(0.5, 1.5, 0.5, 1.5) infinite; };
}
.bounce {
  --bounce: 25%;
  animation: bouncyLeftToRight 0.3s cubic-bezier(0.5, 1.5, 0.5, 1.5) infinite;
}
@keyframes bouncyLeftToRight {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(var(--bounce));
  }
}
article.markdown .note {
  padding: 1rem 2rem;
  padding-left: 0.6rem;
  font-size: 1.4rem;
  border-left: 12px solid var(--accent-light);
  background-color: #fdeaff;
  margin-top: 1.4rem;
  display: flex;
  gap: 0.5rem;
  .content {
    transition: opacity .2s;
    opacity: 0;
  }
  &[data-active] .content {
    opacity: 1;
  }
  .icon {
    svg { width: 2rem; } font-size: 0.2rem;
    color: var(--accent);
  }
}
.note u::before,
.note code::before {
  display: none !important;
}
.slide pre {
  overflow: hidden !important;
}
:has(.slide[data-active]:has(.cat)) {
  background-color: pink !important;
}
.slide[data-active]:has(.cat) {
  .cat {
    border-radius: 10%;
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vYXNzZXRzL2Nzcy9hcHAuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ01hcGxlJztcbiAgICBmb250LXN0eWxlOiBtb25vc3BhY2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybCgvZm9udHMvbWFwbGUvTWFwbGVNb25vLVJlZ3VsYXIub3RmKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ01hcGxlJztcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybCgvZm9udHMvbWFwbGUvTWFwbGVNb25vLUl0YWxpYy5vdGYpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbjpyb290IHtcbiAgICAtLW1haW4tY29udGVudDogNjgwcHg7XG4gICAgLS1tYXJnaW4tc206IDFyZW07XG4gICAgLS1iZy1wcmltYXJ5OiAjZmJmZWZlO1xuICAgIC0tYmctc2Vjb25kYXJ5OiAjZjBmMGYwO1xuICAgIC0tZm9udC1wcmltYXJ5OiAjMjMxZjFmO1xuICAgIC0taGlnaGxpZ2h0OiAjOGRmZmIzO1xuICAgIC0tYWNjZW50OiAjODI1MGRmO1xuICAgIC0tYWNjZW50LWxpZ2h0OiAjYzZhOGZmO1xuICAgIC0tY2FsbG91dDogI2NmMjIyZTtcbiAgICAtLWJhY2tncm91bmQtejogLTEwMDtcbiAgICAtLXRhYmxldDogNzY4cHg7XG4gICAgLS1oZWFkZXItcGFkZGluZzogMC42cmVtIDA7XG59XG5cbmhlYWRlciB7XG4gIHBhZGRpbmc6IHZhcigtLWhlYWRlci1wYWRkaW5nKVxuXG4gIGEge1xuICAgIGZvbnQtZmFtaWx5OiAnTWFwbGUnO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTYW5zXCIsIHNlcmlmO1xuICBmb250LW9wdGljYWwtc2l6aW5nOiBhdXRvO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIndpZHRoXCIgMTAwO1xuICBjb2xvcjogdmFyKC0tZm9udC1wcmltYXJ5KVxuICAvKiBwb2xrYSBkb3Qgc3R5bGUgKi9cbiAgei1pbmRleDogdmFyKC0tYmFja2dyb3VuZC16KTtcbiAgLS1kb3Q6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWRvdCkgMTAlLCB0cmFuc3BhcmVudCAxMSUpLFxuICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1kb3QpIDEwJSwgdHJhbnNwYXJlbnQgMTElKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDEwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMzBweCAzMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xufVxuXG4ubGF5b3V0IHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1haW4tY29udGVudCk7XG5cbiAgICAmOmhhcygucHJlc2VudGF0aW9uLXNsaWRlcykge1xuICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAgIHBhZGRpbmctaW5saW5lOiAzMnB4O1xuICAgIH1cbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgYmxvY2txdW90ZSB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLnByZXNlbnRhdGlvbi1zbGlkZXMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGVzLW1vYmlsZS13YXJuaW5nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4ge1xuICA6cm9vdCB7XG4gICAgLS1ndXR0ZXI6IDAuNXJlbSAxcmVtO1xuICAgIC0tZm9udC10ZXh0OiAxcmVtO1xuICAgIC0tZm9udC1jb2RlOiAwLjgwcmVtO1xuICAgIC0tdGV4dC1saW5lLWhlaWdodDogMS41O1xuICB9XG5cbiAgcCB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxufVxuXG4vKiBMYXJnZSBzY3JlZW5zIC0gREVTS1RPUCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkge1xuICA6cm9vdCB7XG4gICAgLS1ndXR0ZXI6IDFyZW0gMnJlbTtcbiAgICAtLWZvbnQtdGV4dDogMS4ycmVtO1xuICAgIC0tZm9udC1jb2RlOiAxcmVtO1xuICAgIC0tdGV4dC1saW5lLWhlaWdodDogMS40NTtcbiAgICAtLWhlYWRlci1wYWRkaW5nOiAxcmVtIDA7XG4gIH1cblxuICAucHJlc2VudGF0aW9uLXNsaWRlcyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5zbGlkZXMtbW9iaWxlLXdhcm5pbmcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5tYWluOmhhcyguc2xpZGUpIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTQwcHgpO1xuXG4gIGFydGljbGUge1xuICAgIGhlaWdodDogOTYlXG4gIH1cbn1cblxuLnJvdW5kIHtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuOnJvb3Q6aGFzKC5zbGlkZSkge1xuICBmb250LXNpemU6IDIwcHg7XG5cbiAgLnNsaWRlOmhhcyguYnVzeSkge1xuICAgIC8qIGZvbnQtc2l6ZTogMTBweDsgKi9cbiAgICAtLWZvbnQtY29kZTogMXJlbTtcbiAgfVxuXG4gIC5zbGlkZTpoYXMoLnJlbGF4ZWQpIHtcbiAgICAvKiBmb250LXNpemU6IDEwcHg7ICovXG4gICAgLS1mb250LWNvZGU6IDJyZW07XG4gIH1cbn1cblxuYXJ0aWNsZS5tYXJrZG93biAuc2xpZGUge1xuICAtLWZvbnQtdGV4dDogMS40cmVtO1xuICAtLWZvbnQtY29kZTogMS40cmVtO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi10b3A6IDAuNnJlbTsgXG4gIH1cblxuICAmW2RhdGEtYWN0aXZlXSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gICA+IGgxIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LXNpemU6IDEwcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvKiBwYWRkaW5nLWJsb2NrOiAxNnJlbSA1cmVtOyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnTWFwbGUnIDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFjY2VudCksIHZhcigtLWhpZ2hsaWdodCksIHZhcigtLWNhbGxvdXQpKTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYW5pbWF0aW9uOiBncmFkaWVudCAxNXMgZWFzZSBpbmZpbml0ZTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDUwMCUgYXV0bztcbiAgfVxuXG4gICBoMiB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZ3JhZGllbnQge1xuXHQwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xuXHR9XG5cdDUwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG5cdH1cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xuXHR9XG59XG5cblxuYXJ0aWNsZS5tYXJrZG93biwgbWFpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGV0YWlscyA+ICo6bm90KDppcyhzdW1tYXJ5KSkge1xuICAgICAgbWFyZ2luLWlubGluZTogMXJlbTtcbiAgICAgIC8qIG1hcmdpbi1sZWZ0OiAxcmVtOyAqL1xuICAgIH1cblxuICAgIGRldGFpbHMge1xuICAgICAgcGFkZGluZzogMC42cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc2Vjb25kYXJ5KVxuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB6LWluZGV4OiB2YXIoLS1iYWNrZ3JvdW5kLXopO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgcCwgbGkge1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtbGluZS1oZWlnaHQpO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXRleHQpO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMS4yMHJlbVxuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgJiArICYsXG4gICAgICAmICsgZGV0YWlscyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcDpoYXMoKyBvbCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuXG4gICAgICArIG9sIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwOmhhcygrIHVsKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgfVxuXG4gICAgcHJlIHtcbiAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1tYXJnaW4tc20pO1xuICAgIH1cblxuICAgIHByZSwgcHJlIGNvZGUge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWNvZGUpO1xuICAgIH1cblxuICAgIGNvZGUge1xuICAgICAgZm9udC1mYW1pbHk6ICdNYXBsZSc7XG4gICAgfVxuXG4gICAgdSB7XG4gICAgICAtLXJvdGF0ZTogMmRlZztcbiAgICAgIC0tc2tldzogLTI1ZGVnO1xuICAgICAgLS1ib3R0b206IC0wLjVweDtcbiAgICAgIC0tbGVmdDogMHB4O1xuICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgIGZvbnQtZmFtaWx5OiBNYXBsZTtcbiAgICB9XG5cbiAgICAqOm50aC1jaGlsZCgyKSB1IHtcbiAgICAgIC0tYm90dG9tOiAxcHg7XG4gICAgICAtLXJvdGF0ZTogLThkZWc7XG4gICAgICAtLXNrZXc6IDM2ZGVnO1xuICAgIH1cblxuICAgICo6bnRoLWNoaWxkKDYpIHUge1xuICAgICAgLS1sZWZ0OiAtNXB4O1xuICAgICAgLS1ib3R0b206IDVweDtcbiAgICAgIC0tc2tldzogNDBkZWc7XG4gICAgICAtLXJvdGF0ZTogMTJkZWc7XG4gICAgfVxuXG4gICAgOm5vdChoMikgPiB1OjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhpZ2hsaWdodCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDAuNDVyZW07XG4gICAgICAgIGJvdHRvbTogdmFyKC0tYm90dG9tKTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHRyYW5zZm9ybTogc2tldyh2YXIoLS1za2V3KSkgcm90YXRlKHZhcigtLXJvdGF0ZSkpO1xuICAgIH1cblxuICAgIGNvZGUgLmFobC1jb21tZW50IHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgXG4gICAgfVxuXG4gICAgY29kZTpub3QocHJlID4gJikge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLS1ibGVlZDogMC4ycmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNSU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1zZWNvbmRhcnkpO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYmxlZWQpKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ibGVlZCkpO1xuICAgICAgICB0b3A6IGNhbGMoKHZhcigtLWJsZWVkKSAvIDIpICogLTEpO1xuICAgICAgICBsZWZ0OiBjYWxjKCh2YXIoLS1ibGVlZCkgLyAyKSAqIC0xKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBwYWRkaW5nOiAwLjNyZW0gMC44cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG5cbiAgICAgICogKyAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGlnaHQpO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1mYW1pbHk6IE1hcGxlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBwYWRkaW5nOiAwLjNlbSAwLjhlbTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxufVxuXG5oZWFkZXIgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaGVhZGVyIGEsIG1haW4gYSB7XG4gIGNvbG9yOiB1bnNldDtcbn1cblxubWFpbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogLjFyZW0gIWltcG9ydGFudDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuMXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4ycywgdGV4dC1kZWNvcmF0aW9uLWNvbG9yIC41cztcbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jYWxsb3V0KSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuXG4vKiBDU1MgUmVzZXRzICovXG5cbi8qIEJhc2VsaW5lIGZvciBkZWZhdWx0IGxpbmtzICovXG5hOm5vdChbY2xhc3NdKSwgLm1hcmtkb3duIHUge1xuICAvKiBSZWxhdGl2ZWx5IHNpemVkIHRoaWNrbmVzcyBhbmQgb2Zmc2V0ICovXG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IG1heCgwLjA4ZW0sIDFweCk7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xMnJlbTtcbn1cblxuXG4vKiBDb21wb25lbnRzICovXG5cbi5zcGxpdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcm93LWdhcDogMXJlbTtcbiAgY29sdW1uLWdhcDogMXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAmW2RhdGEtZXZlbmx5XSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHlcbiAgfVxuXG4gICYud2lkZSB7XG4gICAgY29sdW1uLWdhcDogNHJlbTtcbiAgfVxuXG4gICYgKyAmIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5kZW1vIHtcbiAgcGFkZGluZzogMXJlbSAxLjJyZW07XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tZm9udC1wcmltYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gIC50aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLnNwYWNlciB7XG4gIHBhZGRpbmc6IDAuOHJlbTtcbn1cblxubWFpbiB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gIH1cblxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gIH1cbn1cblxuLm1lcm1haWQge1xuICAvKiBIaWRlIGNvZGVibG9jayBiZWZvcmUgbWVybWFpZCBraWNrcyBpbiAgKi9cbiAgJjpub3QoOmhhcyhzdmcpKSB7XG4gICAgZGlzcGxheTogbm9uZTsgXG4gIH1cblxuIC8qIEFwcGx5IHRvIGFsbCBwYXRocyBpbiBTVkcgKi9cbiAgW2NsYXNzXj1tZXNzYWdlTGluZV1bZGF0YS1hY3RpdmVdIHtcbiAgICBzdHJva2Utd2lkdGg6IDIuNiAhaW1wb3J0YW50O1xuICAgIHN0cm9rZTogdmFyKC0tYWNjZW50KSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogRGltIHRoZSBub24tYWN0aXZlIGxpbmVzIHdoZW4gdGhlcmUncyBhbiBhY3RpdmUgbGluZSAqL1xuICAmOmhhcyhbZGF0YS1hY3RpdmVdKSBbY2xhc3NePW1lc3NhZ2VMaW5lXTpub3QoW2RhdGEtYWN0aXZlXSkge1xuICAgIHN0cm9rZTogIzk5OSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLyogRXZlcnl0aGluZyBhZnRlciB0aGUgbGFzdCA8Zz4gKi9cbiAgJjpub3QoOmhhcyhbZGF0YS1hY3RpdmVdKSkgZzpsYXN0LW9mLXR5cGUgfiAqLFxuICBbZGF0YS1hY3RpdmVdIH4gKiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLmZsYXNoIHtcbiAgei1pbmRleDogOTk5O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWluLXdpZHRoOiAxMHZ3O1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYWxsb3V0KVxuICAgICAgICAvKiBAa2luZCA9PSA6aW5mbyAmJiBcImJnLWVtZXJhbGQtNTAgdGV4dC1lbWVyYWxkLTgwMCByaW5nLWVtZXJhbGQtNTAwIGZpbGwtY3lhbi05MDBcIiwgKi9cbiAgICAgICAgLyogQGtpbmQgPT0gOmVycm9yICYmIFwiYmctcm9zZS01MCB0ZXh0LXJvc2UtOTAwIHNoYWRvdy1tZCByaW5nLXJvc2UtNTAwIGZpbGwtcm9zZS05MDBcIiAqL1xuIFxufVxuXG5cblxuW2RhdGEtbGluZV0ge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDJweDtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xuXG4gICZbZGF0YS1hY3RpdmVdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFlYmZmO1xuICB9XG59XG5cbmNvZGU6aGFzKFtkYXRhLWxpbmVdW2RhdGEtYWN0aXZlXSkgW2RhdGEtbGluZV06bm90KFtkYXRhLWFjdGl2ZV0pIHtcbiAgb3BhY2l0eTogNjAlXG59XG5cbi50YWJzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHBhZGRpbmc6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHdpZHRoOiAyMHZ3O1xuICBtYXgtd2lkdGg6IDI5MHB4O1xuXG4gIC50YWIge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG5cbiAgICAmOm5vdChbZGF0YS1hY3RpdmVdKSB7XG4gICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLXNlY29uZGFyeSkgXG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4IDAgMCAxMnB4O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAxMnB4IDEycHggMDtcbiAgICB9XG4gIH1cblxuICAuZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC5wYW5lbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmW2RhdGEtYWN0aXZlXSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBibG9ja1xuICAgICAgICAvKiBkaXNwbGF5OiBncmlkOyAqL1xuICAgICAgICAvKiBwbGFjZS1jb250ZW50OiBjZW50ZXI7ICovXG4gICAgICB9XG4gIH1cbn1cblxuXG4uc2xpZGU6aGFzKC5jb2RlYmxvY2sgY29kZVtkYXRhLWFjdGl2ZV0pIC5jb2RlYmxvY2s6bm90KDpoYXMoY29kZVtkYXRhLWFjdGl2ZV0pKSB7XG4gIG9wYWNpdHk6IDU1JTtcbn1cblxuLnNsaWRlIHByZTpoYXMoY29kZVtkYXRhLWFjdGl2ZV0pOm5vdCg6aGFzKHN2ZykpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDEwcHggMTBweDsgLyogQWRqdXN0IHNpemUgaGVyZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tYWNjZW50KSB0cmFuc3BhcmVudDsgLyogQ2hhbmdlIGNvbG9yIGhlcmUgKi9cbiAgfVxuXG4gIGNvZGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuLnNsaWRlIC5tZXJtYWlkIHN2ZyB7XG4gIG1heC1oZWlnaHQ6IDc1dmg7XG59XG5cbi5zbGlkZSAubWVybWFpZCByZWN0Lm5vdGUge1xuICBmaWxsOiB2YXIoLS1oaWdobGlnaHQpICFpbXBvcnRhbnQ7XG4gIHN0cm9rZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi5sYW5ndWFnZS1jc3Mge1xuICBzcGFuW2RhdGEtaGlnaGxpZ2h0PVwicHVuY3R1YXRpb24uYnJhY2tldFwiXSB7XG4gICAgY29sb3I6ICM5OTcgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbmFydGljbGUubWFya2Rvd24gLnNsaWRlIC50YWtlYXdheSB7XG4gIG1heC13aWR0aDogODB2dztcbiAgdG9wOiAtNnJlbTtcblxuICA6aGFzKGxpLmFjdGl2ZSkgbGk6bm90KC5hY3RpdmUpIHtcbiAgICBvcGFjaXR5OiA2MCU7XG4gIH1cblxuICA6aGFzKGxpLmFjdGl2ZSkgbGkuYWN0aXZlIH4gbGk6bm90KC5hY3RpdmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgb2wge1xuICAgIGhlaWdodDogMzc2cHg7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tdG9wOiAxLjZyZW07XG4gIH1cblxuICBsaS5hY3RpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXN0eWxlOiBib2xkO1xuICB9XG5cbiAgbGkuYWN0aXZlOm50aC1jaGlsZCgzKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlx1RDgzQ1x1REY1RFwiICFpbXBvcnRhbnQ7XG4gIH1cblxuICBsaS5hY3RpdmU6OmJlZm9yZSB7XG4gICBjb250ZW50OiBcIlx1RDgzRFx1REM0OVwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IC8qIGFkZHMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBlbW9qaSBhbmQgdGhlIGVsZW1lbnQncyBjb250ZW50ICovXG4gICAgZm9udC1zaXplOiAzcmVtO1xuICAgIGxlZnQ6IC02cmVtO1xuICAgIGJvdHRvbTogLTEuMnJlbTtcbiAgICAtLWJvdW5jZTogMTAlO1xuICAgIGFuaW1hdGlvbjogYm91bmN5TGVmdFRvUmlnaHQgMXMgY3ViaWMtYmV6aWVyKDAuNSwgMS41LCAwLjUsIDEuNSkgIGluZmluaXRlO1xuICB9XG59XG5cbi5ib3VuY2Uge1xuICAtLWJvdW5jZTogMjUlO1xuICBhbmltYXRpb246IGJvdW5jeUxlZnRUb1JpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNSwgMS41LCAwLjUsIDEuNSkgIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jeUxlZnRUb1JpZ2h0IHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1ib3VuY2UpKTtcbiAgfVxufVxuXG5hcnRpY2xlLm1hcmtkb3duIC5ub3RlIHtcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWxpZ2h0KTsgKi9cbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNnJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkIHZhcigtLWFjY2VudC1saWdodCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGVhZmY7XG5cbiAgbWFyZ2luLXRvcDogMS40cmVtO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuXG4gIC5jb250ZW50IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycztcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgJltkYXRhLWFjdGl2ZV0gLmNvbnRlbnQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuaWNvbiB7XG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgIH1cbiAgICAvKiB0b3A6IC0xcmVtOyAqL1xuICAgIGZvbnQtc2l6ZTogMC4ycmVtO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICB9XG59XG5cbi8qIElkayB3aHksIGJ1dCBpbnNpZGUgdGhlIC5ub3RlIHsgIH0gYmxvY2sgY29tcGlsZXIgd2FzIGZhcnRpbmcgKi9cbi5ub3RlIHU6OmJlZm9yZSwgLm5vdGUgY29kZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi5zbGlkZSBwcmUge1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbjpoYXMoLnNsaWRlW2RhdGEtYWN0aXZlXTpoYXMoLmNhdCkpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcGluayAhaW1wb3J0YW50O1xufVxuXG4uc2xpZGVbZGF0YS1hY3RpdmVdOmhhcyguY2F0KSB7XG4gIC8qIGJhY2tncm91bmQtY29sb3I6ICNmZTM0MDY7ICovXG5cbiAgLmNhdCB7XG4gICAgYm9y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 */
