:root {
  color-scheme: light dark;

  /* colours */
  --green-light: #d0ff00;
  --green-dark: #667d00;
  --pink-dark: #d63384;
  --pink-light: #e685b5;
  --primary: var(--green-light);
  --secondary-dark: rgb(49, 26, 75);
  --secondary: #639;
  --light: #f9f9f9;
  --dark: rgb(49, 26, 75);
  --darker: rgb(14, 7, 19);
  --body-bg: var(--darker);
  --body-colour: var(--light);
  --gradient-dark: linear-gradient(var(--secondary-dark), var(--darker));
  --code-colour: var(--pink-light);

  /* spacing */
  --spacer-base: 1rem;
  --spacer-1: calc(var(--spacer-base) - .3rem);
  --spacer-2: var(--spacer-base);
  --spacer-3: calc(var(--spacer-base) + .3rem);
  --spacer-4: calc(var(--spacer-base) + 1rem);
  --spacer-5: calc(var(--spacer-base) + 2rem);

  --padding-x: 1rem;
  --padding-y: .5rem;

  /* fonts */
  --font-body: "LilGrotesk", "Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, sans-serif;
  --font-heading: "Young Serif", cambria, cochin, georgia, times, "Times New Roman", serif;
  --font-monospace: "JetBrain mono", "Courier New", courier, monospace;
  --font-size: 20px;

  /* text */
  --line-height: 1.5;
  --heading-line-height: 1.2;

  /* headings */
  --h1-font-size: calc(var(--spacer-base) * 2.5);
  --h2-font-size: calc(var(--spacer-base) * 2);
  --h3-font-size: calc(var(--spacer-base) * 1.75);
  --h4-font-size: calc(var(--spacer-base) * 1.5);
  --h5-font-size: calc(var(--spacer-base) * 1.25);
  --h6-font-size: var(--spacer-base);
  --display-font-size: calc(var(--spacer-base) * 4);

  /* border */
  --border-radius: .5rem;

  /* breakpoint */
  --breakpoint-y-sm: 825px;

  /* animation */
  --transition: transform .3s ease-in-out;

  /* shadow */
  --box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
  --box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);
  --box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);
  --box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);
}

/* components */

@font-face {
  font-family: LilGrotesk;
  font-weight: 100 1000;
  src: url("/fonts/LilGrotesk.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "Young Serif";
  font-weight: 400;
  src: url("/fonts/YoungSerif-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "JetBrain mono";
  font-weight: 400;
  src: url("/fonts/JetBrainsMono-Medium.woff2") format("woff2");
  font-display: swap;
}

@media (prefers-reduced-motion: no-preference) {
  :root {
    scroll-behavior: smooth;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: var(--font-size);
}

body {
  margin: 0;
  overflow-x: hidden;
  font-family: var(--font-body);
  font-size: var(--spacer-base);
  line-height: var(--line-height);
  color: var(--body-colour);
  background-color: var(--body-bg);
}

a {
  color: var(--primary);
  text-decoration-thickness: 2px;
  text-decoration-style: dotted;
  text-decoration-color: var(--secondary);
  text-underline-offset: .25em;

  &:hover {
    text-decoration-color: hsl(from var(--secondary) h 60% l);
  }
}

p {
  margin-bottom: var(--spacer-1);
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 0;
  margin-bottom: var(--spacer-1);
  font-family: var(--font-heading);
  font-weight: 500;
  line-height: var(--heading-line-height);
}

h1,
.h1 {
  font-size: var(--h1-font-size);
}

h2,
.h2 {
  font-size: var(--h2-font-size);
}

h3,
.h3 {
  font-size: var(--h3-font-size);
}

h4,
.h4 {
  font-size: var(--h4-font-size);
}

h5,
.h5 {
  font-size: var(--h5-font-size);
}

h6,
.h6 {
  font-size: var(--h6-font-size);
}

.display {
  font-family: var(--font-heading);
  font-size: var(--display-font-size);
  font-weight: 300;
  line-height: var(--heading-line-height);
}

pre {
  padding: var(--spacer-1);
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
}

code {
  font-family: var(--font-monospace);
  color: var(--code-colour);
  word-wrap: break-word;
}

.input {
  display: inline-block;
  padding: calc(var(--padding-y) - .2rem) var(--padding-x);
  font-size: var(--spacer-1);
  line-height: 1.5;
  color: var(--body-colour);
  border: 3px solid var(--secondary);
  border-radius: var(--border-radius);
  transition: box-shadow 250ms;

  &:focus {
    outline: 0;
    box-shadow: 0 0 0 .25rem var(--secondary);
  }
}

.text-bg-dark {
  color: var(--body-bg);
  background-color: var(--dark);
  background-image: var(--gradient-dark);
}

.button {
  display: inline-block;
  padding: var(--padding-y) var(--padding-x);
  text-decoration: none;
  cursor: pointer;
  border: none;
  border-radius: var(--border-radius);
  transition: background-color 250ms;


}

.button-primary {
  color: var(--dark);
  background-color: var(--primary);

  &:hover {
    background-color: hsl(from var(--primary) h s 20%);
  }
}

.button-secondary {
  color: var(--light);
  background-color: var(--secondary);

  &:hover {
    background-color: hsl(from var(--secondary) h s 40%);
  }
}

.button-close {
  box-sizing: content-box;
  width: 1em;
  height: 1em;
  padding: var(--padding-y) var(--padding-x);
  color: var(--body-color);
  cursor: pointer;
  background: rgba(0, 0, 0, 0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
  filter: invert(1) grayscale(100%) brightness(100%);
  border: 0;
  border-radius: .4rem;
}

.container {
  max-width: 1340px;
  padding: var(--spacer-2);
  margin: auto;
}

.text-center {
  text-align: center;
}

.gap {
  gap: var(--spacer-1);
}

.position-relative {
  position: relative;
}

.grid {
  display: grid;
  grid-template-rows: repeat(1, 1fr);
  grid-template-columns: repeat(12, 1fr);
}

.column-12 {
  grid-column: auto/span 12;
}

.divider {
  padding-bottom: var(--spacer-4);
  margin-bottom: var(--spacer-4);
  border-bottom: 3px dotted var(--secondary);
}

.justify-content-center {
  justify-content: center;
}

/* Medium screen and larger */

@media screen and (min-width: 768px){
  .column-md-4 {
    grid-column: auto/span 4;
  }

  .column-md-6 {
    grid-column: auto/span 6;
  }

  .column-md-8 {
    grid-column: auto/span 8;
  }
}

.navbar {
  position: sticky;
  top: 0;
  z-index: 5;
  background-color: var(--secondary);

  .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: var(--padding-y);
    padding-bottom: var(--padding-y);
  }
}

.navbar-toggler {
  background-color: var(--secondary-dark);
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 125%;
}

.navbar-logo {
  height: 42px;
}

.navbar-brand {
  display: inherit;
  flex: 1;
}

.navbar-search {
  display: flex;
  flex: 2;
  justify-content: center;
}

#navbarNav {
  display: flex;
  flex: 1;
  justify-content: flex-end;
}

.nav-link {
  font-weight: 600;
  text-decoration-color: var(--green-light);

  &:hover {
    text-decoration-color: hsl(from var(--green-light) h 60% l);
  }
}

.offcanvas:popover-open {
  .nav-link {
    color: var(--primary);
    text-decoration-color: var(--secondary);
  }
}

.nav-icon {
  display: inline-flex;
  align-items: center;
  height: 100%;
}

@media (min-width: 992px) {
  .navbar-toggler {
    display: none;
  }
}

.border {
  border-color: var(--primary);
  border-style: solid;
  border-width: 0;
}

.border-secondary {
  border-color: var(--primary);
}

.border-secondary-dark {
  border-color: var(--secondary-dark);
}

.border-light {
  border-color: rgba(var(--light), .5);
}

.border-5 {
  border-width: 5px;
}

.border-bottom-1 {
  border-bottom-width: 1px;
}

.border-bottom-5 {
  border-bottom-width: 5px;
}

.border-top-5 {
  border-top-width: 5px;
}

.rounded {
  border-radius: var(--border-radius);
}

.rounded-circle {
  border-radius: 50%;
}

.nav {
  display: flex;
  gap: var(--spacer-2);
  padding: 0;
  margin: 0;
  list-style: none;
}

.nav-link {
  color: rgba(255, 255, 255, .9);
}

.top-bar {
  height: 6vh;
  max-height: 128px;
  overflow: hidden;
  color: var(--light);
  background-color: var(--dark);
  background-image: var(--gradient-dark);

  & .container {
    position: relative;
    height: 100%;
    background-image: url("/images/top-bar-coral-1.avif"), url("/images/top-bar-coral-2.avif");
    background-repeat: no-repeat, no-repeat;
    background-position: 10% center, 90% center;
  }
}

@media screen and (max-height: 825px) {
  .top-bar {
    height: 5vh;
  }
}

.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 60dvh;
  min-height: 713px;
  max-height: 740px;
  overflow: hidden;
  border-bottom: 5px solid var(--secondary);

  & .button-primary {
    background-color: var(--green-light);
  }
}

.hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.hero-container {
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: var(--spacer-2);
  align-items: center;
  justify-content: end;
  max-width: 600px;
  height: 100%;
  padding-top: var(--spacer-4);
  margin: 0 auto;
}

.hero-body {
  display: flex;
  flex-direction: column;
  gap: var(--spacer-2);
  justify-content: center;
  height: 50%;
  padding-top: var(--spacer-2);
  padding-right: var(--spacer-2);
  padding-bottom: var(--spacer-2);
  padding-left: var(--spacer-2);
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
}

.hero-title {
  display: flex;
  flex-grow: 1;
  align-items: center;
  margin-bottom: 0;
  font-size: 2.4rem;
  color: var(--light);
}

.hero-subtitle {
  margin-top: 0;
  font-family: var(--font-body);
  font-size: var(--spacer-3);
  font-weight: 400;
}

.hero-border-bottom {
  position: absolute;
  top: 80%;
  z-index: 1;
  transform: translate(-50%, -57%);

  &.left {
    left: 29%;
  }

  &.right {
    left: 67%;
  }
}

.hero-input {
  font-size: calc(var(--spacer-base) - .2rem);
}

.hero-buttons {
  display: grid;
}

@media screen and (min-width: 768px){
  .hero-title {
    font-size: calc(var(--spacer-base) + 2rem);
  }

  .hero-buttons {
    display: flex;
    justify-content: center;
  }

  .hero-body {
    padding-right: var(--spacer-4);
    padding-left: var(--spacer-4);
  }

  .hero-input {
    font-size: var(--spacer-2);
  }
}

.d-flex {
  display: flex;
}

.d-none {
  display: none;
}

.visibility-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (min-width: 768px) {
  .d-md-flex {
    display: flex;
  }
}

.justify-content-center {
  justify-content: center;
}

.align-items-center {
  align-items: center;
}

.code {
  --code-colour-dark: #a9bacb;
  --code-colour-alt-dark: #b6babf;
  --code-toolbar-dark: #343c45;
  --code-body-dark: #14171a;
  --code-comment-dark: #5c6773;
  --code-blue-dark: #46afe3;
  --code-blue-grey-dark: #5e88b0;
  --code-pink-dark: #ff7de9;
  --code-purple-dark: #b98eff;
  --code-green-dark: #70bf53;
  --code-orange-dark: #d96629;
  margin-bottom: var(--spacer-2);

  & code {
    color: var(--code-colour-dark);
  }
}

.code-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacer-1) var(--spacer-2);
  background-color: var(--code-toolbar-dark);
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
}

.code-language {
  font-weight: 700;
}

.code-body {
  padding: var(--spacer-1) var(--spacer-2);
  margin: 0;
  overflow-x: auto;
  font-family: "Fira code", "Courier New", Courier, monospace;
  background-color: var(--code-body-dark);
  border-bottom-right-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);

  & pre {
    padding: 0;
  }
}

.code-comment,
.code-quote {
  font-style: italic;
  color: var(--code-comment-dark);
}

.html-tag-text {
  color: var(--code-colour-alt-dark);
}

.html-tag-name {
  color: var(--code-blue-dark);
}

.html-attr-name,
.code-doctag,
.code-keyword,
.code-formula {
  color: var(--code-pink-dark);
}

.html-attr-value,
.code-string,
.code-regexp,
.code-addition,
.code-attribute,
.code-meta .code-string {
  color: var(--code-purple-dark);
}

.code-section,
.code-name,
.code-selector-tag,
.code-deletion,
.code-subst {
  color: var(--code-orange-dark);
}

.code-literal {
  color: var(--code-blue-grey-dark);
}

.code-string,
.code-regexp,
.code-addition,
.code-attribute,
.code-meta .code-string {
  color: var(--code-green-dark);
}

.code-attr,
.code-variable,
.code-template-variable,
.code-type,
.code-selector-class,
.code-selector-attr,
.code-selector-pseudo,
.code-number {
  color: var(--code-orange-dark);
}

.code-symbol,
.code-bullet,
.code-link,
.code-meta,
.code-selector-id,
.code-title {
  color: var(--code-blue-dark);
}

/* stylelint-disable */

.code-built_in,
.code-title.class_,
.code-class .code-title {
  color: var(--code-orange-dark);
}

/* stylelint-enable */

.code-emphasis {
  font-style: italic;
}

.code-strong {
  font-weight: 700;
}

.code-link {
  text-decoration: underline;
}

.p-1 {
  padding: var(--spacer-1);
}

.pb-1 {
  padding-bottom: var(--spacer-1);
}

.p-5 {
  padding: var(--spacer-5);
}

.py-3 {
  padding-top: var(--spacer-3);
  padding-bottom: var(--spacer-3);
}

.py-5 {
  padding-top: var(--spacer-5);
  padding-bottom: var(--spacer-5);
}

.px-5 {
  padding-right: var(--spacer-5);
  padding-left: var(--spacer-5);
}

.mt-0 {
  margin-top: 0;
}

.mb-4 {
  margin-bottom: var(--spacer-4);
}

.mb-5 {
  margin-bottom: var(--spacer-5);
}

.mb-0 {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .p-md-5 {
    padding: var(--spacer-5);
  }
}

.bg-body {
  background-color: var(--body-bg);
}

.bg-dark {
  background-image: linear-gradient(180deg, rgb(49, 20, 66) 0%, rgba(49, 20, 66, .58) 50%, rgba(49, 20, 66, 0) 100%);
}

.bg-glass {
  color: var(--light);
  background-image: radial-gradient(circle at bottom, rgba(49, 26, 75, .3), rgba(14, 7, 19, .5));
  backdrop-filter: blur(10px);
  border-color: #ffffff2e;
  border-style: solid;
  border-width: 0 1px;
}

.bg-gradient-light {
  background-image: linear-gradient(180deg, rgb(49, 20, 66) 0%, rgba(49, 20, 66, .58) 40%, rgba(49, 20, 66, 0) 100%);
}

.bg-gradient-dark {
  background-image: linear-gradient(180deg, rgb(49, 20, 66) 0%, rgba(49, 20, 66, .58) 40%, rgb(14, 7, 19) 100%);
}

.content {
  padding-top: var(--spacer-3);
  padding-bottom: var(--spacer-3);

  & > h2:not(:first-child) {
    margin-top: var(--spacer-5);
  }

  & > h3 {
    margin-top: var(--spacer-4);
  }

  & > h4 {
    margin-top: var(--spacer-3);
  }
}

.content-img {
  max-width: 100%;
  height: auto;
}

.content-border {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: -1;
  width: 110%;
  transform: translate(-50%, -50%);
}

@media screen and (min-width: 768px){
  .content {
    padding-top: var(--spacer-5);
    padding-bottom: var(--spacer-5);
  }
}

.video-bg {
  background-image: radial-gradient(circle, rgb(38, 18, 97) 0%, rgb(32, 44, 90) 50%, rgb(14, 7, 19) 100%);
}

.video-player {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border: 0;
  border-radius: var(--border-radius);
}

.video-title {
  text-shadow: 1px 1px 1px var(--dark);
}

.table {
  width: 100%;
  text-align: left;
  caption-side: bottom;
  border-collapse: collapse;
  border-color: var(--secondary);

  /* stylelint-disable-next-line selector-max-universal */
  & > :not(caption) > * > * {
    padding: .5rem;
    background-color: var(--bs-table-bg);
    border-bottom-width: 1px;
  }
}

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;

  .table {
    min-width: 960px;
  }
}

tbody,
td,
tfoot,
th,
thead,
tr {
  text-align: inherit;
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}

.post {
  margin-bottom: var(--spacer-5);

  h2 {
    font-size: var(--spacer-4);
  }

  > p:first-of-type,
  > img:first-child + p {
    font-size: 133.333333%;
  }
}

.post-author,
.post-author a {
  display: inline-flex;
  gap: var(--spacer-1);
  align-items: center;
}

.post-author-img {
  border-radius: 50%;
}

.offcanvas {
  position: fixed;
  bottom: 0;
  z-index: 1045;
  display: flex;
  flex-direction: column;
  width: 400px;
  max-width: 100%;
  color: var(--body-colour);
  visibility: hidden;
  background-color: var(--body-bg);
  background-clip: padding-box;
  outline: 0;
  box-shadow: var(--box-shadow-sm);
  transition: var(--transition);
  transform: translateX(100%);
}

.offcanvas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacer-1);
}

.offcanvas-title {
  margin: 0;
}

.offcanvas-body {
  flex-grow: 1;
  padding: var(--spacer-1);
  overflow-y: auto;

  .nav {
    display: flex;
    flex-direction: column;
  }
}

.offcanvas:popover-open {
  inset: unset;
  top: unset;
  top: 0;
  right: unset;
  right: 0;
  bottom: unset;
  bottom: 0;
  height: auto;
  padding: 0;
  visibility: visible;
  border: none;
  transform: none;
}

@media (min-width: 992px) {
  .offcanvas .offcanvas-header {
    display: none;
  }

  .offcanvas-body {
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;

    .nav {
      justify-content: end;
    }
  }

  /* stylelint-disable */
  .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: rgba(0, 0, 0, 0) !important;
    border: 0 !important;
    box-shadow: none;
    transition: none;
    transform: none !important;
    overflow: unset;
  /* stylelint-enable */

    .nav {
      display: flex;
      flex-direction: row;
    }
  }
}

.box-shadow {
  box-shadow: 0 .5rem 1rem #00000026, inset 0 -1px #ffffff26;
}

.drop-shadow {
  filter: drop-shadow(0 5px .75rem #00000080);
}

.drop-shadow-neon {
  filter: drop-shadow(5px 5px .75rem #ff00d763) drop-shadow(-5px -5px .75rem #d0ff0063);
}

.rays {
  --ray:
    repeating-linear-gradient(
      100deg,
      var(--secondary) 0%,
      var(--secondary) 7%,
      transparent 10%,
      transparent 12%,
      var(--secondary) 16%
    );

  --rainbow:
    repeating-linear-gradient(
      100deg,
      #60a5fa 10%,
      #e879f9 15%,
      #60a5fa 20%,
      #5eead4 25%,
      #60a5fa 30%
    );

  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
}

.rays-animated {
  background-image: var(--ray), var(--rainbow);
  filter: blur(10px) invert(100%);
  background-position: 50% 50%, 50% 50%;
  background-size: 300%, 200%;
  -webkit-mask-image: radial-gradient(ellipse at 100% 0%, #000 40%, transparent 70%);
          mask-image: radial-gradient(ellipse at 100% 0%, #000 40%, transparent 70%);

  &::after {
    position: absolute;
    inset: 0;
    content: "";
    background-image: var(--ray), var(--rainbow);
    background-attachment: fixed;
    background-size: 200%, 100%;
    mix-blend-mode: difference;
    animation: smooth-bg 60s linear infinite;
  }
}

.rays-static {
  background-image: url("/images/static_rays-sm.avif");
  background-size: cover;
}

@media screen and (min-width: 420px) {
  .rays-static {
    background-image: url("/images/static_rays.avif");
  }
}

@keyframes smooth-bg {
  from {
    background-position: 50% 50%, 50% 50%;
  }
  to {
    background-position: 350% 50%, 350% 50%;
  }
}

.position-relative {
  position: relative;
}

.z-2 {
  z-index: 2;
}

.overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.icon {
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  fill: currentcolor;
  transition: .2s ease-in-out transform;
}

.card {
  --card-border-color: #ffffff2e;
  overflow: hidden;

  color: var(--light);
  background-image: radial-gradient(circle at bottom, rgba(49, 26, 75, .3), rgba(14, 7, 19, .5));
  backdrop-filter: blur(10px);
  border-color: var(--card-border-color);
  border-style: solid;
  border-width: 0 1px;
  border-radius: var(--border-radius);
}

.card-title {
  padding: var(--spacer-1);
  margin: 0;
  border-bottom: 1px solid var(--card-border-color);
}

.card-body {
  padding: var(--spacer-1);
  margin: 0;
}

.back-to-top {
  position: fixed;
  right: var(--padding-x);
  bottom: var(--padding-y);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  color: var(--light);
  visibility: hidden;
  background-color: var(--secondary);
  border: 2px solid var(--primary);
  border-radius: 50%;
  box-shadow: var(--box-shadow);
  opacity: 0;
  transition: opacity .3s, visibility .3s, background-color .3s;

  &:hover {
    background-color: hsl(from var(--secondary) h s 40%);
  }

  &:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
  }
}

.back-to-top.visible {
  visibility: visible;
  opacity: 1;
}

.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  content: "";
}

.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
  position: absolute;
}

.visually-hidden-focusable:not(:focus):not(:focus-within) {
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.search-container {
  display: flex;
  align-items: center;
}

.search-button {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  color: var(--text-light);
  background-color: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.search-button:hover {
  background-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.search-shortcut {
  display: none;
  align-items: center;
  gap: 0.25rem;
  margin-left: 0.5rem;
  font-size: 0.75rem;
}

.search-shortcut kbd {
  padding: 0.125rem 0.25rem;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 0.25rem;
  font-family: inherit;
}

.search-popover {
  width: 100%;
  max-width: 600px;
  margin: 4rem auto auto auto;
  padding: 0;
  border-radius: 0.5rem;
  color: var(--text);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.search-popover::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(10px);
}

.search-header {
  padding: 1rem;
  border-bottom: 1px solid var(--border);
}

.search-form {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.search-input-icon {
  color: var(--text-muted);
}

.search-input {
  width: 100%;
  flex: 1;
  border: none;
  background: transparent;
  font-size: 1.125rem;
  color: var(--text);
  outline: none;
}

.search-input::-moz-placeholder {
  color: var(--text-muted);
}

.search-input::placeholder {
  color: var(--text-muted);
}

.search-results-container {
  max-height: 60vh;
  overflow-y: auto;
  padding: 0.5rem;
}

.search-results {
  list-style: none;
  padding: 0;
  margin: 0;
}

.search-empty,
.search-loading,
.search-error {
  padding: 2rem;
  text-align: center;
  color: var(--text-muted);
}

.search-error {
  color: var(--danger, #dc3545);
}

.search-result-item {
  border-radius: 0.375rem;
}

.search-result-link {
  display: block;
  padding: 0.75rem 1rem;
  color: inherit;
  text-decoration: none;
  border-radius: inherit;
}

.search-result-link:hover,
.search-result-link:focus {
  background-color: var(--secondary);
  text-decoration: none;
}

.search-result-title {
  font-weight: 600;
  margin-bottom: 0.25rem;
  color: var(--primary);
}

.search-result-desc {
  font-size: 0.875rem;
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.search-footer {
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
  font-size: 0.75rem;
  text-align: right;
  color: var(--text-muted);
}

.search-footer a {
  color: inherit;
}

.search-text  {
  display: none
}

@media screen and (min-width: 390px) {
  .search-text {
    display: inline;
  }
}

@media screen and (min-width: 480px) {
  .search-shortcut {
    display: flex;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jc3MvX3ZhcmlhYmxlcy5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL3N0eWxlcy5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19mb250LmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX2Jhc2UuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9faW5wdXQuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fdGV4dC5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19idXR0b24uY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fbGF5b3V0LmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX25hdmJhci5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19ib3JkZXIuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fbmF2LmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX3RvcC1iYXIuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9faGVyby5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19kaXNwbGF5LmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX2ZsZXguY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fY29kZS5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19zcGFjaW5nLmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX2JhY2tncm91bmQuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fY29udGVudC5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL192aWRlby5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL190YWJsZS5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19wb3N0LmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX29mZmNhbnZhcy5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19zaGFkb3cuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fcmF5cy5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19wb3NpdGlvbi5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL19pY29uLmNzcyIsIi4uLy4uLy4uL3NyYy9jc3MvX2NhcmQuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fYmFjay10by10b3AuY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fbGluay5jc3MiLCIuLi8uLi8uLi9zcmMvY3NzL192aXN1YWxseS1oaWRkZW4uY3NzIiwiLi4vLi4vLi4vc3JjL2Nzcy9fc2VhcmNoLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHdCQUF3Qjs7RUFFeEIsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQiw2QkFBNkI7RUFDN0IsaUNBQWlDO0VBQ2pDLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsMkJBQTJCO0VBQzNCLHNFQUFzRTtFQUN0RSxnQ0FBZ0M7O0VBRWhDLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsNENBQTRDO0VBQzVDLDhCQUE4QjtFQUM5Qiw0Q0FBNEM7RUFDNUMsMkNBQTJDO0VBQzNDLDJDQUEyQzs7RUFFM0MsaUJBQWlCO0VBQ2pCLGtCQUFrQjs7RUFFbEIsVUFBVTtFQUNWLG9JQUFvSTtFQUNwSSx3RkFBd0Y7RUFDeEYsb0VBQW9FO0VBQ3BFLGlCQUFpQjs7RUFFakIsU0FBUztFQUNULGtCQUFrQjtFQUNsQiwwQkFBMEI7O0VBRTFCLGFBQWE7RUFDYiw4Q0FBOEM7RUFDOUMsNENBQTRDO0VBQzVDLCtDQUErQztFQUMvQyw4Q0FBOEM7RUFDOUMsK0NBQStDO0VBQy9DLGtDQUFrQztFQUNsQyxpREFBaUQ7O0VBRWpELFdBQVc7RUFDWCxzQkFBc0I7O0VBRXRCLGVBQWU7RUFDZix3QkFBd0I7O0VBRXhCLGNBQWM7RUFDZCx1Q0FBdUM7O0VBRXZDLFdBQVc7RUFDWCw2Q0FBNkM7RUFDN0MscURBQXFEO0VBQ3JELGdEQUFnRDtFQUNoRCx1REFBdUQ7QUFDekQ7O0FDN0RBLGVBQWU7O0FDRmY7RUFDRSx1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLG1EQUFtRDtFQUNuRCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSwwQkFB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QUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsYUFBYTtBQUNmOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUZBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixTQUFTO0FBQ1g7O0FBRUE7OztFQUdFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLHNCQUFzQjtBQUN4Qjs7QUFFQTs7RUFFRSxrQ0FBa0M7RUFDbEMscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsd0JBQXdCO0VBQ3hCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIsNEJBQTRCO0VBQzVCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixtQ0FBbUM7RUFDbkMsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0U7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRiIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICBjb2xvci1zY2hlbWU6IGxpZ2h0IGRhcms7XG5cbiAgLyogY29sb3VycyAqL1xuICAtLWdyZWVuLWxpZ2h0OiAjZDBmZjAwO1xuICAtLWdyZWVuLWRhcms6ICM2NjdkMDA7XG4gIC0tcGluay1kYXJrOiAjZDYzMzg0O1xuICAtLXBpbmstbGlnaHQ6ICNlNjg1YjU7XG4gIC0tcHJpbWFyeTogdmFyKC0tZ3JlZW4tbGlnaHQpO1xuICAtLXNlY29uZGFyeS1kYXJrOiByZ2IoNDksIDI2LCA3NSk7XG4gIC0tc2Vjb25kYXJ5OiAjNjM5O1xuICAtLWxpZ2h0OiAjZjlmOWY5O1xuICAtLWRhcms6IHJnYig0OSwgMjYsIDc1KTtcbiAgLS1kYXJrZXI6IHJnYigxNCwgNywgMTkpO1xuICAtLWJvZHktYmc6IHZhcigtLWRhcmtlcik7XG4gIC0tYm9keS1jb2xvdXI6IHZhcigtLWxpZ2h0KTtcbiAgLS1ncmFkaWVudC1kYXJrOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tc2Vjb25kYXJ5LWRhcmspLCB2YXIoLS1kYXJrZXIpKTtcbiAgLS1jb2RlLWNvbG91cjogdmFyKC0tcGluay1saWdodCk7XG5cbiAgLyogc3BhY2luZyAqL1xuICAtLXNwYWNlci1iYXNlOiAxcmVtO1xuICAtLXNwYWNlci0xOiBjYWxjKHZhcigtLXNwYWNlci1iYXNlKSAtIC4zcmVtKTtcbiAgLS1zcGFjZXItMjogdmFyKC0tc3BhY2VyLWJhc2UpO1xuICAtLXNwYWNlci0zOiBjYWxjKHZhcigtLXNwYWNlci1iYXNlKSArIC4zcmVtKTtcbiAgLS1zcGFjZXItNDogY2FsYyh2YXIoLS1zcGFjZXItYmFzZSkgKyAxcmVtKTtcbiAgLS1zcGFjZXItNTogY2FsYyh2YXIoLS1zcGFjZXItYmFzZSkgKyAycmVtKTtcblxuICAtLXBhZGRpbmcteDogMXJlbTtcbiAgLS1wYWRkaW5nLXk6IC41cmVtO1xuXG4gIC8qIGZvbnRzICovXG4gIC0tZm9udC1ib2R5OiBcIkxpbEdyb3Rlc2tcIiwgXCJMdWNpZGEgU2Fuc1wiLCBcIkx1Y2lkYSBTYW5zIFJlZ3VsYXJcIiwgXCJMdWNpZGEgR3JhbmRlXCIsIFwiTHVjaWRhIFNhbnMgVW5pY29kZVwiLCBnZW5ldmEsIHZlcmRhbmEsIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1oZWFkaW5nOiBcIllvdW5nIFNlcmlmXCIsIGNhbWJyaWEsIGNvY2hpbiwgZ2VvcmdpYSwgdGltZXMsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHNlcmlmO1xuICAtLWZvbnQtbW9ub3NwYWNlOiBcIkpldEJyYWluIG1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBjb3VyaWVyLCBtb25vc3BhY2U7XG4gIC0tZm9udC1zaXplOiAyMHB4O1xuXG4gIC8qIHRleHQgKi9cbiAgLS1saW5lLWhlaWdodDogMS41O1xuICAtLWhlYWRpbmctbGluZS1oZWlnaHQ6IDEuMjtcblxuICAvKiBoZWFkaW5ncyAqL1xuICAtLWgxLWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1zcGFjZXItYmFzZSkgKiAyLjUpO1xuICAtLWgyLWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1zcGFjZXItYmFzZSkgKiAyKTtcbiAgLS1oMy1mb250LXNpemU6IGNhbGModmFyKC0tc3BhY2VyLWJhc2UpICogMS43NSk7XG4gIC0taDQtZm9udC1zaXplOiBjYWxjKHZhcigtLXNwYWNlci1iYXNlKSAqIDEuNSk7XG4gIC0taDUtZm9udC1zaXplOiBjYWxjKHZhcigtLXNwYWNlci1iYXNlKSAqIDEuMjUpO1xuICAtLWg2LWZvbnQtc2l6ZTogdmFyKC0tc3BhY2VyLWJhc2UpO1xuICAtLWRpc3BsYXktZm9udC1zaXplOiBjYWxjKHZhcigtLXNwYWNlci1iYXNlKSAqIDQpO1xuXG4gIC8qIGJvcmRlciAqL1xuICAtLWJvcmRlci1yYWRpdXM6IC41cmVtO1xuXG4gIC8qIGJyZWFrcG9pbnQgKi9cbiAgLS1icmVha3BvaW50LXktc206IDgyNXB4O1xuXG4gIC8qIGFuaW1hdGlvbiAqL1xuICAtLXRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgLyogc2hhZG93ICovXG4gIC0tYm94LXNoYWRvdzogMCAuNXJlbSAxcmVtIHJnYmEoMCwgMCwgMCwgLjE1KTtcbiAgLS1ib3gtc2hhZG93LXNtOiAwIC4xMjVyZW0gLjI1cmVtIHJnYmEoMCwgMCwgMCwgLjA3NSk7XG4gIC0tYm94LXNoYWRvdy1sZzogMCAxcmVtIDNyZW0gcmdiYSgwLCAwLCAwLCAuMTc1KTtcbiAgLS1ib3gtc2hhZG93LWluc2V0OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAuMDc1KTtcbn1cbiIsIkBpbXBvcnQgdXJsKFwiLi9fdmFyaWFibGVzLmNzc1wiKTtcblxuLyogY29tcG9uZW50cyAqL1xuQGltcG9ydCB1cmwoXCIuL19mb250LmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fYmFzZS5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2lucHV0LmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fdGV4dC5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2J1dHRvbi5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2xheW91dC5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX25hdmJhci5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2JvcmRlci5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX25hdi5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX3RvcC1iYXIuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19oZXJvLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fZGlzcGxheS5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2ZsZXguY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19jb2RlLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fc3BhY2luZy5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2JhY2tncm91bmQuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19jb250ZW50LmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fdmlkZW8uY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL190YWJsZS5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX3Bvc3QuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19vZmZjYW52YXMuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19zaGFkb3cuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19yYXlzLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fcG9zaXRpb24uY3NzXCIpO1xuQGltcG9ydCB1cmwoXCIuL19pY29uLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fY2FyZC5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX2JhY2stdG8tdG9wLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiLi9fbGluay5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX3Zpc3VhbGx5LWhpZGRlbi5jc3NcIik7XG5AaW1wb3J0IHVybChcIi4vX3NlYXJjaC5jc3NcIik7XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IExpbEdyb3Rlc2s7XG4gIGZvbnQtd2VpZ2h0OiAxMDAgMTAwMDtcbiAgc3JjOiB1cmwoXCIvZm9udHMvTGlsR3JvdGVzay53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiWW91bmcgU2VyaWZcIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoXCIvZm9udHMvWW91bmdTZXJpZi1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJKZXRCcmFpbiBtb25vXCI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiL2ZvbnRzL0pldEJyYWluc01vbm8tTWVkaXVtLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG4iLCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgOnJvb3Qge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB9XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc3BhY2VyLWJhc2UpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tYm9keS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib2R5LWJnKTtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGRvdHRlZDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IC4yNWVtO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaHNsKGZyb20gdmFyKC0tc2Vjb25kYXJ5KSBoIDYwJSBsKTtcbiAgfVxufVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyLTEpO1xufVxuXG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMsXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXItMSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogdmFyKC0taGVhZGluZy1saW5lLWhlaWdodCk7XG59XG5cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiB2YXIoLS1oMS1mb250LXNpemUpO1xufVxuXG5oMixcbi5oMiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0taDItZm9udC1zaXplKTtcbn1cblxuaDMsXG4uaDMge1xuICBmb250LXNpemU6IHZhcigtLWgzLWZvbnQtc2l6ZSk7XG59XG5cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiB2YXIoLS1oNC1mb250LXNpemUpO1xufVxuXG5oNSxcbi5oNSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0taDUtZm9udC1zaXplKTtcbn1cblxuaDYsXG4uaDYge1xuICBmb250LXNpemU6IHZhcigtLWg2LWZvbnQtc2l6ZSk7XG59XG5cbi5kaXNwbGF5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZGlzcGxheS1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogdmFyKC0taGVhZGluZy1saW5lLWhlaWdodCk7XG59XG5cbnByZSB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlci0xKTtcbiAgdGFiLXNpemU6IDQ7XG59XG5cbmNvZGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuICBjb2xvcjogdmFyKC0tY29kZS1jb2xvdXIpO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4iLCIuaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGFkZGluZy15KSAtIC4ycmVtKSB2YXIoLS1wYWRkaW5nLXgpO1xuICBmb250LXNpemU6IHZhcigtLXNwYWNlci0xKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWJvZHktY29sb3VyKTtcbiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjUwbXM7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAuMjVyZW0gdmFyKC0tc2Vjb25kYXJ5KTtcbiAgfVxufVxuIiwiLnRleHQtYmctZGFyayB7XG4gIGNvbG9yOiB2YXIoLS1ib2R5LWJnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyayk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWdyYWRpZW50LWRhcmspO1xufVxuIiwiLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZy15KSB2YXIoLS1wYWRkaW5nLXgpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcztcblxuXG59XG5cbi5idXR0b24tcHJpbWFyeSB7XG4gIGNvbG9yOiB2YXIoLS1kYXJrKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKGZyb20gdmFyKC0tcHJpbWFyeSkgaCBzIDIwJSk7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWNvbmRhcnkge1xuICBjb2xvcjogdmFyKC0tbGlnaHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbChmcm9tIHZhcigtLXNlY29uZGFyeSkgaCBzIDQwJSk7XG4gIH1cbn1cblxuLmJ1dHRvbi1jbG9zZSB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZy15KSB2YXIoLS1wYWRkaW5nLXgpO1xuICBjb2xvcjogdmFyKC0tYm9keS1jb2xvcik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKSB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMwMDAnJTNlJTNjcGF0aCBkPSdNLjI5My4yOTNhMSAxIDAgMCAxIDEuNDE0IDBMOCA2LjU4NiAxNC4yOTMuMjkzYTEgMSAwIDEgMSAxLjQxNCAxLjQxNEw5LjQxNCA4bDYuMjkzIDYuMjkzYTEgMSAwIDAgMS0xLjQxNCAxLjQxNEw4IDkuNDE0bC02LjI5MyA2LjI5M2ExIDEgMCAwIDEtMS40MTQtMS40MTRMNi41ODYgOCAuMjkzIDEuNzA3YTEgMSAwIDAgMSAwLTEuNDE0eicvJTNlJTNjL3N2ZyUzZVwiKSBjZW50ZXIvMWVtIGF1dG8gbm8tcmVwZWF0O1xuICBmaWx0ZXI6IGludmVydCgxKSBncmF5c2NhbGUoMTAwJSkgYnJpZ2h0bmVzcygxMDAlKTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAuNHJlbTtcbn1cbiIsIi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEzNDBweDtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2VyLTIpO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmdhcCB7XG4gIGdhcDogdmFyKC0tc3BhY2VyLTEpO1xufVxuXG4ucG9zaXRpb24tcmVsYXRpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMSwgMWZyKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG59XG5cbi5jb2x1bW4tMTIge1xuICBncmlkLWNvbHVtbjogYXV0by9zcGFuIDEyO1xufVxuXG4uZGl2aWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXItNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlci00KTtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IGRvdHRlZCB2YXIoLS1zZWNvbmRhcnkpO1xufVxuXG4uanVzdGlmeS1jb250ZW50LWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBNZWRpdW0gc2NyZWVuIGFuZCBsYXJnZXIgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KXtcbiAgLmNvbHVtbi1tZC00IHtcbiAgICBncmlkLWNvbHVtbjogYXV0by9zcGFuIDQ7XG4gIH1cblxuICAuY29sdW1uLW1kLTYge1xuICAgIGdyaWQtY29sdW1uOiBhdXRvL3NwYW4gNjtcbiAgfVxuXG4gIC5jb2x1bW4tbWQtOCB7XG4gICAgZ3JpZC1jb2x1bW46IGF1dG8vc3BhbiA4O1xuICB9XG59XG5cbiIsIi5uYXZiYXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcGFkZGluZy15KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tcGFkZGluZy15KTtcbiAgfVxufVxuXG4ubmF2YmFyLXRvZ2dsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZGFyayk7XG59XG5cbi5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS41ZW07XG4gIGhlaWdodDogMS41ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzAgMzAnJTNlJTNjcGF0aCBzdHJva2U9J3JnYmElMjgyNTUsIDI1NSwgMjU1LCAxJTI5JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEyNSU7XG59XG5cbi5uYXZiYXItbG9nbyB7XG4gIGhlaWdodDogNDJweDtcbn1cblxuLm5hdmJhci1icmFuZCB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG4gIGZsZXg6IDE7XG59XG5cbi5uYXZiYXItc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNuYXZiYXJOYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubmF2LWxpbmsge1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGhzbChmcm9tIHZhcigtLWdyZWVuLWxpZ2h0KSBoIDYwJSBsKTtcbiAgfVxufVxuXG4ub2ZmY2FudmFzOnBvcG92ZXItb3BlbiB7XG4gIC5uYXYtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgfVxufVxuXG4ubmF2LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIuYm9yZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xufVxuXG4uYm9yZGVyLXNlY29uZGFyeSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG59XG5cbi5ib3JkZXItc2Vjb25kYXJ5LWRhcmsge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1kYXJrKTtcbn1cblxuLmJvcmRlci1saWdodCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1saWdodCksIC41KTtcbn1cblxuLmJvcmRlci01IHtcbiAgYm9yZGVyLXdpZHRoOiA1cHg7XG59XG5cbi5ib3JkZXItYm90dG9tLTEge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXItYm90dG9tLTUge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiA1cHg7XG59XG5cbi5ib3JkZXItdG9wLTUge1xuICBib3JkZXItdG9wLXdpZHRoOiA1cHg7XG59XG5cbi5yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5yb3VuZGVkLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuIiwiLm5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc3BhY2VyLTIpO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuOSk7XG59XG4iLCIudG9wLWJhciB7XG4gIGhlaWdodDogNnZoO1xuICBtYXgtaGVpZ2h0OiAxMjhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLWxpZ2h0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyayk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWdyYWRpZW50LWRhcmspO1xuXG4gICYgLmNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1hZ2VzL3RvcC1iYXItY29yYWwtMS5hdmlmXCIpLCB1cmwoXCIvaW1hZ2VzL3RvcC1iYXItY29yYWwtMi5hdmlmXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMCUgY2VudGVyLCA5MCUgY2VudGVyO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA4MjVweCkge1xuICAudG9wLWJhciB7XG4gICAgaGVpZ2h0OiA1dmg7XG4gIH1cbn1cbiIsIi5oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDYwZHZoO1xuICBtaW4taGVpZ2h0OiA3MTNweDtcbiAgbWF4LWhlaWdodDogNzQwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnkpO1xuXG4gICYgLmJ1dHRvbi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7XG4gIH1cbn1cblxuLmhlcm8tYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5oZXJvLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2VyLTIpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyLTQpO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmhlcm8tYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2VyLTIpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiA1MCU7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXItMik7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNlci0yKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlci0yKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZXItMik7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5oZXJvLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgY29sb3I6IHZhcigtLWxpZ2h0KTtcbn1cblxuLmhlcm8tc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zcGFjZXItMyk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5oZXJvLWJvcmRlci1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogODAlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTclKTtcblxuICAmLmxlZnQge1xuICAgIGxlZnQ6IDI5JTtcbiAgfVxuXG4gICYucmlnaHQge1xuICAgIGxlZnQ6IDY3JTtcbiAgfVxufVxuXG4uaGVyby1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1zcGFjZXItYmFzZSkgLSAuMnJlbSk7XG59XG5cbi5oZXJvLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBncmlkO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCl7XG4gIC5oZXJvLXRpdGxlIHtcbiAgICBmb250LXNpemU6IGNhbGModmFyKC0tc3BhY2VyLWJhc2UpICsgMnJlbSk7XG4gIH1cblxuICAuaGVyby1idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmhlcm8tYm9keSB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2VyLTQpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2VyLTQpO1xuICB9XG5cbiAgLmhlcm8taW5wdXQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc3BhY2VyLTIpO1xuICB9XG59XG4iLCIuZC1mbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmQtbm9uZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aXNpYmlsaXR5LWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmQtbWQtZmxleCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuIiwiLmp1c3RpZnktY29udGVudC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmFsaWduLWl0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIuY29kZSB7XG4gIC0tY29kZS1jb2xvdXItZGFyazogI2E5YmFjYjtcbiAgLS1jb2RlLWNvbG91ci1hbHQtZGFyazogI2I2YmFiZjtcbiAgLS1jb2RlLXRvb2xiYXItZGFyazogIzM0M2M0NTtcbiAgLS1jb2RlLWJvZHktZGFyazogIzE0MTcxYTtcbiAgLS1jb2RlLWNvbW1lbnQtZGFyazogIzVjNjc3MztcbiAgLS1jb2RlLWJsdWUtZGFyazogIzQ2YWZlMztcbiAgLS1jb2RlLWJsdWUtZ3JleS1kYXJrOiAjNWU4OGIwO1xuICAtLWNvZGUtcGluay1kYXJrOiAjZmY3ZGU5O1xuICAtLWNvZGUtcHVycGxlLWRhcms6ICNiOThlZmY7XG4gIC0tY29kZS1ncmVlbi1kYXJrOiAjNzBiZjUzO1xuICAtLWNvZGUtb3JhbmdlLWRhcms6ICNkOTY2Mjk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlci0yKTtcblxuICAmIGNvZGUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2RlLWNvbG91ci1kYXJrKTtcbiAgfVxufVxuXG4uY29kZS10b29sYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXItMSkgdmFyKC0tc3BhY2VyLTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXRvb2xiYXItZGFyayk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5jb2RlLWxhbmd1YWdlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNvZGUtYm9keSB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlci0xKSB2YXIoLS1zcGFjZXItMik7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgZm9udC1mYW1pbHk6IFwiRmlyYSBjb2RlXCIsIFwiQ291cmllciBOZXdcIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLWJvZHktZGFyayk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cbiAgJiBwcmUge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmNvZGUtY29tbWVudCxcbi5jb2RlLXF1b3RlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogdmFyKC0tY29kZS1jb21tZW50LWRhcmspO1xufVxuXG4uaHRtbC10YWctdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2RlLWNvbG91ci1hbHQtZGFyayk7XG59XG5cbi5odG1sLXRhZy1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWNvZGUtYmx1ZS1kYXJrKTtcbn1cblxuLmh0bWwtYXR0ci1uYW1lLFxuLmNvZGUtZG9jdGFnLFxuLmNvZGUta2V5d29yZCxcbi5jb2RlLWZvcm11bGEge1xuICBjb2xvcjogdmFyKC0tY29kZS1waW5rLWRhcmspO1xufVxuXG4uaHRtbC1hdHRyLXZhbHVlLFxuLmNvZGUtc3RyaW5nLFxuLmNvZGUtcmVnZXhwLFxuLmNvZGUtYWRkaXRpb24sXG4uY29kZS1hdHRyaWJ1dGUsXG4uY29kZS1tZXRhIC5jb2RlLXN0cmluZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2RlLXB1cnBsZS1kYXJrKTtcbn1cblxuXG4uY29kZS1zZWN0aW9uLFxuLmNvZGUtbmFtZSxcbi5jb2RlLXNlbGVjdG9yLXRhZyxcbi5jb2RlLWRlbGV0aW9uLFxuLmNvZGUtc3Vic3Qge1xuICBjb2xvcjogdmFyKC0tY29kZS1vcmFuZ2UtZGFyayk7XG59XG5cbi5jb2RlLWxpdGVyYWwge1xuICBjb2xvcjogdmFyKC0tY29kZS1ibHVlLWdyZXktZGFyayk7XG59XG5cbi5jb2RlLXN0cmluZyxcbi5jb2RlLXJlZ2V4cCxcbi5jb2RlLWFkZGl0aW9uLFxuLmNvZGUtYXR0cmlidXRlLFxuLmNvZGUtbWV0YSAuY29kZS1zdHJpbmcge1xuICBjb2xvcjogdmFyKC0tY29kZS1ncmVlbi1kYXJrKTtcbn1cblxuLmNvZGUtYXR0cixcbi5jb2RlLXZhcmlhYmxlLFxuLmNvZGUtdGVtcGxhdGUtdmFyaWFibGUsXG4uY29kZS10eXBlLFxuLmNvZGUtc2VsZWN0b3ItY2xhc3MsXG4uY29kZS1zZWxlY3Rvci1hdHRyLFxuLmNvZGUtc2VsZWN0b3ItcHNldWRvLFxuLmNvZGUtbnVtYmVyIHtcbiAgY29sb3I6IHZhcigtLWNvZGUtb3JhbmdlLWRhcmspO1xufVxuXG4uY29kZS1zeW1ib2wsXG4uY29kZS1idWxsZXQsXG4uY29kZS1saW5rLFxuLmNvZGUtbWV0YSxcbi5jb2RlLXNlbGVjdG9yLWlkLFxuLmNvZGUtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tY29kZS1ibHVlLWRhcmspO1xufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuLmNvZGUtYnVpbHRfaW4sXG4uY29kZS10aXRsZS5jbGFzc18sXG4uY29kZS1jbGFzcyAuY29kZS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2RlLW9yYW5nZS1kYXJrKTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuLmNvZGUtZW1waGFzaXMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jb2RlLXN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jb2RlLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi5wLTEge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXItMSk7XG59XG5cbi5wYi0xIHtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlci0xKTtcbn1cblxuLnAtNSB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlci01KTtcbn1cblxuLnB5LTMge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyLTMpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyLTMpO1xufVxuXG4ucHktNSB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXItNSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXItNSk7XG59XG5cbi5weC01IHtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2VyLTUpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlci01KTtcbn1cblxuLm10LTAge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubWItNCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlci00KTtcbn1cblxuLm1iLTUge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXItNSk7XG59XG5cbi5tYi0wIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnAtbWQtNSB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2VyLTUpO1xuICB9XG59XG4iLCIuYmctYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHktYmcpO1xufVxuXG4uYmctZGFyayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYig0OSwgMjAsIDY2KSAwJSwgcmdiYSg0OSwgMjAsIDY2LCAuNTgpIDUwJSwgcmdiYSg0OSwgMjAsIDY2LCAwKSAxMDAlKTtcbn1cblxuLmJnLWdsYXNzIHtcbiAgY29sb3I6IHZhcigtLWxpZ2h0KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sIHJnYmEoNDksIDI2LCA3NSwgLjMpLCByZ2JhKDE0LCA3LCAxOSwgLjUpKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItY29sb3I6ICNmZmZmZmYyZTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweDtcbn1cblxuLmJnLWdyYWRpZW50LWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiKDQ5LCAyMCwgNjYpIDAlLCByZ2JhKDQ5LCAyMCwgNjYsIC41OCkgNDAlLCByZ2JhKDQ5LCAyMCwgNjYsIDApIDEwMCUpO1xufVxuXG4uYmctZ3JhZGllbnQtZGFyayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYig0OSwgMjAsIDY2KSAwJSwgcmdiYSg0OSwgMjAsIDY2LCAuNTgpIDQwJSwgcmdiKDE0LCA3LCAxOSkgMTAwJSk7XG59XG4iLCIuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXItMyk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXItMyk7XG5cbiAgJiA+IGgyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXItNSk7XG4gIH1cblxuICAmID4gaDMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlci00KTtcbiAgfVxuXG4gICYgPiBoNCB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyLTMpO1xuICB9XG59XG5cbi5jb250ZW50LWltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY29udGVudC1ib3JkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDExMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCl7XG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyLTUpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXItNSk7XG4gIH1cbn1cbiIsIi52aWRlby1iZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYigzOCwgMTgsIDk3KSAwJSwgcmdiKDMyLCA0NCwgOTApIDUwJSwgcmdiKDE0LCA3LCAxOSkgMTAwJSk7XG59XG5cbi52aWRlby1wbGF5ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBhc3BlY3QtcmF0aW86IDE2Lzk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi52aWRlby10aXRsZSB7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCB2YXIoLS1kYXJrKTtcbn1cbiIsIi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuXG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdW5pdmVyc2FsICovXG4gICYgPiA6bm90KGNhcHRpb24pID4gKiA+ICoge1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXRhYmxlLWJnKTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gIH1cbn1cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgLnRhYmxlIHtcbiAgICBtaW4td2lkdGg6IDk2MHB4O1xuICB9XG59XG5cbnRib2R5LFxudGQsXG50Zm9vdCxcbnRoLFxudGhlYWQsXG50ciB7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xufVxuIiwiLnBvc3Qge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXItNSk7XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc3BhY2VyLTQpO1xuICB9XG5cbiAgPiBwOmZpcnN0LW9mLXR5cGUsXG4gID4gaW1nOmZpcnN0LWNoaWxkICsgcCB7XG4gICAgZm9udC1zaXplOiAxMzMuMzMzMzMzJTtcbiAgfVxufVxuXG4ucG9zdC1hdXRob3IsXG4ucG9zdC1hdXRob3IgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IHZhcigtLXNwYWNlci0xKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnBvc3QtYXV0aG9yLWltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbiIsIi5vZmZjYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTA0NTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDQwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1ib2R5LWNvbG91cik7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9keS1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctc20pO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4ub2ZmY2FudmFzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2VyLTEpO1xufVxuXG4ub2ZmY2FudmFzLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ub2ZmY2FudmFzLWJvZHkge1xuICBmbGV4LWdyb3c6IDE7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlci0xKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICAubmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLm9mZmNhbnZhczpwb3BvdmVyLW9wZW4ge1xuICBpbnNldDogdW5zZXQ7XG4gIHRvcDogdW5zZXQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IHVuc2V0O1xuICByaWdodDogMDtcbiAgYm90dG9tOiB1bnNldDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAub2ZmY2FudmFzIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm9mZmNhbnZhcy1ib2R5IHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuXG4gICAgLm5hdiB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICB9XG4gIH1cblxuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAub2ZmY2FudmFzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IHVuc2V0O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAubmF2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgfVxufVxuIiwiLmJveC1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIC41cmVtIDFyZW0gIzAwMDAwMDI2LCBpbnNldCAwIC0xcHggI2ZmZmZmZjI2O1xufVxuXG4uZHJvcC1zaGFkb3cge1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNXB4IC43NXJlbSAjMDAwMDAwODApO1xufVxuXG4uZHJvcC1zaGFkb3ctbmVvbiB7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coNXB4IDVweCAuNzVyZW0gI2ZmMDBkNzYzKSBkcm9wLXNoYWRvdygtNXB4IC01cHggLjc1cmVtICNkMGZmMDA2Myk7XG59XG4iLCIucmF5cyB7XG4gIC0tcmF5OlxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAxMDBkZWcsXG4gICAgICB2YXIoLS1zZWNvbmRhcnkpIDAlLFxuICAgICAgdmFyKC0tc2Vjb25kYXJ5KSA3JSxcbiAgICAgIHRyYW5zcGFyZW50IDEwJSxcbiAgICAgIHRyYW5zcGFyZW50IDEyJSxcbiAgICAgIHZhcigtLXNlY29uZGFyeSkgMTYlXG4gICAgKTtcblxuICAtLXJhaW5ib3c6XG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgIDEwMGRlZyxcbiAgICAgICM2MGE1ZmEgMTAlLFxuICAgICAgI2U4NzlmOSAxNSUsXG4gICAgICAjNjBhNWZhIDIwJSxcbiAgICAgICM1ZWVhZDQgMjUlLFxuICAgICAgIzYwYTVmYSAzMCVcbiAgICApO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyO1xufVxuXG4ucmF5cy1hbmltYXRlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXJheSksIHZhcigtLXJhaW5ib3cpO1xuICBmaWx0ZXI6IGJsdXIoMTBweCkgaW52ZXJ0KDEwMCUpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlLCA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUsIDIwMCU7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDEwMCUgMCUsICMwMDAgNDAlLCB0cmFuc3BhcmVudCA3MCUpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1yYXkpLCB2YXIoLS1yYWluYm93KTtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSwgMTAwJTtcbiAgICBtaXgtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTtcbiAgICBhbmltYXRpb246IHNtb290aC1iZyA2MHMgbGluZWFyIGluZmluaXRlO1xuICB9XG59XG5cbi5yYXlzLXN0YXRpYyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvc3RhdGljX3JheXMtc20uYXZpZlwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDIwcHgpIHtcbiAgLnJheXMtc3RhdGljIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1hZ2VzL3N0YXRpY19yYXlzLmF2aWZcIik7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbW9vdGgtYmcge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlLCA1MCUgNTAlO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAzNTAlIDUwJSwgMzUwJSA1MCU7XG4gIH1cbn1cbiIsIi5wb3NpdGlvbi1yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnotMiB7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG4iLCIuaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogY3VycmVudGNvbG9yO1xuICB0cmFuc2l0aW9uOiAuMnMgZWFzZS1pbi1vdXQgdHJhbnNmb3JtO1xufVxuIiwiLmNhcmQge1xuICAtLWNhcmQtYm9yZGVyLWNvbG9yOiAjZmZmZmZmMmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgY29sb3I6IHZhcigtLWxpZ2h0KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sIHJnYmEoNDksIDI2LCA3NSwgLjMpLCByZ2JhKDE0LCA3LCAxOSwgLjUpKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNhcmQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2VyLTEpO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jYXJkLWJvcmRlci1jb2xvcik7XG59XG5cbi5jYXJkLWJvZHkge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXItMSk7XG4gIG1hcmdpbjogMDtcbn1cbiIsIi5iYWNrLXRvLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IHZhcigtLXBhZGRpbmcteCk7XG4gIGJvdHRvbTogdmFyKC0tcGFkZGluZy15KTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG4gIGNvbG9yOiB2YXIoLS1saWdodCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzLCB2aXNpYmlsaXR5IC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3M7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKGZyb20gdmFyKC0tc2Vjb25kYXJ5KSBoIHMgNDAlKTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXByaW1hcnkpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cbn1cblxuLmJhY2stdG8tdG9wLnZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xufVxuIiwiLnN0cmV0Y2hlZC1saW5rOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBjb250ZW50OiBcIlwiO1xufVxuIiwiLnZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU6bm90KDpmb2N1cyk6bm90KDpmb2N1cy13aXRoaW4pOm5vdChjYXB0aW9uKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnZpc3VhbGx5LWhpZGRlbi1mb2N1c2FibGU6bm90KDpmb2N1cyk6bm90KDpmb2N1cy13aXRoaW4pIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuIiwiLnNlYXJjaC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2VhcmNoLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLnNlYXJjaC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc2VhcmNoLXNob3J0Y3V0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5zZWFyY2gtc2hvcnRjdXQga2JkIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLnNlYXJjaC1wb3BvdmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogNHJlbSBhdXRvIGF1dG8gYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4uc2VhcmNoLXBvcG92ZXI6OmJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG59XG5cbi5zZWFyY2gtaGVhZGVyIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG59XG5cbi5zZWFyY2gtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnNlYXJjaC1pbnB1dC1pY29uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xufVxuXG4uc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG59XG5cbi5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA2MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5zZWFyY2gtcmVzdWx0cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNlYXJjaC1lbXB0eSxcbi5zZWFyY2gtbG9hZGluZyxcbi5zZWFyY2gtZXJyb3Ige1xuICBwYWRkaW5nOiAycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbn1cblxuLnNlYXJjaC1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1kYW5nZXIsICNkYzM1NDUpO1xufVxuXG4uc2VhcmNoLXJlc3VsdC1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG59XG5cbi5zZWFyY2gtcmVzdWx0LWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4uc2VhcmNoLXJlc3VsdC1saW5rOmhvdmVyLFxuLnNlYXJjaC1yZXN1bHQtbGluazpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlYXJjaC1yZXN1bHQtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XG59XG5cbi5zZWFyY2gtcmVzdWx0LWRlc2Mge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zZWFyY2gtZm9vdGVyIHtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xufVxuXG4uc2VhcmNoLWZvb3RlciBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5zZWFyY2gtdGV4dCAge1xuICBkaXNwbGF5OiBub25lXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM5MHB4KSB7XG4gIC5zZWFyY2gtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5zZWFyY2gtc2hvcnRjdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn0iXX0= */