@charset "UTF-8";
/* ==========================================================================
   DRAFA marketing site — ported from the drafasite (Astro + Tailwind) design.
   Used only by layouts/marketing.html.erb (homepage, legal pages, account
   deletion). Nothing in here touches admin / venue_admin / the leaderboard,
   which keep application.scss.
   ========================================================================== */
/* --------------------------------------------------------------------------
   Fonts — Manrope variable, self-hosted (greek + latin + latin-ext subsets).
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Manrope Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/assets/manrope/manrope-greek-wght-normal-2896cd62.woff2") format("woff2-variations");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: "Manrope Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/assets/manrope/manrope-latin-ext-wght-normal-9b71bd72.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/assets/manrope/manrope-latin-wght-normal-757d91ba.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* --------------------------------------------------------------------------
   Design tokens — DRAFA brand palette (brand guide).
   -------------------------------------------------------------------------- */
:root {
  --color-brand: #1ce8a4; /* Dynamic Green */
  --color-brand-hover: #12c48a;
  --color-brand-tint: #dffbef;
  --color-ink: #212020; /* Baseline Black */
  --color-ink-soft: #2f2e2e;
  --color-ink-deep: #000000; /* Carbon Black */
  --color-paper: #f5f6f8;
  --color-surface: #ffffff;
  --color-muted: #5b6478;
  --color-border: #e6e6e6; /* Lightweight Gray */
  --color-danger: #ff6b6b;
  --color-danger-deep: #e04848;
  --font-sans: "Manrope Variable", "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --text-display-xl: clamp(2.25rem, 5vw, 4.25rem);
  --text-display-lg: clamp(1.875rem, 4vw, 3.25rem);
  --text-display-md: clamp(1.5rem, 2.8vw, 2.25rem);
  --container-content: 1280px;
  --header-height: 76px;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

@media (min-width: 768px) {
  :root {
    --header-height: 88px;
  }
}
/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  font-family: var(--font-sans);
  color: var(--color-ink);
  background: var(--color-paper);
}

body {
  margin: 0;
  background: var(--color-paper);
  font-feature-settings: "ss01", "cv11";
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: inherit;
  margin: 0;
}

p, ul, ol, dl, figure {
  margin: 0;
}

ul, ol {
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img, picture, video, svg {
  max-width: 100%;
  height: auto;
  display: block;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 3px;
  border-radius: 2px;
}

::-moz-selection {
  background: var(--color-brand);
  color: #0b1220;
}

::selection {
  background: var(--color-brand);
  color: #0b1220;
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------------
   Language switching. The layout sets `data-lang` on <html> (default "el");
   a tiny inline script restores the visitor's saved choice before paint.
   Two markup conventions are supported:
     - inline pairs from the `bi(el, en)` helper → .lang-el / .lang-en
     - the legal partials' blocks → .language-content.el-content / .en-content
   -------------------------------------------------------------------------- */
html[data-lang=el] .lang-en,
html[data-lang=el] .en-content,
html[data-lang=en] .lang-el,
html[data-lang=en] .el-content {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Layout primitives
   -------------------------------------------------------------------------- */
.container-content {
  width: 100%;
  max-width: var(--container-content);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.site-main {
  padding-top: var(--header-height);
}

/* Anchored sections must clear the fixed header when scrolled to. */
section[id],
.contact-card[id] {
  scroll-margin-top: calc(var(--header-height) + 1rem);
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: var(--color-ink);
  color: #fff;
  padding: 0.75rem 1.25rem;
  border-radius: 6px;
  z-index: 1000;
  transition: top 0.2s;
}

.skip-link:focus {
  top: 1rem;
}

/* --------------------------------------------------------------------------
   Components
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.005em;
  line-height: 1.2;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  will-change: transform;
  white-space: nowrap;
}

.btn svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

.btn-primary {
  background: var(--color-brand);
  color: #0b1220;
}

.btn-primary:hover {
  background: var(--color-brand-hover);
  color: #fff;
}

.btn-dark {
  background: var(--color-ink);
  color: #fff;
}

.btn-dark:hover {
  background: var(--color-ink-soft);
}

.btn-secondary {
  background: transparent;
  color: var(--color-paper);
  border-color: rgba(255, 255, 255, 0.4);
}

.btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
}

.btn-ghost {
  background: transparent;
  color: var(--color-ink);
  border-color: rgba(11, 18, 32, 0.15);
}

.btn-ghost:hover {
  border-color: var(--color-ink);
}

.btn-danger {
  background: var(--color-danger);
  color: #0b1220;
}

.btn-danger:hover {
  background: var(--color-danger-deep);
  color: #fff;
}

.btn-block {
  width: 100%;
}

.section-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-brand);
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: var(--color-paper);
  color: var(--color-ink);
  border: 1px solid var(--color-border);
}

.chip-brand {
  background: var(--color-brand-tint);
  color: var(--color-brand-hover);
  border-color: transparent;
}

.chip-dark {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.14);
}

/* Centered editorial section heading */
.section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  width: 100%;
  margin-inline: auto;
}

.section-heading h2 {
  font-size: var(--text-display-md);
  max-width: 48rem;
  margin-inline: auto;
}

.section-heading p {
  font-size: 1.125rem;
  color: var(--color-muted);
  max-width: 42rem;
  margin-inline: auto;
}

/* Common vertical rhythm for homepage sections */
.section {
  padding-block: 6rem;
}

.section-surface {
  background: var(--color-surface);
}

.section-paper {
  background: var(--color-paper);
}

.section-ink {
  background: var(--color-ink);
  color: #fff;
}

@media (min-width: 768px) {
  .section {
    padding-block: 8rem;
  }
}
/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header {
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 50;
  height: var(--header-height);
  background: rgba(33, 32, 32, 0.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  color: #fff;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: 1rem;
  padding-right: 1rem;
}

.site-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-left: 0.75rem;
  perspective: 800px;
}

.site-logo__mark {
  display: inline-flex;
  transform-style: preserve-3d;
  transition: filter 300ms ease;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
}

.site-logo__mark img {
  height: 2.75rem;
  width: auto;
  border-radius: 0.5rem;
  transform-style: preserve-3d;
  transform-origin: center center;
  backface-visibility: visible;
  will-change: transform;
  transition: transform 700ms cubic-bezier(0.4, 0.2, 0.2, 1);
}

.site-logo:hover .site-logo__mark img,
.site-logo:focus-visible .site-logo__mark img {
  transform: rotateY(360deg);
  transition-duration: 900ms;
}

.site-logo:hover .site-logo__mark,
.site-logo:focus-visible .site-logo__mark {
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.45));
}

.site-logo__word {
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
}

.site-nav {
  display: none;
  align-items: center;
  gap: 1.5rem;
}

.site-nav a {
  font-size: 0.875rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.2s ease;
}

.site-nav a:hover,
.site-nav a[aria-current=page] {
  color: #fff;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.lang-switch {
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  padding: 0.375rem 0.625rem;
  border-radius: 999px;
  transition: color 0.2s ease, border-color 0.2s ease;
  line-height: 1.2;
}

.lang-switch:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.6);
}

.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: var(--color-brand);
  color: var(--color-ink);
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.header-cta:hover {
  background: var(--color-brand-hover);
  color: #fff;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: transparent;
  color: #fff;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.icon-btn:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

@media (min-width: 640px) {
  .lang-switch {
    display: inline-flex;
  }
}
@media (min-width: 768px) {
  .site-header__inner {
    padding-right: 1.5rem;
  }
  .site-logo {
    padding-left: 1rem;
  }
  .site-logo__mark img {
    height: 3.5rem;
  }
  .site-logo__word {
    font-size: 1.875rem;
  }
  .site-header__actions {
    gap: 0.75rem;
  }
}
@media (min-width: 1024px) {
  .site-header__inner {
    padding-right: 2.5rem;
  }
  .site-nav {
    display: flex;
  }
  .mobile-toggle {
    display: none;
  }
}
@media (min-width: 1280px) {
  .site-nav {
    gap: 2rem;
  }
}
/* --------------------------------------------------------------------------
   Mobile navigation panel
   -------------------------------------------------------------------------- */
.mobile-panel {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--color-ink);
  color: #fff;
  display: none;
  flex-direction: column;
  padding: 1.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.mobile-panel.is-open {
  display: flex;
}

.mobile-panel.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.mobile-panel__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mobile-panel__brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.mobile-panel__brand img {
  height: 2.25rem;
  width: auto;
  border-radius: 0.375rem;
}

.mobile-panel__brand span {
  font-weight: 800;
  letter-spacing: -0.025em;
  font-size: 1.5rem;
  line-height: 1;
}

.mobile-panel__nav {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
  padding-block: 2rem;
}

.mobile-panel__nav a {
  font-size: 1.875rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #fff;
  transition: color 0.2s ease;
}

.mobile-panel__nav a:hover {
  color: var(--color-brand);
}

.mobile-panel__bottom {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.mobile-panel__stores {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.mobile-panel .lang-switch {
  display: inline-flex;
  align-self: flex-start;
  font-size: 0.875rem;
  font-weight: 500;
  padding: 0.5rem 1rem;
}

body.nav-open {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Store pills (App Store / Google Play)
   -------------------------------------------------------------------------- */
.store-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.625rem 1.25rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.store-pill:hover {
  border-color: #fff;
}

.store-pill--solid {
  background: var(--color-brand);
  color: var(--color-ink);
  border-color: var(--color-brand);
}

.store-pill--solid:hover {
  background: var(--color-brand-hover);
  border-color: var(--color-brand-hover);
  color: #fff;
}

.store-pill svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Flash messages (contact form / account deletion feedback)
   -------------------------------------------------------------------------- */
.flash {
  position: fixed;
  z-index: 200;
  left: 50%;
  bottom: 1.25rem;
  transform: translateX(-50%);
  width: min(100% - 2rem, 40rem);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  background: var(--color-ink);
  color: #fff;
  box-shadow: 0 20px 40px rgba(11, 18, 32, 0.28);
  border-left: 4px solid var(--color-brand);
  font-size: 0.95rem;
  line-height: 1.5;
}

.flash--alert {
  border-left-color: var(--color-danger);
}

.flash__close {
  margin-left: auto;
  flex-shrink: 0;
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.7);
  padding: 0 0.25rem;
  font-size: 1.25rem;
  line-height: 1;
}

.flash__close:hover {
  color: #fff;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  overflow: hidden;
  background: var(--color-ink);
  color: #fff;
}

.hero__bg {
  position: absolute;
  inset: 0;
}

.hero__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  opacity: 0.8;
}

.hero__bg::before,
.hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
}

.hero__bg::before {
  background: linear-gradient(to right, rgba(33, 32, 32, 0.85), rgba(33, 32, 32, 0.45) 50%, rgba(33, 32, 32, 0.2));
}

.hero__bg::after {
  background: linear-gradient(to bottom, rgba(33, 32, 32, 0.2), transparent 50%, rgba(33, 32, 32, 0.7));
}

.hero__content {
  position: relative;
  z-index: 10;
  padding-top: 5rem;
  padding-bottom: 4rem;
}

.hero__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  max-width: 48rem;
}

.hero__eyebrow {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
}

.hero-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.05em;
  font-weight: 800;
  font-size: clamp(1.875rem, 4.2vw, 3.75rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55), 0 10px 26px rgba(0, 0, 0, 0.45);
}

.hero-title span {
  display: block;
}

.hero__subtitle {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.85);
  max-width: 36rem;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.25rem;
}

.hero__stats {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: 32rem;
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.hero__stats dt {
  font-weight: 800;
  font-size: 1.5rem;
  line-height: 1.1;
}

.hero__stats dd {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.375;
}

@media (min-width: 768px) {
  .hero__content {
    padding-top: 7rem;
    padding-bottom: 6rem;
  }
  .hero__subtitle {
    font-size: 1.125rem;
  }
}
/* --------------------------------------------------------------------------
   How it works — three phone frames
   -------------------------------------------------------------------------- */
.how__intro {
  margin-bottom: 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
}

.how__intro h2 {
  font-size: var(--text-display-md);
  max-width: 48rem;
}

.how__intro p {
  color: var(--color-muted);
  max-width: 42rem;
}

.how__steps {
  display: grid;
  gap: 2.5rem;
}

.how__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.how__step-index {
  margin-top: 1.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-brand-hover);
}

.how__step h3 {
  margin-top: 0.5rem;
  font-size: 1.25rem;
}

.how__step p {
  margin-top: 0.75rem;
  color: var(--color-muted);
  max-width: 20rem;
}

@media (min-width: 768px) {
  .how__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
  }
  .how__step h3 {
    font-size: 1.5rem;
  }
}
@media (min-width: 1024px) {
  .how__steps {
    gap: 3rem;
  }
}
.phone-frame {
  position: relative;
  width: 100%;
  max-width: 280px;
  aspect-ratio: 9/19.5;
  filter: drop-shadow(0 24px 40px rgba(11, 18, 32, 0.28));
}

.phone-frame__body {
  position: absolute;
  inset: 0;
  border-radius: 2.2rem;
  background: linear-gradient(160deg, #2a2a2a 0%, #0a0a0a 55%, #1a1a1a 100%);
  padding: 0.6rem;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), inset 0 0 0 2px #000;
}

.phone-frame__screen {
  position: absolute;
  inset: 0.6rem;
  border-radius: 1.75rem;
  overflow: hidden;
  background: #000;
}

.phone-frame__screen img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top center;
     object-position: top center;
}

/* --------------------------------------------------------------------------
   Sports
   -------------------------------------------------------------------------- */
.sports__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  max-width: 56rem;
  margin: 3rem auto 0;
}

.sport-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  font-size: 1rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.sport-pill__icon {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 1.125rem;
}

@media (min-width: 768px) {
  .sports__list {
    gap: 1rem;
  }
}
/* --------------------------------------------------------------------------
   Community
   -------------------------------------------------------------------------- */
.pillars {
  display: grid;
  gap: 1.25rem;
  margin-top: 3rem;
}

.pillar {
  border-radius: 1rem;
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pillar__icon {
  display: inline-flex;
  width: 3rem;
  height: 3rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: var(--color-brand-tint);
  font-size: 1.5rem;
}

.pillar h3 {
  font-size: 1.25rem;
}

.pillar p {
  color: var(--color-muted);
}

@media (min-width: 768px) {
  .pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* --------------------------------------------------------------------------
   DRAFA Manager
   -------------------------------------------------------------------------- */
.manager {
  display: grid;
  gap: 2.5rem;
}

.manager__media {
  border-radius: 1.5rem;
  overflow: hidden;
  aspect-ratio: 16/10;
  background: #000;
}

.manager__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.manager__copy {
  max-width: 36rem;
}

.manager__copy h2 {
  margin-top: 1rem;
  font-weight: 800;
  font-size: var(--text-display-lg);
}

.manager__copy p {
  margin-top: 1.25rem;
  color: var(--color-muted);
  font-size: 1.125rem;
}

.manager__tags {
  margin-top: 1.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

@media (min-width: 1024px) {
  .manager {
    grid-template-columns: 1fr 0.9fr;
    align-items: center;
  }
}
/* --------------------------------------------------------------------------
   For venues — dark teaser with stats + the contact form
   -------------------------------------------------------------------------- */
.venues {
  position: relative;
  overflow: hidden;
}

.venues__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.venues__glow::before,
.venues__glow::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(64px);
}

.venues__glow::before {
  top: -8rem;
  right: -8rem;
  width: 520px;
  height: 520px;
  background: rgba(28, 232, 164, 0.2);
}

.venues__glow::after {
  bottom: -10rem;
  left: -6rem;
  width: 420px;
  height: 420px;
  background: rgba(30, 107, 195, 0.25);
}

.venues__grid {
  position: relative;
  display: grid;
  gap: 2.5rem;
  padding-block: 6rem;
}

.venues__copy {
  max-width: 42rem;
}

.venues__copy h2 {
  margin-top: 1rem;
  font-weight: 800;
  font-size: var(--text-display-lg);
}

.venues__copy > p {
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.75);
  font-size: 1.125rem;
  max-width: 36rem;
}

.venues__stats {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.stat-card {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1.25rem;
}

.stat-card__value {
  font-weight: 800;
  font-size: 1.875rem;
  color: var(--color-brand);
  line-height: 1.1;
}

.stat-card__label {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.venues__benefits {
  margin-top: 2rem;
  display: grid;
  gap: 1rem;
}

.benefit {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
}

.benefit__icon {
  flex-shrink: 0;
  display: inline-flex;
  width: 2.5rem;
  height: 2.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: rgba(28, 232, 164, 0.14);
  color: var(--color-brand);
}

.benefit__icon svg {
  width: 1.25rem;
  height: 1.25rem;
}

.benefit h3 {
  font-size: 1rem;
  font-weight: 700;
}

.benefit p {
  margin-top: 0.25rem;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
}

@media (min-width: 768px) {
  .venues__grid {
    padding-block: 7rem;
  }
  .stat-card__value {
    font-size: 2.25rem;
  }
}
@media (min-width: 1024px) {
  .venues__grid {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }
}
/* Contact form card */
.contact-card {
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 1.75rem;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.contact-card h3 {
  font-size: 1.375rem;
  font-weight: 800;
}

.contact-card > p {
  margin-top: 0.5rem;
  font-size: 0.925rem;
  color: rgba(255, 255, 255, 0.7);
}

.contact-form {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.form-group label {
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.form-control {
  width: 100%;
  padding: 0.8rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(0, 0, 0, 0.25);
  color: #fff;
  font-size: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  outline: none;
}

.form-control::-moz-placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.form-control::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.form-control:focus {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 3px rgba(28, 232, 164, 0.2);
}

textarea.form-control {
  min-height: 7rem;
  resize: vertical;
}

.form-help {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.55);
}

.cf-turnstile {
  min-height: 65px;
}

@media (min-width: 768px) {
  .contact-card {
    padding: 2.25rem;
  }
}
/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */
.faq__list {
  max-width: 48rem;
  margin: 3.5rem auto 0;
  border-top: 1px solid var(--color-border);
}

.faq__item {
  border-bottom: 1px solid var(--color-border);
}

.faq__item details {
  padding-block: 1.5rem;
}

.faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
  font-size: 1.125rem;
  font-weight: 600;
}

.faq__item summary::-webkit-details-marker {
  display: none;
}

.faq__marker {
  font-size: 1.5rem;
  color: var(--color-brand);
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.faq__item details[open] .faq__marker {
  transform: rotate(45deg);
}

.faq__answer {
  margin-top: 1rem;
  color: var(--color-muted);
  line-height: 1.7;
}

@media (min-width: 640px) {
  .faq__item summary {
    font-size: 1.25rem;
  }
}
/* --------------------------------------------------------------------------
   Elevate Greece strip
   -------------------------------------------------------------------------- */
.elevate {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
}

.elevate__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding-block: 2.5rem;
  text-align: center;
}

.elevate__inner p {
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted);
  font-weight: 600;
}

.elevate__inner img {
  width: min(420px, 100%);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer {
  background: var(--color-ink);
  color: #fff;
}

.site-footer__grid {
  display: grid;
  gap: 2.5rem;
  padding-block: 4rem;
}

.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.site-footer__brand img {
  height: 2.5rem;
  width: auto;
  border-radius: 0.375rem;
}

.site-footer__brand span {
  font-weight: 800;
  letter-spacing: -0.025em;
  font-size: 1.5rem;
  line-height: 1;
}

.site-footer__tagline {
  margin-top: 1.25rem;
  color: rgba(255, 255, 255, 0.7);
  max-width: 24rem;
  font-size: 0.875rem;
}

.site-footer__stores {
  margin-top: 1.5rem;
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.site-footer__stores .store-pill {
  font-size: 0.75rem;
  padding: 0.5rem 1rem;
  border-color: rgba(255, 255, 255, 0.2);
}

.site-footer__follow {
  margin-top: 1.5rem;
}

.site-footer__heading {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 600;
}

.site-footer__heading--sm {
  font-size: 0.75rem;
}

.site-footer__social {
  margin-top: 0.75rem;
  display: flex;
  gap: 0.75rem;
}

.site-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.site-footer__social a:hover {
  color: #fff;
  border-color: #fff;
}

.site-footer__social svg {
  width: 1.25rem;
  height: 1.25rem;
}

.site-footer__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.site-footer__links a {
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.2s ease;
}

.site-footer__links a:hover {
  color: #fff;
}

.site-footer__email {
  padding-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
}

.site-footer__email svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.site-footer__email a {
  word-break: break-all;
  color: inherit;
}

.site-footer__email a:hover {
  color: #fff;
}

.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.site-footer__bottom-inner {
  padding-block: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
}

@media (min-width: 640px) {
  .site-footer__bottom-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
@media (min-width: 1024px) {
  .site-footer__grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
  }
}
/* --------------------------------------------------------------------------
   Inner pages — dark page hero + article card (terms / privacy / cookies)
   -------------------------------------------------------------------------- */
.page-hero {
  background: var(--color-ink);
  color: #fff;
}

.page-hero__inner {
  max-width: 48rem;
  text-align: center;
  padding-top: 4rem;
  padding-bottom: 3.5rem;
}

.page-hero__inner h1 {
  margin-top: 1rem;
  font-weight: 800;
  font-size: var(--text-display-lg);
  text-wrap: balance;
}

.page-hero__inner p {
  margin-top: 1.25rem;
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.75);
  max-width: 42rem;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .page-hero__inner {
    padding-top: 6rem;
    padding-bottom: 5rem;
  }
}
.legal {
  padding-block: 3rem 6rem;
}

.legal__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.legal__nav a {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-muted);
  border: 1px solid var(--color-border);
  background: #fff;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.legal__nav a:hover {
  color: var(--color-ink);
  border-color: var(--color-ink);
}

.legal__nav a[aria-current=page] {
  background: var(--color-ink);
  border-color: var(--color-ink);
  color: #fff;
}

/* The legal partials render both languages, each with its own <h1> and
   .intro lead. The page hero above already carries the title, so the
   partial's <h1> is hidden and the lead paragraph becomes the opener. */
.legal-article {
  max-width: 52rem;
  margin-inline: auto;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 1.5rem;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  box-shadow: 0 20px 50px rgba(11, 18, 32, 0.06);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-ink-soft);
}

.legal-article .language-content > h1 {
  display: none;
}

.legal-article p.intro {
  font-size: 1.125rem;
  color: var(--color-muted);
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--color-border);
}

.legal-article section {
  margin-bottom: 2.25rem;
}

.legal-article h2 {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--color-ink);
  margin: 0 0 1rem;
}

.legal-article h3 {
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-ink);
  margin: 1.5rem 0 0.75rem;
}

.legal-article p {
  margin-bottom: 0.9rem;
}

.legal-article p.subsection {
  padding-left: 1rem;
  border-left: 2px solid var(--color-brand-tint);
}

.legal-article ul,
.legal-article ol {
  padding-left: 1.5rem;
  margin: 0.5rem 0 1.25rem;
}

.legal-article ul {
  list-style: disc;
}

.legal-article ol {
  list-style: decimal;
}

.legal-article li {
  margin-bottom: 0.5rem;
}

.legal-article .highlight {
  font-weight: 700;
  color: var(--color-ink);
}

.legal-article a {
  color: var(--color-brand-hover);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.legal-article a:hover {
  color: var(--color-ink);
}

.legal-article .contact {
  margin-top: 2.5rem;
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--color-paper);
  border: 1px solid var(--color-border);
}

.legal-article .contact h3 {
  margin-top: 0;
}

.legal-article .contact p:last-child {
  margin-bottom: 0;
}

.legal-article table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  margin: 0.5rem 0 1.25rem;
}

.legal-article th,
.legal-article td {
  text-align: left;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--color-border);
  vertical-align: top;
}

/* --------------------------------------------------------------------------
   Account deletion — dark card
   -------------------------------------------------------------------------- */
.account-delete {
  background: var(--color-ink);
  color: #fff;
  min-height: calc(100vh - var(--header-height));
  display: flex;
  align-items: center;
  padding-block: 3rem 5rem;
}

.account-delete__inner {
  width: 100%;
  max-width: 34rem;
  margin-inline: auto;
}

.account-delete__title {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.account-delete__title h1 {
  font-weight: 800;
  font-size: var(--text-display-md);
}

.account-delete__title h1 .accent {
  color: var(--color-brand);
}

.account-delete__title p {
  color: rgba(255, 255, 255, 0.7);
  max-width: 28rem;
}

.account-card {
  margin-top: 2rem;
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 1.75rem;
}

.account-card .alert {
  padding: 0.9rem 1rem;
  margin-bottom: 1.25rem;
  border-radius: 0.75rem;
  background: rgba(255, 107, 107, 0.12);
  border: 1px solid rgba(255, 107, 107, 0.35);
  color: var(--color-danger);
  font-size: 0.925rem;
}

.warning-box {
  border-radius: 1rem;
  padding: 1.125rem 1.25rem;
  background: rgba(255, 107, 107, 0.08);
  border: 1px solid rgba(255, 107, 107, 0.3);
  color: rgba(255, 255, 255, 0.85);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.925rem;
}

.warning-box h2 {
  font-size: 1.05rem;
  color: var(--color-danger);
}

.account-form {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

.password-field {
  position: relative;
}

.password-field .form-control {
  padding-right: 4.5rem;
}

.password-toggle {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  color: var(--color-brand);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.35rem 0.5rem;
  border-radius: 0.5rem;
}

.password-toggle:hover {
  background: rgba(28, 232, 164, 0.12);
}

.form-check {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.form-check input {
  margin-top: 0.3rem;
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  accent-color: var(--color-brand);
  cursor: pointer;
}

.form-check label {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
}

@media (min-width: 640px) {
  .account-card {
    padding: 2.25rem;
  }
}
/* --------------------------------------------------------------------------
   Scroll-triggered reveal. Any [data-reveal] slides into place once ~15% of
   it enters the viewport. Value picks the direction (up | down | left |
   right | scale). [data-reveal-group] children get a 110 ms stagger via
   --reveal-index (set by the script in the layout).
   -------------------------------------------------------------------------- */
[data-reveal] {
  opacity: 0;
  transform: translate3d(0, var(--reveal-distance, 40px), 0);
  transition: opacity 950ms var(--ease-out-expo), transform 950ms var(--ease-out-expo);
  transition-delay: calc(var(--reveal-index, 0) * 110ms);
  will-change: opacity, transform;
}

[data-reveal=down] {
  transform: translate3d(0, calc(var(--reveal-distance, 40px) * -1), 0);
}

[data-reveal=left] {
  transform: translate3d(calc(var(--reveal-distance, 60px) * -1), 0, 0);
}

[data-reveal=right] {
  transform: translate3d(var(--reveal-distance, 60px), 0, 0);
}

[data-reveal=scale] {
  transform: scale(0.94);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* --------------------------------------------------------------------------
   Custom cursor — a precise dot and a lagging ring. Only active when the
   layout script adds .has-custom-cursor (never on touch / reduced motion).
   -------------------------------------------------------------------------- */
html.has-custom-cursor,
html.has-custom-cursor a,
html.has-custom-cursor button,
html.has-custom-cursor [role=button],
html.has-custom-cursor summary,
html.has-custom-cursor label,
html.has-custom-cursor input,
html.has-custom-cursor select,
html.has-custom-cursor textarea {
  cursor: none;
}

#cursor-dot,
#cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 9999;
  transform: translate3d(-100px, -100px, 0);
  transition: opacity 200ms ease;
  opacity: 0;
}

#cursor-dot {
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  border-radius: 50%;
  background: var(--color-brand);
  box-shadow: 0 0 12px rgba(28, 232, 164, 0.6);
}

#cursor-ring {
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border-radius: 50%;
  border: 1.5px solid rgba(28, 232, 164, 0.7);
  mix-blend-mode: difference;
  transition: width 200ms ease, height 200ms ease, margin 200ms ease, background-color 200ms ease, opacity 200ms ease;
}

#cursor-ring.is-hover {
  width: 52px;
  height: 52px;
  margin: -26px 0 0 -26px;
  background: rgba(28, 232, 164, 0.15);
  border-color: rgba(28, 232, 164, 0.9);
}

html.has-custom-cursor #cursor-dot,
html.has-custom-cursor #cursor-ring {
  opacity: 1;
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .site-logo__mark img,
  .site-logo:hover .site-logo__mark img,
  .site-logo:focus-visible .site-logo__mark img {
    transform: none;
    transition: none;
  }
}

/*# sourceMappingURL=data:application/json;base64,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LFdBQVc7RUFDWCxZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQiwyQ0FBMkM7RUFDM0MsMEJBQTBCO0VBQzFCLG1IQUFtSDtBQUNySDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLG9DQUFvQztFQUNwQyxxQ0FBcUM7QUFDdkM7O0FBRUE7O0VBRUUsVUFBVTtBQUNaOztBQUVBOzsrRUFFK0U7QUFDL0U7RUFDRTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBOzs7SUFHRSxzQ0FBc0M7SUFDdEMsdUNBQXVDO0lBQ3ZDLHVDQUF1QztFQUN6QztFQUNBO0lBQ0UsVUFBVTtJQUNWLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7RUFDQTs7O0lBR0UsZUFBZTtJQUNmLGdCQUFnQjtFQUNsQjtBQUNGIiwiZmlsZSI6Im1hcmtldGluZy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRFJBRkEgbWFya2V0aW5nIHNpdGUg4oCUIHBvcnRlZCBmcm9tIHRoZSBkcmFmYXNpdGUgKEFzdHJvICsgVGFpbHdpbmQpIGRlc2lnbi5cbiAgIFVzZWQgb25seSBieSBsYXlvdXRzL21hcmtldGluZy5odG1sLmVyYiAoaG9tZXBhZ2UsIGxlZ2FsIHBhZ2VzLCBhY2NvdW50XG4gICBkZWxldGlvbikuIE5vdGhpbmcgaW4gaGVyZSB0b3VjaGVzIGFkbWluIC8gdmVudWVfYWRtaW4gLyB0aGUgbGVhZGVyYm9hcmQsXG4gICB3aGljaCBrZWVwIGFwcGxpY2F0aW9uLnNjc3MuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZvbnRzIOKAlCBNYW5yb3BlIHZhcmlhYmxlLCBzZWxmLWhvc3RlZCAoZ3JlZWsgKyBsYXRpbiArIGxhdGluLWV4dCBzdWJzZXRzKS5cbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTWFucm9wZSBWYXJpYWJsZVwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDIwMCA4MDA7XG4gIHNyYzogdXJsKFwibWFucm9wZS9tYW5yb3BlLWdyZWVrLXdnaHQtbm9ybWFsLndvZmYyXCIpIGZvcm1hdChcIndvZmYyLXZhcmlhdGlvbnNcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LCBVKzAzN0EtMDM3RiwgVSswMzg0LTAzOEEsIFUrMDM4QywgVSswMzhFLTAzQTEsIFUrMDNBMy0wM0ZGO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1hbnJvcGUgVmFyaWFibGVcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiAyMDAgODAwO1xuICBzcmM6IHVybChcIm1hbnJvcGUvbWFucm9wZS1sYXRpbi1leHQtd2dodC1ub3JtYWwud29mZjJcIikgZm9ybWF0KFwid29mZjItdmFyaWF0aW9uc1wiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTWFucm9wZSBWYXJpYWJsZVwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDIwMCA4MDA7XG4gIHNyYzogdXJsKFwibWFucm9wZS9tYW5yb3BlLWxhdGluLXdnaHQtbm9ybWFsLndvZmYyXCIpIGZvcm1hdChcIndvZmYyLXZhcmlhdGlvbnNcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERlc2lnbiB0b2tlbnMg4oCUIERSQUZBIGJyYW5kIHBhbGV0dGUgKGJyYW5kIGd1aWRlKS5cbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG46cm9vdCB7XG4gIC0tY29sb3ItYnJhbmQ6ICMxY2U4YTQ7IC8qIER5bmFtaWMgR3JlZW4gKi9cbiAgLS1jb2xvci1icmFuZC1ob3ZlcjogIzEyYzQ4YTtcbiAgLS1jb2xvci1icmFuZC10aW50OiAjZGZmYmVmO1xuICAtLWNvbG9yLWluazogIzIxMjAyMDsgLyogQmFzZWxpbmUgQmxhY2sgKi9cbiAgLS1jb2xvci1pbmstc29mdDogIzJmMmUyZTtcbiAgLS1jb2xvci1pbmstZGVlcDogIzAwMDAwMDsgLyogQ2FyYm9uIEJsYWNrICovXG4gIC0tY29sb3ItcGFwZXI6ICNmNWY2Zjg7XG4gIC0tY29sb3Itc3VyZmFjZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1tdXRlZDogIzViNjQ3ODtcbiAgLS1jb2xvci1ib3JkZXI6ICNlNmU2ZTY7IC8qIExpZ2h0d2VpZ2h0IEdyYXkgKi9cbiAgLS1jb2xvci1kYW5nZXI6ICNmZjZiNmI7XG4gIC0tY29sb3ItZGFuZ2VyLWRlZXA6ICNlMDQ4NDg7XG4gIC0tZm9udC1zYW5zOiBcIk1hbnJvcGUgVmFyaWFibGVcIiwgXCJNYW5yb3BlXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC0tdGV4dC1kaXNwbGF5LXhsOiBjbGFtcCgyLjI1cmVtLCA1dncsIDQuMjVyZW0pO1xuICAtLXRleHQtZGlzcGxheS1sZzogY2xhbXAoMS44NzVyZW0sIDR2dywgMy4yNXJlbSk7XG4gIC0tdGV4dC1kaXNwbGF5LW1kOiBjbGFtcCgxLjVyZW0sIDIuOHZ3LCAyLjI1cmVtKTtcbiAgLS1jb250YWluZXItY29udGVudDogMTI4MHB4O1xuICAtLWhlYWRlci1oZWlnaHQ6IDc2cHg7XG4gIC0tZWFzZS1vdXQtZXhwbzogY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICA6cm9vdCB7XG4gICAgLS1oZWFkZXItaGVpZ2h0OiA4OHB4O1xuICB9XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgQmFzZVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zYW5zKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWluayk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXBhcGVyKTtcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcGFwZXIpO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwic3MwMVwiLCBcImN2MTFcIjtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zYW5zKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbn1cblxucCwgdWwsIG9sLCBkbCwgZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG51bCwgb2wge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaW1nLCBwaWN0dXJlLCB2aWRlbywgc3ZnIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5idXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3ItYnJhbmQpO1xuICBvdXRsaW5lLW9mZnNldDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYnJhbmQpO1xuICBjb2xvcjogIzBiMTIyMDtcbn1cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBMYW5ndWFnZSBzd2l0Y2hpbmcuIFRoZSBsYXlvdXQgc2V0cyBgZGF0YS1sYW5nYCBvbiA8aHRtbD4gKGRlZmF1bHQgXCJlbFwiKTtcbiAgIGEgdGlueSBpbmxpbmUgc2NyaXB0IHJlc3RvcmVzIHRoZSB2aXNpdG9yJ3Mgc2F2ZWQgY2hvaWNlIGJlZm9yZSBwYWludC5cbiAgIFR3byBtYXJrdXAgY29udmVudGlvbnMgYXJlIHN1cHBvcnRlZDpcbiAgICAgLSBpbmxpbmUgcGFpcnMgZnJvbSB0aGUgYGJpKGVsLCBlbilgIGhlbHBlciDihpIgLmxhbmctZWwgLyAubGFuZy1lblxuICAgICAtIHRoZSBsZWdhbCBwYXJ0aWFscycgYmxvY2tzIOKGkiAubGFuZ3VhZ2UtY29udGVudC5lbC1jb250ZW50IC8gLmVuLWNvbnRlbnRcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5odG1sW2RhdGEtbGFuZz1lbF0gLmxhbmctZW4sXG5odG1sW2RhdGEtbGFuZz1lbF0gLmVuLWNvbnRlbnQsXG5odG1sW2RhdGEtbGFuZz1lbl0gLmxhbmctZWwsXG5odG1sW2RhdGEtbGFuZz1lbl0gLmVsLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBMYXlvdXQgcHJpbWl0aXZlc1xuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb250YWluZXItY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1jb250ZW50KTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgcGFkZGluZy1pbmxpbmU6IGNsYW1wKDFyZW0sIDR2dywgMi41cmVtKTtcbn1cblxuLnNpdGUtbWFpbiB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbn1cblxuLyogQW5jaG9yZWQgc2VjdGlvbnMgbXVzdCBjbGVhciB0aGUgZml4ZWQgaGVhZGVyIHdoZW4gc2Nyb2xsZWQgdG8uICovXG5zZWN0aW9uW2lkXSxcbi5jb250YWN0LWNhcmRbaWRdIHtcbiAgc2Nyb2xsLW1hcmdpbi10b3A6IGNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyAxcmVtKTtcbn1cblxuLnNraXAtbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTAwcHg7XG4gIGxlZnQ6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluayk7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMnM7XG59XG5cbi5za2lwLWxpbms6Zm9jdXMge1xuICB0b3A6IDFyZW07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBDb21wb25lbnRzXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuODc1cmVtIDEuNXJlbTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2Fucyk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5idG4gc3ZnIHtcbiAgd2lkdGg6IDEuMTI1cmVtO1xuICBoZWlnaHQ6IDEuMTI1cmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgY29sb3I6ICMwYjEyMjA7XG59XG5cbi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kLWhvdmVyKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idG4tZGFyayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluayk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLWRhcms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1pbmstc29mdCk7XG59XG5cbi5idG4tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wYXBlcik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuXG4uYnRuLXNlY29uZGFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLmJ0bi1naG9zdCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDExLCAxOCwgMzIsIDAuMTUpO1xufVxuXG4uYnRuLWdob3N0OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1pbmspO1xufVxuXG4uYnRuLWRhbmdlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWRhbmdlcik7XG4gIGNvbG9yOiAjMGIxMjIwO1xufVxuXG4uYnRuLWRhbmdlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWRhbmdlci1kZWVwKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idG4tYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNlY3Rpb24tbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kKTtcbn1cblxuLmNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC44NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcGFwZXIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmNoaXAtYnJhbmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icmFuZC10aW50KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNoaXAtZGFyayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG59XG5cbi8qIENlbnRlcmVkIGVkaXRvcmlhbCBzZWN0aW9uIGhlYWRpbmcgKi9cbi5zZWN0aW9uLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi5zZWN0aW9uLWhlYWRpbmcgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtZGlzcGxheS1tZCk7XG4gIG1heC13aWR0aDogNDhyZW07XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi5zZWN0aW9uLWhlYWRpbmcgcCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIG1heC13aWR0aDogNDJyZW07XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi8qIENvbW1vbiB2ZXJ0aWNhbCByaHl0aG0gZm9yIGhvbWVwYWdlIHNlY3Rpb25zICovXG4uc2VjdGlvbiB7XG4gIHBhZGRpbmctYmxvY2s6IDZyZW07XG59XG5cbi5zZWN0aW9uLXN1cmZhY2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdXJmYWNlKTtcbn1cblxuLnNlY3Rpb24tcGFwZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wYXBlcik7XG59XG5cbi5zZWN0aW9uLWluayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluayk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb24ge1xuICAgIHBhZGRpbmctYmxvY2s6IDhyZW07XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBIZWFkZXJcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0LWlubGluZTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA1MDtcbiAgaGVpZ2h0OiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgzMywgMzIsIDMyLCAwLjg1KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zaXRlLWhlYWRlcl9faW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGhlaWdodDogMTAwJTtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uc2l0ZS1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gIHBlcnNwZWN0aXZlOiA4MDBweDtcbn1cblxuLnNpdGUtbG9nb19fbWFyayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMzAwbXMgZWFzZTtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpKTtcbn1cblxuLnNpdGUtbG9nb19fbWFyayBpbWcge1xuICBoZWlnaHQ6IDIuNzVyZW07XG4gIHdpZHRoOiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA3MDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMiwgMSk7XG59XG5cbi5zaXRlLWxvZ286aG92ZXIgLnNpdGUtbG9nb19fbWFyayBpbWcsXG4uc2l0ZS1sb2dvOmZvY3VzLXZpc2libGUgLnNpdGUtbG9nb19fbWFyayBpbWcge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMzYwZGVnKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogOTAwbXM7XG59XG5cbi5zaXRlLWxvZ286aG92ZXIgLnNpdGUtbG9nb19fbWFyayxcbi5zaXRlLWxvZ286Zm9jdXMtdmlzaWJsZSAuc2l0ZS1sb2dvX19tYXJrIHtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDEwcHggMThweCByZ2JhKDAsIDAsIDAsIDAuNDUpKTtcbn1cblxuLnNpdGUtbG9nb19fd29yZCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnNpdGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5zaXRlLW5hdiBhIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uc2l0ZS1uYXYgYTpob3Zlcixcbi5zaXRlLW5hdiBhW2FyaWEtY3VycmVudD1wYWdlXSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc2l0ZS1oZWFkZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmxhbmctc3dpdGNoIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4ubGFuZy1zd2l0Y2g6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG5cbi5oZWFkZXItY3RhIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1pbmspO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLmhlYWRlci1jdGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icmFuZC1ob3Zlcik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uaWNvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyLjVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uaWNvbi1idG46aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAubGFuZy1zd2l0Y2gge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNpdGUtaGVhZGVyX19pbm5lciB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG4gIC5zaXRlLWxvZ28ge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgfVxuICAuc2l0ZS1sb2dvX19tYXJrIGltZyB7XG4gICAgaGVpZ2h0OiAzLjVyZW07XG4gIH1cbiAgLnNpdGUtbG9nb19fd29yZCB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgfVxuICAuc2l0ZS1oZWFkZXJfX2FjdGlvbnMge1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuc2l0ZS1oZWFkZXJfX2lubmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG4gIH1cbiAgLnNpdGUtbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5tb2JpbGUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5zaXRlLW5hdiB7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgTW9iaWxlIG5hdmlnYXRpb24gcGFuZWxcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubW9iaWxlLXBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1pbmspO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlO1xufVxuXG4ubW9iaWxlLXBhbmVsLmlzLW9wZW4ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubW9iaWxlLXBhbmVsLmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLm1vYmlsZS1wYW5lbF9fdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubW9iaWxlLXBhbmVsX19icmFuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42MjVyZW07XG59XG5cbi5tb2JpbGUtcGFuZWxfX2JyYW5kIGltZyB7XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xufVxuXG4ubW9iaWxlLXBhbmVsX19icmFuZCBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tb2JpbGUtcGFuZWxfX25hdiB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDFyZW07XG4gIHBhZGRpbmctYmxvY2s6IDJyZW07XG59XG5cbi5tb2JpbGUtcGFuZWxfX25hdiBhIHtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ubW9iaWxlLXBhbmVsX19uYXYgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG59XG5cbi5tb2JpbGUtcGFuZWxfX2JvdHRvbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLm1vYmlsZS1wYW5lbF9fc3RvcmVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjc1cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5tb2JpbGUtcGFuZWwgLmxhbmctc3dpdGNoIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuXG5ib2R5Lm5hdi1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFN0b3JlIHBpbGxzIChBcHAgU3RvcmUgLyBHb29nbGUgUGxheSlcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc3RvcmUtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uc3RvcmUtcGlsbDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cblxuLnN0b3JlLXBpbGwtLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYnJhbmQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG59XG5cbi5zdG9yZS1waWxsLS1zb2xpZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1ob3Zlcik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc3RvcmUtcGlsbCBzdmcge1xuICB3aWR0aDogMS4xMjVyZW07XG4gIGhlaWdodDogMS4xMjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgRmxhc2ggbWVzc2FnZXMgKGNvbnRhY3QgZm9ybSAvIGFjY291bnQgZGVsZXRpb24gZmVlZGJhY2spXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZsYXNoIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMDA7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiBtaW4oMTAwJSAtIDJyZW0sIDQwcmVtKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1pbmspO1xuICBjb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgxMSwgMTgsIDMyLCAwLjI4KTtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1jb2xvci1icmFuZCk7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmZsYXNoLS1hbGVydCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXIpO1xufVxuXG4uZmxhc2hfX2Nsb3NlIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBwYWRkaW5nOiAwIDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mbGFzaF9fY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEhlcm9cbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaW5rKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5oZXJvX19iZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG5cbi5oZXJvX19iZyBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmhlcm9fX2JnOjpiZWZvcmUsXG4uaGVyb19fYmc6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbn1cblxuLmhlcm9fX2JnOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMzMsIDMyLCAzMiwgMC44NSksIHJnYmEoMzMsIDMyLCAzMiwgMC40NSkgNTAlLCByZ2JhKDMzLCAzMiwgMzIsIDAuMikpO1xufVxuXG4uaGVyb19fYmc6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgzMywgMzIsIDMyLCAwLjIpLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMzMsIDMyLCAzMiwgMC43KSk7XG59XG5cbi5oZXJvX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDVyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xufVxuXG4uaGVyb19fc3RhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxLjVyZW07XG4gIG1heC13aWR0aDogNDhyZW07XG59XG5cbi5oZXJvX19leWVicm93IHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMjJlbTtcbn1cblxuLmhlcm8tdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjA1ZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS44NzVyZW0sIDQuMnZ3LCAzLjc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNTUpLCAwIDEwcHggMjZweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG4uaGVyby10aXRsZSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oZXJvX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gIG1heC13aWR0aDogMzZyZW07XG59XG5cbi5oZXJvX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5oZXJvX19zdGF0cyB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDEuNXJlbTtcbiAgbWF4LXdpZHRoOiAzMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5oZXJvX19zdGF0cyBkdCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uaGVyb19fc3RhdHMgZGQge1xuICBtYXJnaW46IDAuMjVyZW0gMCAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZXJvX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogN3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgfVxuICAuaGVyb19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBIb3cgaXQgd29ya3Mg4oCUIHRocmVlIHBob25lIGZyYW1lc1xuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ob3dfX2ludHJvIHtcbiAgbWFyZ2luLWJvdHRvbTogMy41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLmhvd19faW50cm8gaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtZGlzcGxheS1tZCk7XG4gIG1heC13aWR0aDogNDhyZW07XG59XG5cbi5ob3dfX2ludHJvIHAge1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICBtYXgtd2lkdGg6IDQycmVtO1xufVxuXG4uaG93X19zdGVwcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMi41cmVtO1xufVxuXG4uaG93X19zdGVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ob3dfX3N0ZXAtaW5kZXgge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLWhvdmVyKTtcbn1cblxuLmhvd19fc3RlcCBoMyB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4uaG93X19zdGVwIHAge1xuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICBtYXgtd2lkdGg6IDIwcmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhvd19fc3RlcHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBnYXA6IDJyZW07XG4gIH1cbiAgLmhvd19fc3RlcCBoMyB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvd19fc3RlcHMge1xuICAgIGdhcDogM3JlbTtcbiAgfVxufVxuLnBob25lLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyODBweDtcbiAgYXNwZWN0LXJhdGlvOiA5LzE5LjU7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAyNHB4IDQwcHggcmdiYSgxMSwgMTgsIDMyLCAwLjI4KSk7XG59XG5cbi5waG9uZS1mcmFtZV9fYm9keSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDIuMnJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2MGRlZywgIzJhMmEyYSAwJSwgIzBhMGEwYSA1NSUsICMxYTFhMWEgMTAwJSk7XG4gIHBhZGRpbmc6IDAuNnJlbTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksIGluc2V0IDAgMCAwIDJweCAjMDAwO1xufVxuXG4ucGhvbmUtZnJhbWVfX3NjcmVlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMS43NXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cblxuLnBob25lLWZyYW1lX19zY3JlZW4gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNwb3J0c1xuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zcG9ydHNfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG1heC13aWR0aDogNTZyZW07XG4gIG1hcmdpbjogM3JlbSBhdXRvIDA7XG59XG5cbi5zcG9ydC1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42MjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5zcG9ydC1waWxsX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zcG9ydHNfX2xpc3Qge1xuICAgIGdhcDogMXJlbTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIENvbW11bml0eVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5waWxsYXJzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAzcmVtO1xufVxuXG4ucGlsbGFyIHtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcGFwZXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBwYWRkaW5nOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG59XG5cbi5waWxsYXJfX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kLXRpbnQpO1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLnBpbGxhciBoMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLnBpbGxhciBwIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLW11dGVkKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5waWxsYXJzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBEUkFGQSBNYW5hZ2VyXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1hbmFnZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDIuNXJlbTtcbn1cblxuLm1hbmFnZXJfX21lZGlhIHtcbiAgYm9yZGVyLXJhZGl1czogMS41cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhc3BlY3QtcmF0aW86IDE2LzEwO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4ubWFuYWdlcl9fbWVkaWEgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5tYW5hZ2VyX19jb3B5IHtcbiAgbWF4LXdpZHRoOiAzNnJlbTtcbn1cblxuLm1hbmFnZXJfX2NvcHkgaDIge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtZGlzcGxheS1sZyk7XG59XG5cbi5tYW5hZ2VyX19jb3B5IHAge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4ubWFuYWdlcl9fdGFncyB7XG4gIG1hcmdpbi10b3A6IDEuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjYyNXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWFuYWdlciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMC45ZnI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZvciB2ZW51ZXMg4oCUIGRhcmsgdGVhc2VyIHdpdGggc3RhdHMgKyB0aGUgY29udGFjdCBmb3JtXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnZlbnVlcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZlbnVlc19fZ2xvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udmVudWVzX19nbG93OjpiZWZvcmUsXG4udmVudWVzX19nbG93OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZpbHRlcjogYmx1cig2NHB4KTtcbn1cblxuLnZlbnVlc19fZ2xvdzo6YmVmb3JlIHtcbiAgdG9wOiAtOHJlbTtcbiAgcmlnaHQ6IC04cmVtO1xuICB3aWR0aDogNTIwcHg7XG4gIGhlaWdodDogNTIwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjgsIDIzMiwgMTY0LCAwLjIpO1xufVxuXG4udmVudWVzX19nbG93OjphZnRlciB7XG4gIGJvdHRvbTogLTEwcmVtO1xuICBsZWZ0OiAtNnJlbTtcbiAgd2lkdGg6IDQyMHB4O1xuICBoZWlnaHQ6IDQyMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCAxMDcsIDE5NSwgMC4yNSk7XG59XG5cbi52ZW51ZXNfX2dyaWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMi41cmVtO1xuICBwYWRkaW5nLWJsb2NrOiA2cmVtO1xufVxuXG4udmVudWVzX19jb3B5IHtcbiAgbWF4LXdpZHRoOiA0MnJlbTtcbn1cblxuLnZlbnVlc19fY29weSBoMiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1kaXNwbGF5LWxnKTtcbn1cblxuLnZlbnVlc19fY29weSA+IHAge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbWF4LXdpZHRoOiAzNnJlbTtcbn1cblxuLnZlbnVlc19fc3RhdHMge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMXJlbTtcbn1cblxuLnN0YXQtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cblxuLnN0YXQtY2FyZF9fdmFsdWUge1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQpO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uc3RhdC1jYXJkX19sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xufVxuXG4udmVudWVzX19iZW5lZml0cyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMXJlbTtcbn1cblxuLmJlbmVmaXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuODc1cmVtO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmJlbmVmaXRfX2ljb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAyLjVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyOCwgMjMyLCAxNjQsIDAuMTQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQpO1xufVxuXG4uYmVuZWZpdF9faWNvbiBzdmcge1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xufVxuXG4uYmVuZWZpdCBoMyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmJlbmVmaXQgcCB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnZlbnVlc19fZ3JpZCB7XG4gICAgcGFkZGluZy1ibG9jazogN3JlbTtcbiAgfVxuICAuc3RhdC1jYXJkX192YWx1ZSB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC52ZW51ZXNfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMC45ZnI7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICB9XG59XG4vKiBDb250YWN0IGZvcm0gY2FyZCAqL1xuLmNvbnRhY3QtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgcGFkZGluZzogMS43NXJlbTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG59XG5cbi5jb250YWN0LWNhcmQgaDMge1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4uY29udGFjdC1jYXJkID4gcCB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjkyNXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cblxuLmNvbnRhY3QtZm9ybSB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjEyNXJlbTtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmZvcm0tZ3JvdXAgbGFiZWwge1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmZvcm0tY29udHJvbDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI4LCAyMzIsIDE2NCwgMC4yKTtcbn1cblxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgbWluLWhlaWdodDogN3JlbTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLmZvcm0taGVscCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbn1cblxuLmNmLXR1cm5zdGlsZSB7XG4gIG1pbi1oZWlnaHQ6IDY1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFjdC1jYXJkIHtcbiAgICBwYWRkaW5nOiAyLjI1cmVtO1xuICB9XG59XG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgRkFRXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZhcV9fbGlzdCB7XG4gIG1heC13aWR0aDogNDhyZW07XG4gIG1hcmdpbjogMy41cmVtIGF1dG8gMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi5mYXFfX2l0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmZhcV9faXRlbSBkZXRhaWxzIHtcbiAgcGFkZGluZy1ibG9jazogMS41cmVtO1xufVxuXG4uZmFxX19pdGVtIHN1bW1hcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZmFxX19pdGVtIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmFxX19tYXJrZXIge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mYXFfX2l0ZW0gZGV0YWlsc1tvcGVuXSAuZmFxX19tYXJrZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5mYXFfX2Fuc3dlciB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuZmFxX19pdGVtIHN1bW1hcnkge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEVsZXZhdGUgR3JlZWNlIHN0cmlwXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVsZXZhdGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdXJmYWNlKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi5lbGV2YXRlX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZy1ibG9jazogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5lbGV2YXRlX19pbm5lciBwIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5lbGV2YXRlX19pbm5lciBpbWcge1xuICB3aWR0aDogbWluKDQyMHB4LCAxMDAlKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZvb3RlclxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluayk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc2l0ZS1mb290ZXJfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDIuNXJlbTtcbiAgcGFkZGluZy1ibG9jazogNHJlbTtcbn1cblxuLnNpdGUtZm9vdGVyX19icmFuZCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5zaXRlLWZvb3Rlcl9fYnJhbmQgaW1nIHtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIHdpZHRoOiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbn1cblxuLnNpdGUtZm9vdGVyX19icmFuZCBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zaXRlLWZvb3Rlcl9fdGFnbGluZSB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIG1heC13aWR0aDogMjRyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5zaXRlLWZvb3Rlcl9fc3RvcmVzIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNpdGUtZm9vdGVyX19zdG9yZXMgLnN0b3JlLXBpbGwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLnNpdGUtZm9vdGVyX19mb2xsb3cge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbi5zaXRlLWZvb3Rlcl9faGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE4ZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zaXRlLWZvb3Rlcl9faGVhZGluZy0tc20ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5zaXRlLWZvb3Rlcl9fc29jaWFsIHtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uc2l0ZS1mb290ZXJfX3NvY2lhbCBhIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uc2l0ZS1mb290ZXJfX3NvY2lhbCBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cblxuLnNpdGUtZm9vdGVyX19zb2NpYWwgc3ZnIHtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbn1cblxuLnNpdGUtZm9vdGVyX19saW5rcyB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4uc2l0ZS1mb290ZXJfX2xpbmtzIGEge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uc2l0ZS1mb290ZXJfX2xpbmtzIGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnNpdGUtZm9vdGVyX19lbWFpbCB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cblxuLnNpdGUtZm9vdGVyX19lbWFpbCBzdmcge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNpdGUtZm9vdGVyX19lbWFpbCBhIHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnNpdGUtZm9vdGVyX19lbWFpbCBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zaXRlLWZvb3Rlcl9fYm90dG9tIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLnNpdGUtZm9vdGVyX19ib3R0b20taW5uZXIge1xuICBwYWRkaW5nLWJsb2NrOiAxLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5zaXRlLWZvb3Rlcl9fYm90dG9tLWlubmVyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5zaXRlLWZvb3Rlcl9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjVmciAxZnIgMWZyIDFmcjtcbiAgfVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIElubmVyIHBhZ2VzIOKAlCBkYXJrIHBhZ2UgaGVybyArIGFydGljbGUgY2FyZCAodGVybXMgLyBwcml2YWN5IC8gY29va2llcylcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGFnZS1oZXJvIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaW5rKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlLWhlcm9fX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbn1cblxuLnBhZ2UtaGVyb19faW5uZXIgaDEge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtZGlzcGxheS1sZyk7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLnBhZ2UtaGVyb19faW5uZXIgcCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICBtYXgtd2lkdGg6IDQycmVtO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtaGVyb19faW5uZXIge1xuICAgIHBhZGRpbmctdG9wOiA2cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICB9XG59XG4ubGVnYWwge1xuICBwYWRkaW5nLWJsb2NrOiAzcmVtIDZyZW07XG59XG5cbi5sZWdhbF9fbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5sZWdhbF9fbmF2IGEge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG59XG5cbi5sZWdhbF9fbmF2IGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1pbmspO1xufVxuXG4ubGVnYWxfX25hdiBhW2FyaWEtY3VycmVudD1wYWdlXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluayk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi8qIFRoZSBsZWdhbCBwYXJ0aWFscyByZW5kZXIgYm90aCBsYW5ndWFnZXMsIGVhY2ggd2l0aCBpdHMgb3duIDxoMT4gYW5kXG4gICAuaW50cm8gbGVhZC4gVGhlIHBhZ2UgaGVybyBhYm92ZSBhbHJlYWR5IGNhcnJpZXMgdGhlIHRpdGxlLCBzbyB0aGVcbiAgIHBhcnRpYWwncyA8aDE+IGlzIGhpZGRlbiBhbmQgdGhlIGxlYWQgcGFyYWdyYXBoIGJlY29tZXMgdGhlIG9wZW5lci4gKi9cbi5sZWdhbC1hcnRpY2xlIHtcbiAgbWF4LXdpZHRoOiA1MnJlbTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgcGFkZGluZzogY2xhbXAoMS41cmVtLCA0dncsIDMuNXJlbSk7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMTEsIDE4LCAzMiwgMC4wNik7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6IHZhcigtLWNvbG9yLWluay1zb2Z0KTtcbn1cblxuLmxlZ2FsLWFydGljbGUgLmxhbmd1YWdlLWNvbnRlbnQgPiBoMSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sZWdhbC1hcnRpY2xlIHAuaW50cm8ge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItbXV0ZWQpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmxlZ2FsLWFydGljbGUgc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG59XG5cbi5sZWdhbC1hcnRpY2xlIGgyIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWluayk7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbi5sZWdhbC1hcnRpY2xlIGgzIHtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbiAgbWFyZ2luOiAxLjVyZW0gMCAwLjc1cmVtO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMC45cmVtO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSBwLnN1YnNlY3Rpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY29sb3ItYnJhbmQtdGludCk7XG59XG5cbi5sZWdhbC1hcnRpY2xlIHVsLFxuLmxlZ2FsLWFydGljbGUgb2wge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwLjVyZW0gMCAxLjI1cmVtO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSB1bCB7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG59XG5cbi5sZWdhbC1hcnRpY2xlIG9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbn1cblxuLmxlZ2FsLWFydGljbGUgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5sZWdhbC1hcnRpY2xlIC5oaWdobGlnaHQge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItaW5rKTtcbn1cblxuLmxlZ2FsLWFydGljbGUgYSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1ob3Zlcik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xufVxuXG4ubGVnYWwtYXJ0aWNsZSBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWluayk7XG59XG5cbi5sZWdhbC1hcnRpY2xlIC5jb250YWN0IHtcbiAgbWFyZ2luLXRvcDogMi41cmVtO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXBhcGVyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmxlZ2FsLWFydGljbGUgLmNvbnRhY3QgaDMge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSAuY29udGFjdCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbWFyZ2luOiAwLjVyZW0gMCAxLjI1cmVtO1xufVxuXG4ubGVnYWwtYXJ0aWNsZSB0aCxcbi5sZWdhbC1hcnRpY2xlIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBBY2NvdW50IGRlbGV0aW9uIOKAlCBkYXJrIGNhcmRcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYWNjb3VudC1kZWxldGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1pbmspO1xuICBjb2xvcjogI2ZmZjtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1ibG9jazogM3JlbSA1cmVtO1xufVxuXG4uYWNjb3VudC1kZWxldGVfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzRyZW07XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi5hY2NvdW50LWRlbGV0ZV9fdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLmFjY291bnQtZGVsZXRlX190aXRsZSBoMSB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1kaXNwbGF5LW1kKTtcbn1cblxuLmFjY291bnQtZGVsZXRlX190aXRsZSBoMSAuYWNjZW50IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kKTtcbn1cblxuLmFjY291bnQtZGVsZXRlX190aXRsZSBwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgbWF4LXdpZHRoOiAyOHJlbTtcbn1cblxuLmFjY291bnQtY2FyZCB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgcGFkZGluZzogMS43NXJlbTtcbn1cblxuLmFjY291bnQtY2FyZCAuYWxlcnQge1xuICBwYWRkaW5nOiAwLjlyZW0gMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDEwNywgMTA3LCAwLjEyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDEwNywgMTA3LCAwLjM1KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWRhbmdlcik7XG4gIGZvbnQtc2l6ZTogMC45MjVyZW07XG59XG5cbi53YXJuaW5nLWJveCB7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHBhZGRpbmc6IDEuMTI1cmVtIDEuMjVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDEwNywgMC4wOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAxMDcsIDEwNywgMC4zKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuOTI1cmVtO1xufVxuXG4ud2FybmluZy1ib3ggaDIge1xuICBmb250LXNpemU6IDEuMDVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXIpO1xufVxuXG4uYWNjb3VudC1mb3JtIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEuMTI1cmVtO1xufVxuXG4ucGFzc3dvcmQtZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wYXNzd29yZC1maWVsZCAuZm9ybS1jb250cm9sIHtcbiAgcGFkZGluZy1yaWdodDogNC41cmVtO1xufVxuXG4ucGFzc3dvcmQtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMC41cmVtO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQpO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbn1cblxuLnBhc3N3b3JkLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjgsIDIzMiwgMTY0LCAwLjEyKTtcbn1cblxuLmZvcm0tY2hlY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uZm9ybS1jaGVjayBpbnB1dCB7XG4gIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgd2lkdGg6IDEuMTI1cmVtO1xuICBoZWlnaHQ6IDEuMTI1cmVtO1xuICBmbGV4LXNocmluazogMDtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZvcm0tY2hlY2sgbGFiZWwge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5hY2NvdW50LWNhcmQge1xuICAgIHBhZGRpbmc6IDIuMjVyZW07XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTY3JvbGwtdHJpZ2dlcmVkIHJldmVhbC4gQW55IFtkYXRhLXJldmVhbF0gc2xpZGVzIGludG8gcGxhY2Ugb25jZSB+MTUlIG9mXG4gICBpdCBlbnRlcnMgdGhlIHZpZXdwb3J0LiBWYWx1ZSBwaWNrcyB0aGUgZGlyZWN0aW9uICh1cCB8IGRvd24gfCBsZWZ0IHxcbiAgIHJpZ2h0IHwgc2NhbGUpLiBbZGF0YS1yZXZlYWwtZ3JvdXBdIGNoaWxkcmVuIGdldCBhIDExMCBtcyBzdGFnZ2VyIHZpYVxuICAgLS1yZXZlYWwtaW5kZXggKHNldCBieSB0aGUgc2NyaXB0IGluIHRoZSBsYXlvdXQpLlxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbltkYXRhLXJldmVhbF0ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIHZhcigtLXJldmVhbC1kaXN0YW5jZSwgNDBweCksIDApO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDk1MG1zIHZhcigtLWVhc2Utb3V0LWV4cG8pLCB0cmFuc2Zvcm0gOTUwbXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IGNhbGModmFyKC0tcmV2ZWFsLWluZGV4LCAwKSAqIDExMG1zKTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbn1cblxuW2RhdGEtcmV2ZWFsPWRvd25dIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCBjYWxjKHZhcigtLXJldmVhbC1kaXN0YW5jZSwgNDBweCkgKiAtMSksIDApO1xufVxuXG5bZGF0YS1yZXZlYWw9bGVmdF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKGNhbGModmFyKC0tcmV2ZWFsLWRpc3RhbmNlLCA2MHB4KSAqIC0xKSwgMCwgMCk7XG59XG5cbltkYXRhLXJldmVhbD1yaWdodF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKHZhcigtLXJldmVhbC1kaXN0YW5jZSwgNjBweCksIDAsIDApO1xufVxuXG5bZGF0YS1yZXZlYWw9c2NhbGVdIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTtcbn1cblxuW2RhdGEtcmV2ZWFsXS5pcy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEN1c3RvbSBjdXJzb3Ig4oCUIGEgcHJlY2lzZSBkb3QgYW5kIGEgbGFnZ2luZyByaW5nLiBPbmx5IGFjdGl2ZSB3aGVuIHRoZVxuICAgbGF5b3V0IHNjcmlwdCBhZGRzIC5oYXMtY3VzdG9tLWN1cnNvciAobmV2ZXIgb24gdG91Y2ggLyByZWR1Y2VkIG1vdGlvbikuXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHRtbC5oYXMtY3VzdG9tLWN1cnNvcixcbmh0bWwuaGFzLWN1c3RvbS1jdXJzb3IgYSxcbmh0bWwuaGFzLWN1c3RvbS1jdXJzb3IgYnV0dG9uLFxuaHRtbC5oYXMtY3VzdG9tLWN1cnNvciBbcm9sZT1idXR0b25dLFxuaHRtbC5oYXMtY3VzdG9tLWN1cnNvciBzdW1tYXJ5LFxuaHRtbC5oYXMtY3VzdG9tLWN1cnNvciBsYWJlbCxcbmh0bWwuaGFzLWN1c3RvbS1jdXJzb3IgaW5wdXQsXG5odG1sLmhhcy1jdXN0b20tY3Vyc29yIHNlbGVjdCxcbmh0bWwuaGFzLWN1c3RvbS1jdXJzb3IgdGV4dGFyZWEge1xuICBjdXJzb3I6IG5vbmU7XG59XG5cbiNjdXJzb3ItZG90LFxuI2N1cnNvci1yaW5nIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiA5OTk5O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDBweCwgLTEwMHB4LCAwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xufVxuXG4jY3Vyc29yLWRvdCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBtYXJnaW46IC0zcHggMCAwIC0zcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYnJhbmQpO1xuICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDI4LCAyMzIsIDE2NCwgMC42KTtcbn1cblxuI2N1cnNvci1yaW5nIHtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbWFyZ2luOiAtMTdweCAwIDAgLTE3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCByZ2JhKDI4LCAyMzIsIDE2NCwgMC43KTtcbiAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7XG4gIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zIGVhc2UsIGhlaWdodCAyMDBtcyBlYXNlLCBtYXJnaW4gMjAwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlLCBvcGFjaXR5IDIwMG1zIGVhc2U7XG59XG5cbiNjdXJzb3ItcmluZy5pcy1ob3ZlciB7XG4gIHdpZHRoOiA1MnB4O1xuICBoZWlnaHQ6IDUycHg7XG4gIG1hcmdpbjogLTI2cHggMCAwIC0yNnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI4LCAyMzIsIDE2NCwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyOCwgMjMyLCAxNjQsIDAuOSk7XG59XG5cbmh0bWwuaGFzLWN1c3RvbS1jdXJzb3IgI2N1cnNvci1kb3QsXG5odG1sLmhhcy1jdXN0b20tY3Vyc29yICNjdXJzb3ItcmluZyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBSZWR1Y2VkIG1vdGlvblxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIGh0bWwge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgfVxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMDFtcyAhaW1wb3J0YW50O1xuICB9XG4gIFtkYXRhLXJldmVhbF0ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLnNpdGUtbG9nb19fbWFyayBpbWcsXG4gIC5zaXRlLWxvZ286aG92ZXIgLnNpdGUtbG9nb19fbWFyayBpbWcsXG4gIC5zaXRlLWxvZ286Zm9jdXMtdmlzaWJsZSAuc2l0ZS1sb2dvX19tYXJrIGltZyB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiJdfQ== */