/* src/globals.css */
:root {
  --bg: #0d0e14;
  --surface: #13161f;
  --surface-2: #181b25;
  --bg-2: #11131c;
  --border: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.14);
  --text: #f0f0eb;
  --text-muted: #c9cbc0;
  --text-dim: #abada1;
  --brand: #2dd4bf;
  --brand-deep: #14b8a6;
  --brand-glow: rgba(45, 212, 191, 0.18);
  --brand-glow-soft: rgba(45, 212, 191, 0.06);
  --warning: #f5b542;
  --success: #22c55e;
  --danger: #dc4a4a;
  --danger-dim: rgba(220, 74, 74, 0.15);
  --success-dim: rgba(34, 197, 94, 0.15);
  --warning-dim: rgba(245, 181, 66, 0.16);
  --overlay: rgba(0, 0, 0, 0.55);
  --pain: #45443b;
  --brand-ink: #062018;
  --terminal-bg: #0a0a0e;
  --oauth-google-bg: #ffffff;
  --oauth-google-fg: #1a1a1a;
  --oauth-github-bg: #24292e;
  --oauth-github-fg: #ffffff;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --teal: var(--brand);
  --teal-deep: var(--brand-deep);
  --teal-glow: var(--brand-glow);
  --teal-glow-soft: var(--brand-glow-soft);
  --teal-ink: var(--brand-ink);
  --serif:
    "Instrument Serif",
    Georgia,
    serif;
  --sans:
    "DM Sans",
    system-ui,
    sans-serif;
  --mono:
    "DM Mono",
    ui-monospace,
    monospace;
  --weight-body: 350;
  --weight-medium: 450;
  --weight-strong: 550;
}
[data-theme=light] {
  --bg: #fafaf8;
  --surface: #ffffff;
  --surface-2: #f3f2ee;
  --bg-2: #f3f2ee;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.16);
  --text: #1a1a1a;
  --text-muted: #54524a;
  --text-dim: #63615a;
  --brand: #14b8a6;
  --brand-deep: #0d9488;
  --brand-glow: rgba(20, 184, 166, 0.18);
  --brand-glow-soft: rgba(20, 184, 166, 0.06);
  --warning: #c2750a;
  --success: #16a34a;
  --danger: #c12626;
  --danger-dim: rgba(193, 38, 38, 0.10);
  --success-dim: rgba(22, 163, 74, 0.12);
  --warning-dim: rgba(194, 117, 10, 0.12);
  --overlay: rgba(0, 0, 0, 0.45);
  --pain: #c6c4be;
}
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.5s;
  animation-timing-function: ease;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-weight: 400;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
::selection {
  background: var(--teal-glow);
  color: var(--text);
}
a {
  color: inherit;
  text-decoration: none;
}
.dot-grid {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 30px 30px;
}
.hero-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1100px;
  height: 1100px;
  transform: translate(-50%, -55%);
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(
      circle at center,
      var(--teal-glow) 0%,
      rgba(45, 212, 191, 0.05) 30%,
      transparent 60%);
  filter: blur(20px);
}
.eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal);
  border: 1px solid rgba(45, 212, 191, 0.3);
  border-radius: 999px;
  padding: 6px 14px;
  background: rgba(45, 212, 191, 0.04);
}
.eyebrow-muted {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 15px;
  background: var(--teal);
  color: #0a1410;
  border: none;
  border-radius: 999px;
  padding: 14px 28px;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
  box-shadow: 0 0 0 rgba(45, 212, 191, 0);
}
.btn-pill:hover {
  transform: translateY(-1px);
  background: #4ce0c8;
  box-shadow: 0 12px 32px rgba(45, 212, 191, 0.25);
}
.btn-pill-large {
  font-size: 17px;
  padding: 18px 36px;
}
.btn-pill-idle {
  animation: pulse-glow 4s ease-in-out infinite;
}
@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 0 rgba(45, 212, 191, 0);
  }
  50% {
    box-shadow: 0 0 32px rgba(45, 212, 191, 0.22);
  }
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.prompt-block {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.2s ease;
}
.prompt-block:hover,
.prompt-block:focus-visible {
  border-color: var(--teal);
  outline: none;
}
.prompt-block-text {
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.prompt-block-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: var(--text-muted);
  transition: color 0.2s ease;
}
.prompt-block:hover .prompt-block-icon,
.prompt-block:focus-visible .prompt-block-icon {
  color: var(--teal);
}
.prompt-block-icon.copied {
  color: var(--teal);
}
@keyframes typing-dot {
  0%, 60%, 100% {
    opacity: 0.3;
    transform: translateY(0);
  }
  30% {
    opacity: 1;
    transform: translateY(-3px);
  }
}
@keyframes msg-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.msg-row {
  animation: msg-in 0.28s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .msg-row {
    animation: none;
  }
}
@keyframes float-404 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes wobble-oh {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-6px) rotate(7deg);
  }
}
.four-oh-four {
  animation: float-404 5s ease-in-out infinite;
}
.four-oh-four .oh {
  display: inline-block;
  animation: wobble-oh 4.2s ease-in-out infinite;
  transform-origin: center 55%;
}
@media (prefers-reduced-motion: reduce) {
  .four-oh-four,
  .four-oh-four .oh {
    animation: none !important;
  }
}
.display {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: 0.01em;
}
.display em {
  color: var(--teal);
  font-style: italic;
  font-weight: 400;
}
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
}
.card-glow {
  border-color: rgba(45, 212, 191, 0.25);
  box-shadow: 0 0 60px rgba(45, 212, 191, 0.08), inset 0 0 0 1px rgba(45, 212, 191, 0.08);
}
.cw-spot {
  box-shadow: 0 0 0 2px var(--teal);
  animation: cw-ring 0.7s var(--ease-out, ease-out) 1;
}
@keyframes cw-ring {
  0% {
    box-shadow: 0 0 0 2px var(--teal), 0 0 0 0 rgba(45, 212, 191, 0.45);
  }
  100% {
    box-shadow: 0 0 0 2px var(--teal), 0 0 0 14px rgba(45, 212, 191, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cw-spot {
    animation: none;
  }
}
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s var(--ease-out) var(--reveal-delay, 0s), transform 0.9s var(--ease-out) var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.hero-stagger {
  opacity: 0;
  transform: translateY(24px);
  animation: hero-rise 1s var(--ease-out) forwards;
  animation-delay: var(--stagger-delay, 0s);
}
@keyframes hero-rise {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes somewhere-hero-cursor-blink {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}
.marquee {
  position: relative;
  overflow: hidden;
  width: 100%;
  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      #000 10%,
      #000 90%,
      transparent 100%);
  -webkit-mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      #000 10%,
      #000 90%,
      transparent 100%);
}
.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}
.marquee-track-left {
  animation: scroll-left 30s linear infinite;
}
.marquee-track-right {
  animation: scroll-right 30s linear infinite;
}
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes scroll-right {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track-left,
  .marquee-track-right {
    animation: none;
  }
}
.marquee-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-right: 48px;
  opacity: 0.4;
}
.marquee-item img {
  width: 32px;
  height: 32px;
  filter: grayscale(100%) brightness(0) invert(1);
}
.marquee-item span {
  font-size: 11px;
  font-weight: 400;
  color: var(--text-muted);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.connector-line {
  width: 1px;
  height: 56px;
  margin: 0 auto;
  border-left: 1px dashed var(--teal);
  opacity: 0.6;
}
.section {
  position: relative;
  padding: 96px 24px;
  z-index: 1;
}
.section-tight {
  padding: 48px 24px;
}
.container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
}
.container-wide {
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    backdrop-filter 0.3s ease;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(13, 14, 20, 0.72);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-bottom-color: var(--border);
}
.nav-link {
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 400;
  transition: color 0.2s ease;
}
.nav-link:hover {
  color: var(--text);
}
@media (max-width: 720px) {
  .section {
    padding: 64px 20px;
  }
  .container,
  .container-wide {
    max-width: 100%;
  }
  .nav {
    padding: 0 16px;
  }
  .nav-links {
    display: none !important;
  }
  .nav-auth .nav-link {
    display: inline;
  }
  .pain-relief-grid {
    grid-template-columns: 1fr !important;
  }
  .pain-relief-arrow {
    display: none !important;
  }
  .claude-demo-sidebar {
    display: none !important;
  }
  .claude-demo-body {
    padding: 20px 16px 8px !important;
  }
  .security-hero {
    padding: 112px 20px 170px !important;
  }
  [style*="grid-template-columns: 1.1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns: 1fr 1.4fr"],
  [style*="grid-template-columns: 1.5fr 1fr"],
  [style*="grid-template-columns: 1fr 1.3fr"],
  [style*="grid-template-columns: 240px 1fr 180px"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}
@media (max-width: 420px) {
  .nav {
    padding: 0 12px;
  }
  .nav-auth {
    gap: 8px !important;
  }
  .nav-auth .btn-pill {
    padding: 8px 14px !important;
    font-size: 12px !important;
  }
  .nav-tld {
    display: none !important;
  }
  .nav-theme {
    display: none !important;
  }
  .nav-auth .nav-link,
  .nav-auth .btn-pill {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .hero-cta-row .btn-pill-large {
    font-size: 16px !important;
    padding: 15px 22px !important;
    max-width: 100%;
  }
  .hero-reassure {
    max-width: 300px !important;
  }
}
.docs-tabs-row {
  position: sticky;
  top: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 68px;
  padding: 0 32px;
  background: rgba(13, 14, 20, 0.85);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-bottom: 1px solid var(--border);
}
[data-theme=light] .docs-tabs-row {
  background: rgba(250, 250, 248, 0.85);
}
.docs-tabs {
  display: flex;
  gap: 4px;
}
.docs-tab {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--text-muted);
  padding: 14px 14px 12px;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.docs-tab:hover {
  color: var(--text);
}
.docs-tab.active {
  color: var(--text);
  border-bottom-color: var(--teal);
}
.docs-menu-btn {
  display: none;
  appearance: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 13px;
  padding: 6px 14px;
  cursor: pointer;
}
.docs-shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr) 220px;
  gap: 48px;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 32px 80px;
  align-items: start;
}
.docs-sidebar {
  position: sticky;
  top: 116px;
  max-height: calc(100vh - 132px);
  overflow-y: auto;
  padding: 24px 12px 24px 0;
  scrollbar-width: thin;
}
.docs-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.docs-section {
  margin-bottom: 6px;
}
.docs-section-head {
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--text-dim);
  padding: 10px 8px 6px;
  transition: color 0.15s ease;
}
.docs-section-head:hover {
  color: var(--text-muted);
}
.docs-chevron {
  font-size: 14px;
  transition: transform 0.15s ease;
  transform: rotate(0deg);
}
.docs-chevron.openc {
  transform: rotate(90deg);
}
.docs-section-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.docs-nav-link {
  display: block;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--text-muted);
  padding: 5px 10px;
  border-left: 1px solid var(--border);
  margin-left: 8px;
  transition:
    color 0.12s ease,
    border-color 0.12s ease,
    background 0.12s ease;
}
.docs-nav-link:hover {
  color: var(--text);
}
.docs-nav-link.active {
  color: var(--teal);
  border-left: 2px solid var(--teal);
  padding-left: 9px;
  background: var(--teal-glow-soft);
}
.docs-sidebar-foot {
  margin-top: 28px;
  padding: 14px 8px 0;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--text-dim);
  font-family: var(--mono);
  line-height: 1.8;
}
.docs-sidebar-foot a {
  color: var(--text-muted);
}
.docs-sidebar-foot a:hover {
  color: var(--teal);
}
.docs-search {
  position: relative;
  margin-bottom: 14px;
}
.docs-search-input {
  width: 100%;
  font-family: var(--sans);
  font-size: 13.5px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px 40px 9px 12px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.docs-search-input::placeholder {
  color: var(--text-dim);
}
.docs-search-input:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-glow-soft);
}
.docs-search-kbd {
  position: absolute;
  right: 8px;
  top: 8px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-dim);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 2px 5px;
  pointer-events: none;
}
.docs-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: -40px;
  z-index: 95;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
  overflow: hidden;
  max-height: 420px;
  overflow-y: auto;
}
.docs-search-empty {
  padding: 14px;
  font-size: 13px;
  color: var(--text-dim);
}
.docs-search-hit {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 1px solid var(--border);
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding: 10px 14px;
}
.docs-search-hit:last-child {
  border-bottom: none;
}
.docs-search-hit.active {
  background: var(--teal-glow-soft);
}
.docs-search-hit-title {
  display: block;
  font-size: 13.5px;
  color: var(--text);
  font-family: var(--sans);
}
.docs-search-hit-anchor {
  color: var(--teal);
}
.docs-search-hit-meta {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-top: 2px;
}
.docs-search-hit-snippet {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.5;
}
.docs-main {
  min-width: 0;
  padding-top: 40px;
}
.docs-article {
  max-width: 760px;
}
.docs-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 10px;
}
.docs-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 4.5vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 28px;
}
.docs-article h2,
.docs-article h3 {
  scroll-margin-top: 140px !important;
}
.docs-prevnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 64px;
  padding-top: 28px;
  border-top: 1px solid var(--border);
}
.docs-pn-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.docs-pn-card:hover {
  border-color: var(--teal);
  background: var(--teal-glow-soft);
}
.docs-pn-card.next {
  text-align: right;
}
.docs-pn-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.docs-pn-title {
  font-size: 14px;
  color: var(--text);
}
.docs-toc {
  position: sticky;
  top: 132px;
  max-height: calc(100vh - 152px);
  overflow-y: auto;
  padding: 24px 0;
  font-size: 12.5px;
  scrollbar-width: thin;
}
.docs-toc-head {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 10px;
}
.docs-toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.docs-toc li.sub {
  padding-left: 12px;
}
.docs-toc-link {
  display: block;
  color: var(--text-muted);
  padding: 3px 0 3px 10px;
  border-left: 1px solid var(--border);
  line-height: 1.5;
  transition: color 0.12s ease, border-color 0.12s ease;
}
.docs-toc-link:hover {
  color: var(--text);
}
.docs-toc-link.active {
  color: var(--teal);
  border-left-color: var(--teal);
}
@media (max-width: 1280px) {
  .docs-shell {
    grid-template-columns: 250px minmax(0, 1fr);
  }
  .docs-toc {
    display: none;
  }
}
@media (max-width: 1024px) {
  .docs-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .docs-menu-btn {
    display: block;
  }
  .docs-sidebar {
    display: none;
    position: fixed;
    top: 116px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 89;
    background: var(--bg);
    padding: 20px 24px;
    max-height: none;
  }
  .docs-sidebar.open {
    display: block;
  }
  .docs-search-results {
    right: 0;
  }
}
@media (max-width: 720px) {
  .docs-tabs-row {
    padding: 0 16px;
  }
  .docs-shell {
    padding: 0 20px 64px;
  }
}
.btn-pill {
  white-space: nowrap;
}
@media (max-width: 720px) {
  .section {
    padding: 64px 20px !important;
  }
  .hero-section {
    padding: 112px 20px 240px !important;
  }
  .nav.scrolled {
    background: rgba(13, 14, 20, 0.96);
  }
  .sr-col-header {
    display: none !important;
  }
  .sr-row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}
.btn-pill-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--text);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.btn-pill-ghost:hover {
  border-color: var(--teal);
  color: var(--teal);
}
.sv2-stage {
  --stop: 63%;
  --hit: 79%;
}
.sv2-lane {
  position: absolute;
  left: 0;
  right: 0;
  height: 30px;
  z-index: 2;
}
.sv2-lane::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 3%;
  width: 59%;
  border-top: 1px dashed var(--border);
  opacity: 0.4;
}
.sv2-attack {
  position: absolute;
  top: 0;
  left: -2%;
  transform: translateX(-100%);
  font-family: var(--mono);
  font-size: 12px;
  white-space: nowrap;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--warning);
  border-radius: 999px;
  padding: 5px 11px;
  opacity: 0;
}
.sv2-verdict {
  position: absolute;
  top: 1px;
  left: calc(var(--stop) + 3.5%);
  font-family: var(--mono);
  font-size: 11.5px;
  white-space: nowrap;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 10px;
  opacity: 0;
  z-index: 3;
}
.sv2-verdict-safe {
  color: var(--teal);
}
.sv2-verdict-typical {
  color: var(--danger);
}
.sv2-stage[data-mode=safe] .sv2-verdict-typical {
  display: none;
}
.sv2-stage[data-mode=typical] .sv2-verdict-safe {
  display: none;
}
.sv2-stage[data-mode=safe] .sv2-attack {
  animation: sv2-run 18s linear infinite;
  animation-delay: calc(var(--i) * 3s - 18s);
}
.sv2-stage[data-mode=typical] .sv2-attack {
  animation: sv2-run-through 18s linear infinite;
  animation-delay: calc(var(--i) * 3s - 18s);
}
.sv2-stage[data-mode=safe] .sv2-verdict-safe,
.sv2-stage[data-mode=typical] .sv2-verdict-typical {
  animation: sv2-pop 18s linear infinite;
  animation-delay: calc(var(--i) * 3s - 18s);
}
@keyframes sv2-run {
  0% {
    left: -2%;
    transform: translateX(-100%);
    opacity: 0;
  }
  1.5% {
    opacity: 1;
  }
  12% {
    left: var(--stop);
    transform: translateX(-100%);
    opacity: 1;
  }
  15% {
    left: calc(var(--stop) - 4%);
    opacity: 1;
  }
  19% {
    left: calc(var(--stop) - 6%);
    opacity: 0;
  }
  100% {
    left: -2%;
    transform: translateX(-100%);
    opacity: 0;
  }
}
@keyframes sv2-run-through {
  0% {
    left: -2%;
    transform: translateX(-100%);
    opacity: 0;
  }
  1.5% {
    opacity: 1;
  }
  12% {
    left: var(--stop);
    transform: translateX(-100%);
    opacity: 1;
  }
  16% {
    left: var(--hit);
    opacity: 1;
  }
  17.5% {
    left: var(--hit);
    opacity: 0;
  }
  100% {
    left: -2%;
    transform: translateX(-100%);
    opacity: 0;
  }
}
@keyframes sv2-pop {
  0%, 12.5% {
    opacity: 0;
    transform: translateY(5px);
  }
  15.5% {
    opacity: 1;
    transform: translateY(0);
  }
  58% {
    opacity: 1;
  }
  66% {
    opacity: 0;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
  }
}
.sv2-shield {
  position: absolute;
  left: 65.5%;
  top: 7%;
  bottom: 7%;
  width: 4px;
  border-radius: 4px;
  background:
    linear-gradient(
      180deg,
      transparent,
      var(--teal) 18%,
      var(--teal) 82%,
      transparent);
  box-shadow: 0 0 18px var(--teal-glow-soft, rgba(45, 212, 191, 0.35));
  transition: opacity 0.5s ease;
}
.sv2-stage[data-mode=safe] .sv2-shield {
  animation: sv2-shield-hit 3s linear infinite;
}
.sv2-stage[data-mode=typical] .sv2-shield {
  opacity: 0.12;
  animation: none;
  box-shadow: none;
}
@keyframes sv2-shield-hit {
  0%, 68% {
    filter: brightness(1);
  }
  72% {
    filter: brightness(1.9);
  }
  100% {
    filter: brightness(1);
  }
}
.sv2-app {
  position: absolute;
  right: 4.5%;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  padding: 18px 22px;
}
.sv2-stage[data-mode=typical] .sv2-app {
  animation: sv2-app-hit 3s linear infinite;
}
@keyframes sv2-app-hit {
  0%, 92% {
    border-color: var(--border-strong);
    box-shadow: none;
  }
  96% {
    border-color: var(--danger);
    box-shadow: 0 0 26px rgba(239, 68, 68, 0.3);
    transform: translateY(-50%) translateX(3px);
  }
  100% {
    border-color: var(--border-strong);
    box-shadow: none;
    transform: translateY(-50%);
  }
}
.sv2-pulse {
  animation: sv2-pulse 2.4s ease-in-out infinite;
}
@keyframes sv2-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
.sv2-sweep {
  stroke-dasharray: 244;
  animation: sv2-sweep 3.6s linear infinite;
}
@keyframes sv2-sweep {
  from {
    stroke-dashoffset: 244;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@media (max-width: 640px) {
  .sv2-attack {
    font-size: 10.5px;
    padding: 4px 9px;
  }
  .sv2-verdict {
    font-size: 10px;
  }
  .sv2-app {
    padding: 12px 14px;
    right: 3%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sv2-attack,
  .sv2-verdict,
  .sv2-shield,
  .sv2-app,
  .sv2-pulse,
  .sv2-sweep {
    animation: none !important;
  }
  .sv2-attack {
    left: var(--stop);
    opacity: 1;
  }
  .sv2-stage[data-mode=safe] .sv2-verdict-safe,
  .sv2-stage[data-mode=typical] .sv2-verdict-typical {
    opacity: 1;
  }
  .sv2-stage[data-mode=typical] .sv2-attack {
    left: var(--hit);
  }
}
.hero-scrim {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(1240px, 100%);
  height: clamp(400px, 44vw, 660px);
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(
      ellipse 72% 62% at 50% 38%,
      rgba(13, 14, 20, 0.86) 0%,
      rgba(13, 14, 20, 0.74) 30%,
      rgba(13, 14, 20, 0.46) 55%,
      rgba(13, 14, 20, 0.16) 76%,
      transparent 100%);
}
[data-theme=light] .hero-scrim {
  background:
    radial-gradient(
      ellipse 72% 62% at 50% 38%,
      rgba(250, 250, 248, 0.82) 0%,
      rgba(250, 250, 248, 0.66) 30%,
      rgba(250, 250, 248, 0.38) 55%,
      rgba(250, 250, 248, 0.12) 76%,
      transparent 100%);
}
.xray-band {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 1680px);
  aspect-ratio: 1448 / 891;
  bottom: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image:
    linear-gradient(
      to top,
      transparent 0%,
      black 9%,
      black 86%,
      transparent 100%);
  mask-image:
    linear-gradient(
      to top,
      transparent 0%,
      black 9%,
      black 86%,
      transparent 100%);
}
.xray-inner {
  position: absolute;
  inset: 0;
}
@media (min-width: 1681px) {
  .xray-inner {
    -webkit-mask-image:
      linear-gradient(
        to right,
        transparent 0,
        black 120px,
        black calc(100% - 120px),
        transparent 100%);
    mask-image:
      linear-gradient(
        to right,
        transparent 0,
        black 120px,
        black calc(100% - 120px),
        transparent 100%);
  }
}
.xray-plate {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  user-select: none;
  -webkit-user-drag: none;
}
.xray-plate--night {
  filter: brightness(1.28) contrast(1.04);
}
.xray-plate--day {
  display: none;
}
[data-theme=light] .xray-plate--night {
  display: none;
}
[data-theme=light] .xray-plate--day {
  display: block;
}
.xray-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.xray-source {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 640px) {
  .xray-band {
    aspect-ratio: auto;
    height: clamp(420px, 56vh, 620px);
  }
  .hero-scrim {
    background:
      radial-gradient(
        ellipse 92% 62% at 50% 36%,
        rgba(13, 14, 20, 0.70) 0%,
        rgba(13, 14, 20, 0.52) 38%,
        rgba(13, 14, 20, 0.24) 66%,
        transparent 100%);
  }
  .xray-plate {
    object-position: center 47%;
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2dsb2JhbHMuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBzb21ld2hlcmUudGVjaCBcdTIwMTQgZGVzaWduIHRva2VucyArIGxhbmRpbmctcGFnZSB1dGlsaXR5IGNsYXNzZXNcbiAqIFRoZSBkYXNoYm9hcmQgcGFnZXMgc3RpbGwgdXNlIGlubGluZSBzdHlsZXMgKHNlZSBzdHlsZXMudHMpO1xuICogdGhpcyBmaWxlIG9ubHkgb3ducyB0aGUgbGFuZGluZy1wYWdlIHZpc3VhbCBwcmltaXRpdmVzIHRoYXQgbmVlZFxuICogcHNldWRvLWNsYXNzZXMsIGFuaW1hdGlvbnMsIG9yIGxhcmdlIHJlcGVhdGVkIHBhdHRlcm5zLiAqL1xuXG4vKiBAc3ctdG9rZW5zOmJlZ2luIGhhc2g9YzI0NzBlMDg4ZmVlIFx1MjAxNCBHRU5FUkFURUQgZnJvbSBkZXNpZ24vdG9rZW5zL3NvbWV3aGVyZS50b2tlbnMuanNvbjsgZG8gbm90IGVkaXQgYnkgaGFuZCwgcnVuIGBub2RlIGRlc2lnbi90b2tlbnMvYnVpbGQubWpzYC4gKi9cbi8qIHNvbWV3aGVyZS50ZWNoIGRlc2lnbiB0b2tlbnMgXHUyMDE0IEdFTkVSQVRFRCwgZG8gbm90IGVkaXQuXG4gKiBTb3VyY2U6IGRlc2lnbi90b2tlbnMvc29tZXdoZXJlLnRva2Vucy5qc29uIFx1MDBCNyB2ZXJzaW9uIDIwMjYtMDctMTEuMSBcdTAwQjcgaGFzaCBjMjQ3MGUwODhmZWVcbiAqIFJlZ2VuZXJhdGU6IG5vZGUgZGVzaWduL3Rva2Vucy9idWlsZC5tanNcbiAqIFJ1bnRpbWUgVVJMOiBodHRwczovL3NvbWV3aGVyZS50ZWNoL19fc3cvZGVzaWduLXRva2Vucy9zb21ld2hlcmUuY3NzICovXG46cm9vdCB7XG4gIC0tYmc6ICMwZDBlMTQ7XG4gIC0tc3VyZmFjZTogIzEzMTYxZjtcbiAgLS1zdXJmYWNlLTI6ICMxODFiMjU7XG4gIC0tYmctMjogIzExMTMxYztcbiAgLS1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tYm9yZGVyLXN0cm9uZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgLS10ZXh0OiAjZjBmMGViO1xuICAtLXRleHQtbXV0ZWQ6ICNjOWNiYzA7XG4gIC0tdGV4dC1kaW06ICNhYmFkYTE7XG4gIC0tYnJhbmQ6ICMyZGQ0YmY7XG4gIC0tYnJhbmQtZGVlcDogIzE0YjhhNjtcbiAgLS1icmFuZC1nbG93OiByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4xOCk7XG4gIC0tYnJhbmQtZ2xvdy1zb2Z0OiByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4wNik7XG4gIC0td2FybmluZzogI2Y1YjU0MjtcbiAgLS1zdWNjZXNzOiAjMjJjNTVlO1xuICAtLWRhbmdlcjogI2RjNGE0YTtcbiAgLS1kYW5nZXItZGltOiByZ2JhKDIyMCwgNzQsIDc0LCAwLjE1KTtcbiAgLS1zdWNjZXNzLWRpbTogcmdiYSgzNCwgMTk3LCA5NCwgMC4xNSk7XG4gIC0td2FybmluZy1kaW06IHJnYmEoMjQ1LCAxODEsIDY2LCAwLjE2KTtcbiAgLS1vdmVybGF5OiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICAtLXBhaW46ICM0NTQ0M2I7XG5cbiAgLyogVGhlbWUtaW52YXJpYW50IGJ5IGRlc2lnbiAoc2VlIG5vdGVzIGluIHRoZSB0b2tlbnMgSlNPTikuICovXG4gIC0tYnJhbmQtaW5rOiAjMDYyMDE4O1xuICAtLXRlcm1pbmFsLWJnOiAjMGEwYTBlO1xuICAtLW9hdXRoLWdvb2dsZS1iZzogI2ZmZmZmZjtcbiAgLS1vYXV0aC1nb29nbGUtZmc6ICMxYTFhMWE7XG4gIC0tb2F1dGgtZ2l0aHViLWJnOiAjMjQyOTJlO1xuICAtLW9hdXRoLWdpdGh1Yi1mZzogI2ZmZmZmZjtcbiAgLS1lYXNlLW91dDogY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG5cbiAgLyogQ29tcGF0IGFsaWFzZXMgXHUyMDE0IHRoZSBjYW5vbmljYWwgdmFsdWUgbGl2ZXMgb24gdGhlIHJlZmVyZW5jZWQgdG9rZW4uICovXG4gIC0tdGVhbDogdmFyKC0tYnJhbmQpO1xuICAtLXRlYWwtZGVlcDogdmFyKC0tYnJhbmQtZGVlcCk7XG4gIC0tdGVhbC1nbG93OiB2YXIoLS1icmFuZC1nbG93KTtcbiAgLS10ZWFsLWdsb3ctc29mdDogdmFyKC0tYnJhbmQtZ2xvdy1zb2Z0KTtcbiAgLS10ZWFsLWluazogdmFyKC0tYnJhbmQtaW5rKTtcblxuICAvKiBUeXBlIFx1MjAxNCBmb250IHN0YWNrcyBsaXZlIE9OTFkgaW4gdGhlIHRva2VucyBKU09OLiAqL1xuICAtLXNlcmlmOiAnSW5zdHJ1bWVudCBTZXJpZicsIEdlb3JnaWEsIHNlcmlmO1xuICAtLXNhbnM6ICdETSBTYW5zJywgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICAtLW1vbm86ICdETSBNb25vJywgdWktbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC0td2VpZ2h0LWJvZHk6IDM1MDtcbiAgLS13ZWlnaHQtbWVkaXVtOiA0NTA7XG4gIC0td2VpZ2h0LXN0cm9uZzogNTUwO1xufVxuXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIHtcbiAgLS1iZzogI2ZhZmFmODtcbiAgLS1zdXJmYWNlOiAjZmZmZmZmO1xuICAtLXN1cmZhY2UtMjogI2YzZjJlZTtcbiAgLS1iZy0yOiAjZjNmMmVlO1xuICAtLWJvcmRlcjogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgLS1ib3JkZXItc3Ryb25nOiByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICAtLXRleHQ6ICMxYTFhMWE7XG4gIC0tdGV4dC1tdXRlZDogIzU0NTI0YTtcbiAgLS10ZXh0LWRpbTogIzYzNjE1YTtcbiAgLS1icmFuZDogIzE0YjhhNjtcbiAgLS1icmFuZC1kZWVwOiAjMGQ5NDg4O1xuICAtLWJyYW5kLWdsb3c6IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjE4KTtcbiAgLS1icmFuZC1nbG93LXNvZnQ6IHJnYmEoMjAsIDE4NCwgMTY2LCAwLjA2KTtcbiAgLS13YXJuaW5nOiAjYzI3NTBhO1xuICAtLXN1Y2Nlc3M6ICMxNmEzNGE7XG4gIC0tZGFuZ2VyOiAjYzEyNjI2O1xuICAtLWRhbmdlci1kaW06IHJnYmEoMTkzLCAzOCwgMzgsIDAuMTApO1xuICAtLXN1Y2Nlc3MtZGltOiByZ2JhKDIyLCAxNjMsIDc0LCAwLjEyKTtcbiAgLS13YXJuaW5nLWRpbTogcmdiYSgxOTQsIDExNywgMTAsIDAuMTIpO1xuICAtLW92ZXJsYXk6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIC0tcGFpbjogI2M2YzRiZTtcbn1cbi8qIEBzdy10b2tlbnM6ZW5kICovXG5cbi8qIFRoZW1lIHN3aXRjaGluZyBydW5zIGluc2lkZSBhIFZpZXcgVHJhbnNpdGlvbiAoVGhlbWVUb2dnbGUudHN4KSwgc29cbiAgIGZsaXBwaW5nIGxpZ2h0L2RhcmsgY3Jvc3MtZmFkZXMgdGhlIHdob2xlIHBhZ2UgaW5zdGVhZCBvZiBzbmFwcGluZy5cbiAgIFRoZSBkZWZhdWx0IDI1MG1zIHJlYWRzIGFzIGEgZ2xpdGNoOyBoYWxmIGEgc2Vjb25kIHJlYWRzIGFzIGR1c2suICovXG46OnZpZXctdHJhbnNpdGlvbi1vbGQocm9vdCksXG46OnZpZXctdHJhbnNpdGlvbi1uZXcocm9vdCkge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5cbiogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbmh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfVxuYm9keSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnKTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7XG4gIC8qIE5vcm1hbC13aWR0aCBETSBTYW5zIGZvciBib2R5IHRleHQuIFdhcyAzMDAgKExpZ2h0KSBcdTIwMTQgdG9vIHRoaW5cbiAgICogYW5kIGZlbHQgdmlzdWFsbHkgY29uZGVuc2VkIG5leHQgdG8gdGhlIHNlcmlmIGhlYWRsaW5lcy4gNDAwIGlzXG4gICAqIHRoZSBzYW1lIHdlaWdodCB0aGUgZGFzaGJvYXJkIGFwcCB1c2VzIGJ5IGRlZmF1bHQuICovXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8qIFNsaWdodCBwb3NpdGl2ZSB0cmFja2luZyBmb3IgYWlyIGJldHdlZW4gZ2x5cGhzLiBLZWVwcyBETSBTYW5zXG4gICAqIGZlZWxpbmcgXCJub3JtYWwgd2lkdGhcIiBpbnN0ZWFkIG9mIGNyYW1wZWQgYXQgc21hbGwgc2l6ZXMuICovXG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuOjpzZWxlY3Rpb24geyBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWdsb3cpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbmEgeyBjb2xvcjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBCYWNrZ3JvdW5kIGRvdCBncmlkIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLmRvdC1ncmlkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiAzMHB4IDMwcHg7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBIZXJvIHJhZGlhbCBnbG93IChzaXRzIGJlaGluZCBoZXJvLCBibGVlZHMgdGhyb3VnaCBkb3RzKSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5oZXJvLWdsb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMTAwcHg7XG4gIGhlaWdodDogMTEwMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTUlKTtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgYXQgY2VudGVyLFxuICAgIHZhcigtLXRlYWwtZ2xvdykgMCUsXG4gICAgcmdiYSg0NSwgMjEyLCAxOTEsIDAuMDUpIDMwJSxcbiAgICB0cmFuc3BhcmVudCA2MCVcbiAgKTtcbiAgZmlsdGVyOiBibHVyKDIwcHgpO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgRXllYnJvdyBwaWxsIChzbWFsbCB1cHBlcmNhc2UgdGVhbCBsYWJlbCkgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4uZXllYnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdGVhbCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDUsIDIxMiwgMTkxLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogNnB4IDE0cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjA0KTtcbn1cbi5leWVicm93LW11dGVkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIFBpbGwgYnV0dG9uIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLmJ0bi1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGVhbCk7XG4gIGNvbG9yOiAjMGExNDEwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiAxNHB4IDI4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlO1xuICBib3gtc2hhZG93OiAwIDAgMCByZ2JhKDQ1LCAyMTIsIDE5MSwgMCk7XG59XG4uYnRuLXBpbGw6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJhY2tncm91bmQ6ICM0Y2UwYzg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjI1KTtcbn1cbi5idG4tcGlsbC1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgcGFkZGluZzogMThweCAzNnB4O1xufVxuLmJ0bi1waWxsLWlkbGUge1xuICBhbmltYXRpb246IHB1bHNlLWdsb3cgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHB1bHNlLWdsb3cge1xuICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoNDUsIDIxMiwgMTkxLCAwKTsgfVxuICA1MCUgICAgICB7IGJveC1zaGFkb3c6IDAgMCAzMnB4IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjIyKTsgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBIZXJvIHByb21wdCBibG9jayAodHNrX2EwZDJhZDNhKSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcbiAqIFRoZSBoZXJvJ3MgcHJpbWFyeSBhY3Rpb246IGEgY29weS10by1jbGlwYm9hcmQgcHJvbXB0IHRoZSB2aXNpdG9yXG4gKiBwYXN0ZXMgaW50byB0aGVpciBvd24gYWdlbnQuIEVudGlyZSBibG9jayBpcyBhIG5hdGl2ZSA8YnV0dG9uPiBzb1xuICogY2xpY2sgKyBrZXlib2FyZCBib3RoIHdvcmsgZm9yIGZyZWU7IHRoZSBjb3B5IGljb24gbGl2ZXMgaW5zaWRlIGl0XG4gKiByYXRoZXIgdGhhbiBhcyBhIG5lc3RlZCBidXR0b24gKGludmFsaWQgSFRNTCkuICovXG4ucHJvbXB0LWJsb2NrIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMTZweCAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG59XG4ucHJvbXB0LWJsb2NrOmhvdmVyLFxuLnByb21wdC1ibG9jazpmb2N1cy12aXNpYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZWFsKTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5wcm9tcHQtYmxvY2stdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTtcbiAgZm9udC1zaXplOiAxMy41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4ucHJvbXB0LWJsb2NrLWljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG4ucHJvbXB0LWJsb2NrOmhvdmVyIC5wcm9tcHQtYmxvY2staWNvbixcbi5wcm9tcHQtYmxvY2s6Zm9jdXMtdmlzaWJsZSAucHJvbXB0LWJsb2NrLWljb24ge1xuICBjb2xvcjogdmFyKC0tdGVhbCk7XG59XG4ucHJvbXB0LWJsb2NrLWljb24uY29waWVkIHtcbiAgY29sb3I6IHZhcigtLXRlYWwpO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgQ2xhdWRlLWNoYXQgZGVtbyBhbmltYXRpb25zIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLyogdHlwaW5nLWRvdDogdGhyZWUgZG90cyBwdWxzaW5nIGluIHNlcXVlbmNlIHRvIGluZGljYXRlIENsYXVkZSBpc1xuICogdGhpbmtpbmcuIEVhY2ggZG90IHN0YWdnZXIgaXMgc2V0IGlubGluZSB2aWEgYW5pbWF0aW9uLWRlbGF5LiAqL1xuQGtleWZyYW1lcyB0eXBpbmctZG90IHtcbiAgMCUsIDYwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDMwJSAgICAgICAgICAgeyBvcGFjaXR5OiAxOyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgfVxufVxuLyogbXNnLWluOiBlYWNoIG1lc3NhZ2UgaW4gdGhlIGNoYXQgc2xpZGVzIHVwICsgZmFkZXMgaW4gd2hlbiBhcHBlbmRlZC4gKi9cbkBrZXlmcmFtZXMgbXNnLWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cbi5tc2ctcm93IHsgYW5pbWF0aW9uOiBtc2ctaW4gMC4yOHMgZWFzZS1vdXQgYm90aDsgfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1zZy1yb3cgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIDQwNCBwYWdlIGFuaW1hdGlvbnMgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4vKiBUaGUgYmlnIDQwNCBudW1iZXIgZmxvYXRzIGdlbnRseTsgdGhlIG1pZGRsZSAwIGhhcyBpdHMgb3duIGRyaWZ0ICtcbiAqIHJvdGF0aW9uIHNvIGl0IGZlZWxzIGxpa2UgdGhlIFwic29tZXdoZXJlXCIgd2FuZGVyaW5nIG9mZi4gU2hhcmVkXG4gKiBhY3Jvc3MgcHVibGljLzQwNC5odG1sICh0aGUgd29ya2VyLXNlcnZlZCB2ZXJzaW9uIGNvcGllcyB0aGVzZVxuICoga2V5ZnJhbWVzIGlubGluZSkgYW5kIHNyYy9wYWdlcy9Ob3RGb3VuZC50c3ggKFNQQSBjYXRjaC1hbGwpLiAqL1xuQGtleWZyYW1lcyBmbG9hdC00MDQge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA1MCUgICAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbn1cbkBrZXlmcmFtZXMgd29iYmxlLW9oIHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKDBkZWcpOyB9XG4gIDUwJSAgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSg3ZGVnKTsgfVxufVxuLmZvdXItb2gtZm91ciB7XG4gIGFuaW1hdGlvbjogZmxvYXQtNDA0IDVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLmZvdXItb2gtZm91ciAub2gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFuaW1hdGlvbjogd29iYmxlLW9oIDQuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciA1NSU7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZm91ci1vaC1mb3VyLCAuZm91ci1vaC1mb3VyIC5vaCB7IGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBEaXNwbGF5IGhlYWRpbmcgKEluc3RydW1lbnQgU2VyaWYpIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLmRpc3BsYXkge1xuICBmb250LWZhbWlseTogdmFyKC0tc2VyaWYpO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBJbnN0cnVtZW50IFNlcmlmIGlzIGEgbmFycm93IGRpc3BsYXkgY3V0OyBuZWdhdGl2ZSB0cmFja2luZyBtYWRlIHRoZVxuICAgKiBoZWFkbGluZXMgZmVlbCBjcmFtcGVkLiBTbGlnaHQgcG9zaXRpdmUgdHJhY2tpbmcgb3BlbnMgdGhlbSB1cCBmb3JcbiAgICogZWFzaWVyIHJlYWRpbmcgd2l0aG91dCBsb3NpbmcgdGhlIHRpZ2h0LCBlZGl0b3JpYWwgbG9vay4gKi9cbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbn1cbi5kaXNwbGF5IGVtIHtcbiAgY29sb3I6IHZhcigtLXRlYWwpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBDYXJkIHN1cmZhY2UgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4uY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAzMnB4O1xufVxuLmNhcmQtZ2xvdyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjEyLCAxOTEsIDAuMjUpO1xuICBib3gtc2hhZG93OiAwIDAgNjBweCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4wOCksIGluc2V0IDAgMCAwIDFweCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4wOCk7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBDb25uZWN0b3Igd2Fsa3Rocm91Z2ggc3BvdGxpZ2h0IFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLyogVGVhbCByaW5nIG9uIHRoZSBjdXJyZW50IGNsaWNrIHRhcmdldC4gQSBzaW5nbGUgcmVzdHJhaW5lZCBleHBhbnNpb25cbiAqIHBsYXlzIHdoZW4gdGhlIHN0ZXAgbW91bnRzICh0aGUgbW9jayBpcyBrZXllZCBieSBzdGVwIHNvIGl0IHJlbW91bnRzKSxcbiAqIHRoZW4gcmVzdHMgYXMgYSBzdGVhZHkgMnB4IG91dGxpbmUgXHUyMDE0IG5vIHBlcnNpc3RlbnQgcHVsc2UuIFNlZVxuICogY29tcG9uZW50cy9sYW5kaW5nL0Nvbm5lY3RvcldhbGt0aHJvdWdoLnRzeC4gKi9cbi5jdy1zcG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXRlYWwpO1xuICBhbmltYXRpb246IGN3LXJpbmcgMC43cyB2YXIoLS1lYXNlLW91dCwgZWFzZS1vdXQpIDE7XG59XG5Aa2V5ZnJhbWVzIGN3LXJpbmcge1xuICAwJSAgIHsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXRlYWwpLCAwIDAgMCAwIHJnYmEoNDUsIDIxMiwgMTkxLCAwLjQ1KTsgfVxuICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXRlYWwpLCAwIDAgMCAxNHB4IHJnYmEoNDUsIDIxMiwgMTkxLCAwKTsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmN3LXNwb3QgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIFJldmVhbC1vbi1zY3JvbGwgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4ucmV2ZWFsIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMC45cyB2YXIoLS1lYXNlLW91dCkgdmFyKC0tcmV2ZWFsLWRlbGF5LCAwcyksXG4gICAgdHJhbnNmb3JtIDAuOXMgdmFyKC0tZWFzZS1vdXQpIHZhcigtLXJldmVhbC1kZWxheSwgMHMpO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xufVxuLnJldmVhbC5pcy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBIZXJvIGxvYWQtaW46IHN0YWdnZXIgY2hpbGRyZW4gYXV0b21hdGljYWxseSB1c2luZyBhIENTUyBjb3VudGVyIHBhdHRlcm4uXG4gKiBFYWNoIGVsZW1lbnQgd2l0aCAuaGVyby1zdGFnZ2VyIGdldHMgaXRzIG93biBkZWxheSB0aHJvdWdoIGlubGluZSBzdHlsZS4gKi9cbi5oZXJvLXN0YWdnZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XG4gIGFuaW1hdGlvbjogaGVyby1yaXNlIDFzIHZhcigtLWVhc2Utb3V0KSBmb3J3YXJkcztcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1zdGFnZ2VyLWRlbGF5LCAwcyk7XG59XG5Aa2V5ZnJhbWVzIGhlcm8tcmlzZSB7XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi8qIEhlcm8gdHlwaW5nLWN1cnNvciBibGluayBcdTIwMTQgdXNlZCBieSA8VHlwaW5nQ3ljbGU+IGluIEhlcm8udHN4IGZvclxuICogdGhlIGJvcmluZyAvIHNjYXJ5IC8gY3JpdGljYWwgLyByZXBldGl0aXZlIHdvcmQgY3ljbGUuIFN0ZXBzKDEsZW5kKVxuICogZ2l2ZXMgYSBoYXJkIG9uL29mZiwgbm90IGEgZmFkZSBcdTIwMTQgcmVhZHMgbGlrZSBhIHJlYWwgdGVybWluYWwgY3Vyc29yLiAqL1xuQGtleWZyYW1lcyBzb21ld2hlcmUtaGVyby1jdXJzb3ItYmxpbmsge1xuICAwJSwgNTAlICAgeyBvcGFjaXR5OiAxOyB9XG4gIDUxJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIE1hcnF1ZWUgKGluZmluaXRlIGhvcml6b250YWwgc2Nyb2xsLCB0d28gb3Bwb3NpdGUgcm93cykgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4vKiBJdGVtcyB1c2UgbWFyZ2luLXJpZ2h0IChub3QgZ2FwKSBzbyB0aGUgZG91YmxlZCB0cmFjaydzIHRvdGFsIHdpZHRoIGlzXG4gKiBleGFjdGx5IDJOKihpdGVtX3dpZHRoICsgbWFyZ2luKS4gVHJhbnNsYXRpbmcgLTUwJSB0aGVuIGxhbmRzIHRoZSBzZWNvbmRcbiAqIGNvcHkgcHJlY2lzZWx5IG9uIHRoZSBmaXJzdCBjb3B5J3Mgc3RhcnQsIGxvb3Bpbmcgc2VhbWxlc3NseSB3aXRoIG5vIGp1bXAuXG4gKiBQdXJlIENTUywgbm8gSlMsIG5vIHJlcXVlc3RBbmltYXRpb25GcmFtZS4gKi9cbi5tYXJxdWVlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIHJpZ2h0LFxuICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICMwMDAgMTAlLFxuICAgICMwMDAgOTAlLFxuICAgIHRyYW5zcGFyZW50IDEwMCVcbiAgKTtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gcmlnaHQsXG4gICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgIzAwMCAxMCUsXG4gICAgIzAwMCA5MCUsXG4gICAgdHJhbnNwYXJlbnQgMTAwJVxuICApO1xufVxuLm1hcnF1ZWUtdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG4ubWFycXVlZS10cmFjay1sZWZ0ICB7IGFuaW1hdGlvbjogc2Nyb2xsLWxlZnQgIDMwcyBsaW5lYXIgaW5maW5pdGU7IH1cbi5tYXJxdWVlLXRyYWNrLXJpZ2h0IHsgYW5pbWF0aW9uOiBzY3JvbGwtcmlnaHQgMzBzIGxpbmVhciBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbC1sZWZ0IHtcbiAgMCUgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG59XG5Aa2V5ZnJhbWVzIHNjcm9sbC1yaWdodCB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1hcnF1ZWUtdHJhY2stbGVmdCxcbiAgLm1hcnF1ZWUtdHJhY2stcmlnaHQgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLyogTWFycXVlZSBpdGVtOiBsb2dvICsgdGlueSBicmFuZCBuYW1lIHVuZGVybmVhdGgsIDQwJSBvcGFjaXR5LlxuICogbWFyZ2luLXJpZ2h0IChub3QgZ2FwKSBpcyB0aGUga2V5IHRvIHRoZSBzZWFtbGVzcyBsb29wIG1hdGguICovXG4ubWFycXVlZS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXJxdWVlLWl0ZW0gaW1nIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSkgYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG59XG4ubWFycXVlZS1pdGVtIHNwYW4ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIERhc2hlZCB0ZWFsIGNvbm5lY3RvciBsaW5lIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLyogU2l0cyBiZXR3ZWVuIHRoZSByZWxpZWYgY2FyZCBhbmQgdGhlIG1hcnF1ZWUsIHZpc3VhbGx5IHNheWluZ1xuICogXCJ0aGlzIG9uZSB0aGluZyByZXBsYWNlcyBhbGwgb2YgdGhhdC5cIiAqL1xuLmNvbm5lY3Rvci1saW5lIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgdmFyKC0tdGVhbCk7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIFNlY3Rpb24gc3BhY2luZyBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA5NnB4IDI0cHg7XG4gIHotaW5kZXg6IDE7XG59XG4uc2VjdGlvbi10aWdodCB7IHBhZGRpbmc6IDQ4cHggMjRweDsgfVxuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogODYwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY29udGFpbmVyLXdpZGUge1xuICBtYXgtd2lkdGg6IDk4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgTmF2IFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLm5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDtcbiAgei1pbmRleDogMTAwO1xuICBoZWlnaHQ6IDY4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAzMnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZSwgYm9yZGVyLWNvbG9yIDAuM3MgZWFzZSwgYmFja2Ryb3AtZmlsdGVyIDAuM3MgZWFzZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLm5hdi5zY3JvbGxlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTMsIDE0LCAyMCwgMC43Mik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJvcmRlcik7XG59XG4ubmF2LWxpbmsge1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuLm5hdi1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBNb2JpbGUgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLnNlY3Rpb24geyBwYWRkaW5nOiA2NHB4IDIwcHg7IH1cbiAgLmNvbnRhaW5lciwgLmNvbnRhaW5lci13aWRlIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5uYXYgeyBwYWRkaW5nOiAwIDE2cHg7IH1cbiAgLyogU2VjdGlvbiBsaW5rcyBjb2xsYXBzZSwgYXV0aCBjb250cm9scyBzdGF5IHZpc2libGUgXHUyMDE0IHNlZSBOYXZiYXIudHN4XG4gICAqIGZvciB0aGUgc3RydWN0dXJhbCBzcGxpdC4gV2l0aG91dCB0aGlzIHlvdSBjYW4ndCBsb2cgaW4gb24gbW9iaWxlLiAqL1xuICAubmF2LWxpbmtzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5uYXYtYXV0aCAubmF2LWxpbmsge1xuICAgIC8qIEtlZXAgXCJMb2cgaW5cIiByZWFkYWJsZSBuZXh0IHRvIHRoZSBwaWxsIG9uIG5hcnJvdyBzY3JlZW5zLiAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuICAucGFpbi1yZWxpZWYtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDtcbiAgfVxuICAucGFpbi1yZWxpZWYtYXJyb3cgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBDbGF1ZGUgTUNQIGRlbW8gKDIwMjYtMDctMTggbW9iaWxlIGF1ZGl0KTogdGhlIDE3NnB4IHNpZGViYXIgbGVmdFxuICAgKiB+MTAwcHggZm9yIHRoZSBjaGF0IGF0IDM2MHB4LiBIaWRlIGl0IG9uIHBob25lcyBcdTIwMTQgYW4gaWNvbiByYWlsXG4gICAqIHN0aWxsIHdhc3RlcyB3aWR0aCBvbiBhIHNjcmlwdGVkIGRlbW8uICovXG4gIC5jbGF1ZGUtZGVtby1zaWRlYmFyIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5jbGF1ZGUtZGVtby1ib2R5IHsgcGFkZGluZzogMjBweCAxNnB4IDhweCAhaW1wb3J0YW50OyB9XG4gIC8qIC9zZWN1cml0eSBoZXJvIGluaGVyaXRzIHRoZSBob21lcGFnZSdzIHRhbGwgZ2VvbWV0cmljLWZpZWxkIHRhaWw7XG4gICAqIGl0cyBvd24gZmllbGQgaXMgc2hvcnRlciwgc28gdHJpbSB0aGUgYmxhbmsgYm90dG9tIG9uIG1vYmlsZS4gKi9cbiAgLnNlY3VyaXR5LWhlcm8geyBwYWRkaW5nOiAxMTJweCAyMHB4IDE3MHB4ICFpbXBvcnRhbnQ7IH1cblxuICAvKiBMYW5kaW5nIHNlY3Rpb25zIHVzZSBpbmxpbmUgYGdyaWRUZW1wbGF0ZUNvbHVtbnNgIGZvciB0aGVpclxuICAgKiBcImNvcHkgfCB2aXN1YWxcIiBvciBcImhlYWRsaW5lIHwgaW50cm9cIiB0d28tY29sdW1uIHNwbGl0cy5cbiAgICogSW5saW5lIHN0eWxlcyBieXBhc3MgY2xhc3MtYmFzZWQgbWVkaWEgcXVlcmllcyBcdTIwMTQgdGhlc2VcbiAgICogYXR0cmlidXRlIHNlbGVjdG9ycyB0YXJnZXQgZWFjaCBrbm93biByYXRpbyBhbmQgZm9yY2UgYVxuICAgKiBzaW5nbGUgY29sdW1uIG9uIG1vYmlsZS4gQWRkaW5nIGEgbmV3IHNlY3Rpb24gbWVhbnMgYWRkaW5nXG4gICAqIGl0cyByYXRpbyBoZXJlIE9SIHVzaW5nIG9uZSBvZiB0aGUgZXhpc3Rpbmcgb25lcy5cbiAgICpcbiAgICogS25vd24gc3BsaXRzOlxuICAgKiAgICcxLjFmciAxZnInICAgVGhyZWVMYXllcnMgaGVhZGVyLCBTZWN1cml0eVJldmlldyBoZWFkZXJcbiAgICogICAnMWZyIDFmcicgICAgIERlbW8gKENsYXVkZSBzdXBlcnBvd2VycyBzcGxpdClcbiAgICogICAnMWZyIDEuNGZyJyAgIEhvd0l0V29ya3MgKHRpdGxlIHwgc3RlcHMpXG4gICAqICAgJzEuNWZyIDFmcicgICBDb3N0Q2FsY3VsYXRvciAod2l0aG91dCB8IHdpdGgpXG4gICAqICAgJzFmciAxLjNmcicgICBHdWlkZSB0d29Db2xTdHlsZVxuICAgKiAgICcxLjFmciAxZnInICAgSGVybyAoY29weSB8IGRlbW8pXG4gICAqICAgJzI0MHB4IDFmciAxODBweCcgICBUaHJlZUxheWVycyBsYXllciBjYXJkc1xuICAgKi9cbiAgW3N0eWxlKj1cImdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMWZyXCJdLFxuICBbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyXCJdLFxuICBbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS40ZnJcIl0sXG4gIFtzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDFmclwiXSxcbiAgW3N0eWxlKj1cImdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuM2ZyXCJdLFxuICBbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNDBweCAxZnIgMTgwcHhcIl0ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTmFycm93ZXIgcGhvbmVzOiBrZWVwIHRoZSBicmFuZCB3b3JkbWFyayBidXQgc2hyaW5rIGl0IHNvIHRoZVxuICogLnRlY2ggc3VmZml4IGRvZXNuJ3QgcHVzaCB0aGUgYXV0aCBidXR0b25zIG9mZi1zY3JlZW4uICovXG5AbWVkaWEgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgLm5hdiB7IHBhZGRpbmc6IDAgMTJweDsgfVxuICAubmF2LWF1dGggeyBnYXA6IDhweCAhaW1wb3J0YW50OyB9XG4gIC5uYXYtYXV0aCAuYnRuLXBpbGwgeyBwYWRkaW5nOiA4cHggMTRweCAhaW1wb3J0YW50OyBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsgfVxuICAvKiAyMDI2LTA3LTE4IG1vYmlsZSBhdWRpdDogZXZlbiBzaHJ1bmssIHRoZSBmdWxsIHdvcmRtYXJrICsgdG9nZ2xlICtcbiAgICogYXV0aCByb3cgZXhjZWVkZWQgMzYwcHggKGVzcC4gc2lnbmVkLWluIFwiRGFzaGJvYXJkXCIpLiBEcm9wIHRoZVxuICAgKiBcIi50ZWNoXCIgc3VmZml4IGFuZCB0aGUgdGhlbWUgdG9nZ2xlOyBidW1wIHRhcCB0YXJnZXRzIHRvIDQ0cHguICovXG4gIC5uYXYtdGxkIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5uYXYtdGhlbWUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm5hdi1hdXRoIC5uYXYtbGluayxcbiAgLm5hdi1hdXRoIC5idG4tcGlsbCB7IG1pbi1oZWlnaHQ6IDQ0cHg7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC8qIEhlcm8gcHJpbWFyeSBDVEEgd2FzIH4zMzdweCB3aWRlIFx1MjAxNCBsZXQgaXQgc2hyaW5rIGluc2lkZSAzNjBweC4gKi9cbiAgLmhlcm8tY3RhLXJvdyAuYnRuLXBpbGwtbGFyZ2UgeyBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsgcGFkZGluZzogMTVweCAyMnB4ICFpbXBvcnRhbnQ7IG1heC13aWR0aDogMTAwJTsgfVxuICAvKiBPbmUgbG9uZyBsaW5lIG9mIHJlYXNzdXJhbmNlIHJhbiBlZGdlLXRvLWVkZ2Ugb3ZlciB0aGUgc2t5bGluZTsgZ2l2ZVxuICAgKiBpdCBhIGNvbHVtbiBzbyBpdCB3cmFwcyBpbnN0ZWFkIG9mIHRvdWNoaW5nIGJvdGggYmV6ZWxzLiAqL1xuICAuaGVyby1yZWFzc3VyZSB7IG1heC13aWR0aDogMzAwcHggIWltcG9ydGFudDsgfVxufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgRG9jcyBzaXRlIChzcmMvcGFnZXMvRG9jcy50c3gpIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxuICogRmVybi1zdHlsZSB0aHJlZS1wYW5lIGRvY3Mgc2hlbGwgaW4gdGhlIGJyYW5kIHN5c3RlbTogc3RpY2t5IHRhYiByb3dcbiAqIHVuZGVyIHRoZSBmaXhlZCBuYXYsIGdyb3VwZWQgc2lkZWJhciwgYXJ0aWNsZSBjb2x1bW4sIHJpZ2h0LXJhaWwgVE9DLlxuICogQ2xhc3NlcyAobm90IGlubGluZSBzdHlsZXMpIGJlY2F1c2UgdGhlIHNoZWxsIG5lZWRzIGhvdmVyL2FjdGl2ZVxuICogc3RhdGVzLCBzdGlja3kgcG9zaXRpb25pbmcsIGFuZCBtZWRpYSBxdWVyaWVzLiAqL1xuXG4uZG9jcy10YWJzLXJvdyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogNjhweDsgLyogY2xlYXJzIHRoZSBmaXhlZCAubmF2ICovXG4gIHBhZGRpbmc6IDAgMzJweDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMywgMTQsIDIwLCAwLjg1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG59XG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIC5kb2NzLXRhYnMtcm93IHsgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjQ4LCAwLjg1KTsgfVxuXG4uZG9jcy10YWJzIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IH1cbi5kb2NzLXRhYiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zYW5zKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIHBhZGRpbmc6IDE0cHggMTRweCAxMnB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5kb2NzLXRhYjpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfVxuLmRvY3MtdGFiLmFjdGl2ZSB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tdGVhbCk7IH1cblxuLmRvY3MtbWVudS1idG4ge1xuICBkaXNwbGF5OiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zYW5zKTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiA2cHggMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZG9jcy1zaGVsbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNjRweCBtaW5tYXgoMCwgMWZyKSAyMjBweDtcbiAgZ2FwOiA0OHB4O1xuICBtYXgtd2lkdGg6IDEzNjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMzJweCA4MHB4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5cbi8qIFNpZGViYXIgKi9cbi5kb2NzLXNpZGViYXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDExNnB4OyAvKiBuYXYgNjggKyB0YWIgcm93IH40OCAqL1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTMycHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAyNHB4IDEycHggMjRweCAwO1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG59XG4uZG9jcy1zaWRlYmFyLW5hdiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyB9XG4uZG9jcy1zZWN0aW9uIHsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4uZG9jcy1zZWN0aW9uLWhlYWQge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pO1xuICBmb250LXNpemU6IDExcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEzZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7XG4gIHBhZGRpbmc6IDEwcHggOHB4IDZweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5kb2NzLXNlY3Rpb24taGVhZDpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfVxuLmRvY3MtY2hldnJvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLmRvY3MtY2hldnJvbi5vcGVuYyB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuLmRvY3Mtc2VjdGlvbi1saXN0IHsgbGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyB9XG4uZG9jcy1uYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEzLjVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTJzIGVhc2UsIGJhY2tncm91bmQgMC4xMnMgZWFzZTtcbn1cbi5kb2NzLW5hdi1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4uZG9jcy1uYXYtbGluay5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tdGVhbCk7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tdGVhbCk7XG4gIHBhZGRpbmctbGVmdDogOXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10ZWFsLWdsb3ctc29mdCk7XG59XG4uZG9jcy1zaWRlYmFyLWZvb3Qge1xuICBtYXJnaW4tdG9wOiAyOHB4O1xuICBwYWRkaW5nOiAxNHB4IDhweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1kaW0pO1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG59XG4uZG9jcy1zaWRlYmFyLWZvb3QgYSB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfVxuLmRvY3Mtc2lkZWJhci1mb290IGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tdGVhbCk7IH1cblxuLyogU2VhcmNoICovXG4uZG9jcy1zZWFyY2ggeyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDE0cHg7IH1cbi5kb2NzLXNlYXJjaC1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7XG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDlweCA0MHB4IDlweCAxMnB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xufVxuLmRvY3Mtc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH1cbi5kb2NzLXNlYXJjaC1pbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS10ZWFsLWdsb3ctc29mdCk7IH1cbi5kb2NzLXNlYXJjaC1rYmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIHRvcDogOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLXRleHQtZGltKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5kb2NzLXNlYXJjaC1yZXN1bHRzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDZweCk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAtNDBweDtcbiAgei1pbmRleDogOTU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA0MjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5kb2NzLXNlYXJjaC1lbXB0eSB7IHBhZGRpbmc6IDE0cHg7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfVxuLmRvY3Mtc2VhcmNoLWhpdCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG59XG4uZG9jcy1zZWFyY2gtaGl0Omxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9XG4uZG9jcy1zZWFyY2gtaGl0LmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLXRlYWwtZ2xvdy1zb2Z0KTsgfVxuLmRvY3Mtc2VhcmNoLWhpdC10aXRsZSB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEzLjVweDsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tc2Fucyk7IH1cbi5kb2NzLXNlYXJjaC1oaXQtYW5jaG9yIHsgY29sb3I6IHZhcigtLXRlYWwpOyB9XG4uZG9jcy1zZWFyY2gtaGl0LW1ldGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtZGltKTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmRvY3Mtc2VhcmNoLWhpdC1zbmlwcGV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIEFydGljbGUgKi9cbi5kb2NzLW1haW4geyBtaW4td2lkdGg6IDA7IHBhZGRpbmctdG9wOiA0MHB4OyB9XG4uZG9jcy1hcnRpY2xlIHsgbWF4LXdpZHRoOiA3NjBweDsgfVxuLmRvY3MtZXllYnJvdyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdGVhbCk7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZG9jcy10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zZXJpZik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMzRweCwgNC41dncsIDQ0cHgpO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbWFyZ2luOiAwIDAgMjhweDtcbn1cbi8qIEhlYWRpbmcgYW5jaG9yIG9mZnNldDogdGhlIE1hcmtkb3duIGNvbXBvbmVudCBiYWtlcyBzY3JvbGwtbWFyZ2luLXRvcFxuICogODhweCBpbmxpbmUgKHR1bmVkIGZvciBwYWdlcyB3aXRob3V0IHRoZSBzdGlja3kgdGFiIHJvdykgXHUyMDE0IHRoZSBkb2NzXG4gKiBzaGVsbCBhZGRzIH40OHB4IG9mIHN0aWNreSB0YWJzLCBzbyBvdmVycmlkZSBpdCBoZXJlLiAqL1xuLmRvY3MtYXJ0aWNsZSBoMiwgLmRvY3MtYXJ0aWNsZSBoMyB7IHNjcm9sbC1tYXJnaW4tdG9wOiAxNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qIFByZXYgLyBuZXh0IHBhZ2luYXRpb24gKi9cbi5kb2NzLXByZXZuZXh0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDE2cHg7XG4gIG1hcmdpbi10b3A6IDY0cHg7XG4gIHBhZGRpbmctdG9wOiAyOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbn1cbi5kb2NzLXBuLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuLmRvY3MtcG4tY2FyZDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7IGJhY2tncm91bmQ6IHZhcigtLXRlYWwtZ2xvdy1zb2Z0KTsgfVxuLmRvY3MtcG4tY2FyZC5uZXh0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi5kb2NzLXBuLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7XG59XG4uZG9jcy1wbi10aXRsZSB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG5cbi8qIFJpZ2h0LXJhaWwgVE9DICovXG4uZG9jcy10b2Mge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDEzMnB4O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTUycHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAyNHB4IDA7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG59XG4uZG9jcy10b2MtaGVhZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTtcbiAgZm9udC1zaXplOiAxMC41cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZG9jcy10b2MgdWwgeyBsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7IH1cbi5kb2NzLXRvYyBsaS5zdWIgeyBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cbi5kb2NzLXRvYy1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgcGFkZGluZzogM3B4IDAgM3B4IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTJzIGVhc2U7XG59XG4uZG9jcy10b2MtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfVxuLmRvY3MtdG9jLWxpbmsuYWN0aXZlIHsgY29sb3I6IHZhcigtLXRlYWwpOyBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tdGVhbCk7IH1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAuZG9jcy1zaGVsbCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjUwcHggbWlubWF4KDAsIDFmcik7IH1cbiAgLmRvY3MtdG9jIHsgZGlzcGxheTogbm9uZTsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuZG9jcy1zaGVsbCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbiAgLmRvY3MtbWVudS1idG4geyBkaXNwbGF5OiBibG9jazsgfVxuICAuZG9jcy1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDExNnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDg5O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnKTtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgfVxuICAuZG9jcy1zaWRlYmFyLm9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxuICAuZG9jcy1zZWFyY2gtcmVzdWx0cyB7IHJpZ2h0OiAwOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgLmRvY3MtdGFicy1yb3cgeyBwYWRkaW5nOiAwIDE2cHg7IH1cbiAgLmRvY3Mtc2hlbGwgeyBwYWRkaW5nOiAwIDIwcHggNjRweDsgfVxufVxuXG4vKiA9PT09PSBsaXZlIG1vYmlsZSBmaXhlcyAodHNrX2QzNTYxYWVhLCAyMDI2LTA3LTAyKSA9PT09PSAqL1xuXG4vKiBBIHBpbGwgYnV0dG9uIHNxdWVlemVkIGluIGEgZmxleCByb3cgbXVzdCBuZXZlciB3cmFwIGl0cyBsYWJlbFxuICogbWlkLXdvcmQgKFwiQnVpbGQgZm9yIC8gZnJlZVwiKSBcdTIwMTQgY29uZmlybWVkIG9uIGEgMzkwcHggdmlld3BvcnQuICovXG4uYnRuLXBpbGwgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAvKiAhaW1wb3J0YW50IGlzIHJlcXVpcmVkOiBuZWFybHkgZXZlcnkgbGFuZGluZyBzZWN0aW9uIHNldHMgaXRzIG93blxuICAgKiBpbmxpbmUgcGFkZGluZ1RvcC9wYWRkaW5nQm90dG9tIChIZXJvIDE4MC8yMDAsIEJvdHRvbUNUQSAxMjAvNjAsXG4gICAqIFNlY3VyaXR5UmVsaWFiaWxpdHkgOTYvOTYsIFx1MjAyNikgdG8gdHVuZSBkZXNrdG9wIHJoeXRobS4gSW5saW5lIHN0eWxlc1xuICAgKiBiZWF0IGEgcGxhaW4gY2xhc3MgcnVsZSwgc28gd2l0aG91dCAhaW1wb3J0YW50IHRoaXMgbW9iaWxlIHJlc2V0XG4gICAqIE5FVkVSIGZpcmVkIGFuZCBldmVyeSBzZWN0aW9uIGtlcHQgZGVza3RvcC1zaXplZCB2ZXJ0aWNhbCBwYWRkaW5nXG4gICAqIG9uIGEgcGhvbmUgXHUyMDE0IHRoZSBwYWdlIHJlbmRlcmVkIH4yNCwwMDBweCB0YWxsIGFuZCBmZWx0IHNwYXJzZS4gKi9cbiAgLnNlY3Rpb24geyBwYWRkaW5nOiA2NHB4IDIwcHggIWltcG9ydGFudDsgfVxuXG4gIC8qIFRoZSBoZXJvIG5lZWRzIGl0cyBvd24gcGFkZGluZywgbm90IHRoZSBnZW5lcmljIDY0cHg6IDY0IHRvcCBsZWF2ZXNcbiAgICogdGhlIGhlYWRsaW5lIHRvdWNoaW5nIHRoZSA2OHB4IGZpeGVkIG5hdiwgYW5kIDY0IGJvdHRvbSBkcm9wcyB0aGVcbiAgICogcmVhc3N1cmFuY2UgbGluZSBpbnRvIHRoZSBQaXhlbEZpZWxkIGRvdCBiYW5kIChhIGJvdHRvbS1hbmNob3JlZFxuICAgKiBjbGFtcCgzMDBweCw0MnZoLDQ0MHB4KSBjYW52YXMpLiAxMTIgY2xlYXJzIHRoZSBuYXY7IDI0MCBrZWVwcyB0ZXh0XG4gICAqIGFib3ZlIHRoZSBkb3RzIGF0IHRoZSBzYW1lIHZpc3VhbCByYXRpbyBhcyBkZXNrdG9wJ3MgMjAwcHguICovXG4gIC5oZXJvLXNlY3Rpb24geyBwYWRkaW5nOiAxMTJweCAyMHB4IDI0MHB4ICFpbXBvcnRhbnQ7IH1cblxuICAvKiBBdCAwLjcyIHRoZSBmcm9zdGVkIG5hdiBsZXRzIHNhdHVyYXRlZCBjb250ZW50IHNjcm9sbGVkIHVuZGVybmVhdGhcbiAgICogKHRoZSB0ZWFsIEJvdHRvbUNUQSBwaWxsKSB2aXNpYmx5IGJsZWVkIHRocm91Z2ggb24gYSBzbWFsbCB2aWV3cG9ydFxuICAgKiB3aGVyZSB0aGUgbmF2IGlzIGEgbXVjaCBsYXJnZXIgZnJhY3Rpb24gb2YgdGhlIHNjcmVlbi4gKi9cbiAgLm5hdi5zY3JvbGxlZCB7IGJhY2tncm91bmQ6IHJnYmEoMTMsIDE0LCAyMCwgMC45Nik7IH1cblxuICAvKiBTZWN1cml0eVJlbGlhYmlsaXR5J3MgYmVzcG9rZSAnMTgwcHggMS4yZnIgMS4yZnInIHRhYmxlIGdyaWQgaXNuJ3RcbiAgICogaW4gdGhlIGtub3duLXNwbGl0cyBhdHRyaWJ1dGUtc2VsZWN0b3IgbGlzdCwgc28gaXQgbmV2ZXIgY29sbGFwc2VkOlxuICAgKiB0aHJlZSB+MTEwcHggY29sdW1ucyBvZiA0LTgtbGluZSB3b3JkIGZyYWdtZW50cy4gT25jZSBzdGFja2VkIHRoZVxuICAgKiBjb2x1bW4gaGVhZGVycyBhcmUgcmVkdW5kYW50IChlYWNoIGNlbGwgY2FycmllcyBpdHMgb3duICEvXHUyNzEzIGdseXBoKS4gKi9cbiAgLnNyLWNvbC1oZWFkZXIgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnNyLXJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDtcbiAgICBnYXA6IDEwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBHaG9zdCBzaWJsaW5nIG9mIC5idG4tcGlsbCBmb3IgdGhlIGhlcm8ncyBcIkdldCBzdGFydGVkXCIgc2Vjb25kYXJ5IENUQVxuICogKDIwMjYtMDctMDMgXHUyMDE0IHByb21wdCBoaWRkZW4gYmVoaW5kIHRoZSBwcmltYXJ5IGNvcHkgcGlsbCkuICovXG4uYnRuLXBpbGwtZ2hvc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHggMjhweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG59XG4uYnRuLXBpbGwtZ2hvc3Q6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLXRlYWwpOyBjb2xvcjogdmFyKC0tdGVhbCk7IH1cblxuLyogXHUyNTAwXHUyNTAwIHN2MjogdGhlIC9zZWN1cml0eSBzaGllbGQgc3RhZ2UgKyBkaWFncmFtcyAodHNrXzVkYjc1N2Y1KSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcbiAgIEF0dGFja3MgKG1vbm8gcGlsbHMpIHNsaWRlIHRvd2FyZCB0aGUgYXBwIG9uIDYgbGFuZXM7IGluIHNhZmUgbW9kZVxuICAgdGhleSBib3VuY2Ugb2ZmIHRoZSBzaGllbGQgYmFyICh0ZWFsIHZlcmRpY3QgcG9wcyksIGluIHR5cGljYWwgbW9kZVxuICAgdGhlIHNoaWVsZCBnaG9zdHMgYW5kIHRoZXkgbGFuZCAoYXBwIGZsYXNoZXMgcmVkKS4gMThzIGxvb3AsIG9uZVxuICAgbGFuZSBldmVyeSAzczsgbmVnYXRpdmUgZGVsYXlzIHNvIHRoZSBzdGFnZSBpcyBtaWQtZmxpZ2h0IG9uIGxvYWQuXG4gICBUb2dnbGluZyBkYXRhLW1vZGUgc3dhcHMgYW5pbWF0aW9uIG5hbWVzLCB3aGljaCByZXN0YXJ0cyBjbGVhbmx5LiAqL1xuLnN2Mi1zdGFnZSB7IC0tc3RvcDogNjMlOyAtLWhpdDogNzklOyB9XG4uc3YyLWxhbmUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDMwcHg7IHotaW5kZXg6IDI7IH1cbi5zdjItbGFuZTo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNHB4OyBsZWZ0OiAzJTsgd2lkdGg6IDU5JTtcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOyBvcGFjaXR5OiAwLjQ7XG59XG4uc3YyLWF0dGFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAtMiU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC1zaXplOiAxMnB4OyB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7IGJhY2tncm91bmQ6IHZhcigtLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0td2FybmluZyk7IGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiA1cHggMTFweDsgb3BhY2l0eTogMDtcbn1cbi5zdjItdmVyZGljdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxcHg7IGxlZnQ6IGNhbGModmFyKC0tc3RvcCkgKyAzLjUlKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pOyBmb250LXNpemU6IDExLjVweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiA0cHggMTBweDtcbiAgb3BhY2l0eTogMDsgei1pbmRleDogMztcbn1cbi5zdjItdmVyZGljdC1zYWZlIHsgY29sb3I6IHZhcigtLXRlYWwpOyB9XG4uc3YyLXZlcmRpY3QtdHlwaWNhbCB7IGNvbG9yOiB2YXIoLS1kYW5nZXIpOyB9XG4uc3YyLXN0YWdlW2RhdGEtbW9kZT0nc2FmZSddIC5zdjItdmVyZGljdC10eXBpY2FsIHsgZGlzcGxheTogbm9uZTsgfVxuLnN2Mi1zdGFnZVtkYXRhLW1vZGU9J3R5cGljYWwnXSAuc3YyLXZlcmRpY3Qtc2FmZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnN2Mi1zdGFnZVtkYXRhLW1vZGU9J3NhZmUnXSAuc3YyLWF0dGFjayB7XG4gIGFuaW1hdGlvbjogc3YyLXJ1biAxOHMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taSkgKiAzcyAtIDE4cyk7XG59XG4uc3YyLXN0YWdlW2RhdGEtbW9kZT0ndHlwaWNhbCddIC5zdjItYXR0YWNrIHtcbiAgYW5pbWF0aW9uOiBzdjItcnVuLXRocm91Z2ggMThzIGxpbmVhciBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWkpICogM3MgLSAxOHMpO1xufVxuLnN2Mi1zdGFnZVtkYXRhLW1vZGU9J3NhZmUnXSAuc3YyLXZlcmRpY3Qtc2FmZSxcbi5zdjItc3RhZ2VbZGF0YS1tb2RlPSd0eXBpY2FsJ10gLnN2Mi12ZXJkaWN0LXR5cGljYWwge1xuICBhbmltYXRpb246IHN2Mi1wb3AgMThzIGxpbmVhciBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWkpICogM3MgLSAxOHMpO1xufVxuXG5Aa2V5ZnJhbWVzIHN2Mi1ydW4ge1xuICAwJSB7IGxlZnQ6IC0yJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMDsgfVxuICAxLjUlIHsgb3BhY2l0eTogMTsgfVxuICAxMiUgeyBsZWZ0OiB2YXIoLS1zdG9wKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMTsgfVxuICAxNSUgeyBsZWZ0OiBjYWxjKHZhcigtLXN0b3ApIC0gNCUpOyBvcGFjaXR5OiAxOyB9XG4gIDE5JSB7IGxlZnQ6IGNhbGModmFyKC0tc3RvcCkgLSA2JSk7IG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7IGxlZnQ6IC0yJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMDsgfVxufVxuQGtleWZyYW1lcyBzdjItcnVuLXRocm91Z2gge1xuICAwJSB7IGxlZnQ6IC0yJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMDsgfVxuICAxLjUlIHsgb3BhY2l0eTogMTsgfVxuICAxMiUgeyBsZWZ0OiB2YXIoLS1zdG9wKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMTsgfVxuICAxNiUgeyBsZWZ0OiB2YXIoLS1oaXQpOyBvcGFjaXR5OiAxOyB9XG4gIDE3LjUlIHsgbGVmdDogdmFyKC0taGl0KTsgb3BhY2l0eTogMDsgfVxuICAxMDAlIHsgbGVmdDogLTIlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyBvcGFjaXR5OiAwOyB9XG59XG5Aa2V5ZnJhbWVzIHN2Mi1wb3Age1xuICAwJSwgMTIuNSUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTsgfVxuICAxNS41JSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA1OCUgeyBvcGFjaXR5OiAxOyB9XG4gIDY2JSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG4uc3YyLXNoaWVsZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNjUuNSU7IHRvcDogNyU7IGJvdHRvbTogNyU7IHdpZHRoOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLXRlYWwpIDE4JSwgdmFyKC0tdGVhbCkgODIlLCB0cmFuc3BhcmVudCk7XG4gIGJveC1zaGFkb3c6IDAgMCAxOHB4IHZhcigtLXRlYWwtZ2xvdy1zb2Z0LCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4zNSkpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZTtcbn1cbi5zdjItc3RhZ2VbZGF0YS1tb2RlPSdzYWZlJ10gLnN2Mi1zaGllbGQge1xuICBhbmltYXRpb246IHN2Mi1zaGllbGQtaGl0IDNzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5zdjItc3RhZ2VbZGF0YS1tb2RlPSd0eXBpY2FsJ10gLnN2Mi1zaGllbGQgeyBvcGFjaXR5OiAwLjEyOyBhbmltYXRpb246IG5vbmU7IGJveC1zaGFkb3c6IG5vbmU7IH1cbkBrZXlmcmFtZXMgc3YyLXNoaWVsZC1oaXQge1xuICAwJSwgNjglIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEpOyB9XG4gIDcyJSB7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjkpOyB9XG4gIDEwMCUgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7IH1cbn1cblxuLnN2Mi1hcHAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiA0LjUlOyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDsgcGFkZGluZzogMThweCAyMnB4O1xufVxuLnN2Mi1zdGFnZVtkYXRhLW1vZGU9J3R5cGljYWwnXSAuc3YyLWFwcCB7XG4gIGFuaW1hdGlvbjogc3YyLWFwcC1oaXQgM3MgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBzdjItYXBwLWhpdCB7XG4gIDAlLCA5MiUgeyBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1zdHJvbmcpOyBib3gtc2hhZG93OiBub25lOyB9XG4gIDk2JSB7IGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyKTsgYm94LXNoYWRvdzogMCAwIDI2cHggcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoM3B4KTsgfVxuICAxMDAlIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItc3Ryb25nKTsgYm94LXNoYWRvdzogbm9uZTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG59XG5cbi8qIGRpYWdyYW0gYmVhdHMgKi9cbi5zdjItcHVsc2UgeyBhbmltYXRpb246IHN2Mi1wdWxzZSAyLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG5Aa2V5ZnJhbWVzIHN2Mi1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAwLjM1OyB9IH1cbi5zdjItc3dlZXAge1xuICBzdHJva2UtZGFzaGFycmF5OiAyNDQ7XG4gIGFuaW1hdGlvbjogc3YyLXN3ZWVwIDMuNnMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBzdjItc3dlZXAgeyBmcm9tIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI0NDsgfSB0byB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5zdjItYXR0YWNrIHsgZm9udC1zaXplOiAxMC41cHg7IHBhZGRpbmc6IDRweCA5cHg7IH1cbiAgLnN2Mi12ZXJkaWN0IHsgZm9udC1zaXplOiAxMHB4OyB9XG4gIC5zdjItYXBwIHsgcGFkZGluZzogMTJweCAxNHB4OyByaWdodDogMyU7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnN2Mi1hdHRhY2ssIC5zdjItdmVyZGljdCwgLnN2Mi1zaGllbGQsIC5zdjItYXBwLCAuc3YyLXB1bHNlLCAuc3YyLXN3ZWVwIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuc3YyLWF0dGFjayB7IGxlZnQ6IHZhcigtLXN0b3ApOyBvcGFjaXR5OiAxOyB9XG4gIC5zdjItc3RhZ2VbZGF0YS1tb2RlPSdzYWZlJ10gLnN2Mi12ZXJkaWN0LXNhZmUsXG4gIC5zdjItc3RhZ2VbZGF0YS1tb2RlPSd0eXBpY2FsJ10gLnN2Mi12ZXJkaWN0LXR5cGljYWwgeyBvcGFjaXR5OiAxOyB9XG4gIC5zdjItc3RhZ2VbZGF0YS1tb2RlPSd0eXBpY2FsJ10gLnN2Mi1hdHRhY2sgeyBsZWZ0OiB2YXIoLS1oaXQpOyB9XG59XG5cbi8qIFx1MjUwMFx1MjUwMCBYcmF5U2t5bGluZSBcdTIwMTQgaGVybyBjaXR5IGJhbmQgd2l0aCB0aGUgeC1yYXkgbGVucyAoMjAyNi0wNy0yNCkgXHUyNTAwXHUyNTAwXG4gICBUd28gcmVnaXN0ZXJlZCBwbGF0ZXM7IHRoZSBsZW5zIG1hc2tzIHRoZSB0ZWFsIHdpcmVmcmFtZSBwbGF0ZSB3aXRoIGFcbiAgIHNvZnQgcmFkaWFsIGdyYWRpZW50IHdob3NlIGNlbnRyZSAoLS14Ly0teSksIHJhZGl1cyAoLS1yKSBhbmQgb3BhY2l0eVxuICAgKC0tbykgYXJlIGRyaXZlbiBmcm9tIHJBRiB3aXRoIGV4cG9uZW50aWFsIHNtb290aGluZy4gTm90aGluZyBoZXJlXG4gICB1c2VzIGEgQ1NTIHRyYW5zaXRpb246IGV2ZXJ5IGVhc2luZyBsaXZlcyBpbiB0aGUgc21vb3RoaW5nIGxhdywgc29cbiAgIHRoZSBibG9vbSBzdGF5cyBzbG93IGFuZCBjb250aW51b3VzIGV2ZW4gd2hpbGUgdGhlIHBvaW50ZXIgbW92ZXMuICovXG4vKiBDYXBwZWQgd2lkdGgsIGNlbnRyZWQ6IG9uIGEgd2lkZSBtb25pdG9yIG9iamVjdC1maXQ6Y292ZXIgd291bGQgc2NhbGVcbiAgIHRoZSBwbGF0ZSB1cCBhbmQgY3JvcCB0aGUgY2l0eSBhd2F5LCBzbyB0aGUgYmFuZCBzdG9wcyBncm93aW5nIHBhc3RcbiAgIHRoZSBjYXAgYW5kIHRoZSBsYW5kc2NhcGUgc3RheXMgd2hvbGUuIFRoZSBob3Jpem9udGFsIGZhZGUgb25cbiAgIC54cmF5LWlubmVyIHRoZW4gZGlzc29sdmVzIHRoZSB0d28gdmVydGljYWwgcGhvdG8gZWRnZXMgdGhlIGNhcFxuICAgY3JlYXRlcyAoZm91bmRlcjogXCJmYWRlIG91dCB0aGUgZWRnZXMgaWYgdGhlIHNjcmVlbiBpcyB0b28gYmlnXCIpLiAqL1xuLyogTm93IHRoYXQgdGhlIGJhbmQgc2hvd3MgdGhlIHdob2xlIHNreWxpbmUsIHRoZSBoZXJvIGNvcHkgc2l0cyBvdmVyXG4gICBidWlsZGluZ3MgcmF0aGVyIHRoYW4gZW1wdHkgc2t5LiBUaGlzIGlzIHRoZSBjb3B5J3MgY2FudmFzOiBhIHNvZnRcbiAgIHBvb2wgb2YgcGFnZS1iYWNrZ3JvdW5kIGJlaGluZCB0aGUgdGV4dCBibG9jayBvbmx5LCBzbyB0aGUgaGVhZGxpbmVcbiAgIGFuZCB0aGUgc21hbGwgcHJpbnQgc3RheSByZWFkYWJsZSB3aGlsZSB0aGUgc2t5bGluZSBzdGlsbCByZWFkc1xuICAgdGhyb3VnaCBhcm91bmQgdGhlbS4gU2l0cyBhYm92ZSB0aGUgYmFuZCwgYmVsb3cgLmNvbnRhaW5lci13aWRlLiAqL1xuLmhlcm8tc2NyaW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiBtaW4oMTI0MHB4LCAxMDAlKTtcbiAgaGVpZ2h0OiBjbGFtcCg0MDBweCwgNDR2dywgNjYwcHgpO1xuICB6LWluZGV4OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNzIlIDYyJSBhdCA1MCUgMzglLFxuICAgIHJnYmEoMTMsIDE0LCAyMCwgMC44NikgMCUsXG4gICAgcmdiYSgxMywgMTQsIDIwLCAwLjc0KSAzMCUsXG4gICAgcmdiYSgxMywgMTQsIDIwLCAwLjQ2KSA1NSUsXG4gICAgcmdiYSgxMywgMTQsIDIwLCAwLjE2KSA3NiUsXG4gICAgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG5cbltkYXRhLXRoZW1lPSdsaWdodCddIC5oZXJvLXNjcmltIHtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNzIlIDYyJSBhdCA1MCUgMzglLFxuICAgIHJnYmEoMjUwLCAyNTAsIDI0OCwgMC44MikgMCUsXG4gICAgcmdiYSgyNTAsIDI1MCwgMjQ4LCAwLjY2KSAzMCUsXG4gICAgcmdiYSgyNTAsIDI1MCwgMjQ4LCAwLjM4KSA1NSUsXG4gICAgcmdiYSgyNTAsIDI1MCwgMjQ4LCAwLjEyKSA3NiUsXG4gICAgdHJhbnNwYXJlbnQgMTAwJSk7XG59XG5cbi8qIFRoZSBiYW5kJ3MgYXNwZWN0IHJhdGlvIElTIHRoZSBjcm9wLiBNZWFzdXJlZCBvbiB0aGUgcGxhdGUsIGFsbCB0aGVcbiAgIGNvbnRlbnQgc2l0cyBpbiByb3dzIDEwXHUyMDEzODUlOiBhYm92ZSBpdCBpcyBmbGF0IG5pZ2h0IHNreSwgYmVsb3cgaXQgaXNcbiAgIGZsYXQgd2F0ZXIuIDE0NDhcdTAwRDc4OTEga2VlcHMgcm93cyB+OFx1MjAxMzkwJSBcdTIwMTQgdGhlIGVudGlyZSBza3lsaW5lLCBib3RoXG4gICBicmlkZ2UgdG93ZXJzLCB0aGUgRmVycnkgQnVpbGRpbmcgYW5kIGl0cyByZWZsZWN0aW9ucyBcdTIwMTQgYW5kIHRocm93c1xuICAgYXdheSBvbmx5IHRoZSBkZWFkIHNwYWNlLiBTbyB0aGUgcGljdHVyZSByZWFkcyB3aG9sZSB3aGlsZSB0aGUgYmFuZFxuICAgc3RheXMgZnVsbC1ibGVlZCwgaW5zdGVhZCBvZiBzaHJpbmtpbmcgdG8gYSBib3hlZCA0OjMgcGhvdG8uXG4gICBIZWlnaHQgdGhlcmVmb3JlIGZvbGxvd3Mgd2lkdGg7IGEgc2hvcnQgdmlld3BvcnQganVzdCBwdXRzIHRoZSAoYWxyZWFkeVxuICAgZmFkZWQpIGJvdHRvbSBvZiB0aGUgd2F0ZXIgYmVsb3cgdGhlIGZvbGQuICovXG4ueHJheS1iYW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgd2lkdGg6IG1pbigxMDAlLCAxNjgwcHgpO1xuICBhc3BlY3QtcmF0aW86IDE0NDggLyA4OTE7XG4gIGJvdHRvbTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG4gIC8qIEZlYXRoZXIgb25seSB0aGUgZXh0cmVtZXMgXHUyMDE0IGFuIGFnZ3Jlc3NpdmUgdG9wIGZhZGUgd2FzIGNsaXBwaW5nIHRoZVxuICAgICB0b3dlciB0b3BzIG9mZiB0aGUgc2t5bGluZS4gKi9cbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB0cmFuc3BhcmVudCAwJSwgYmxhY2sgOSUsIGJsYWNrIDg2JSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHRyYW5zcGFyZW50IDAlLCBibGFjayA5JSwgYmxhY2sgODYlLCB0cmFuc3BhcmVudCAxMDAlKTtcbn1cblxuLyogU2VwYXJhdGUgZWxlbWVudCBwdXJlbHkgc28gdGhlIGhvcml6b250YWwgZmFkZSBjb21wb3NpdGVzIHdpdGggdGhlXG4gICBiYW5kJ3MgdmVydGljYWwgb25lIHdpdGhvdXQgbmVlZGluZyBtYXNrLWNvbXBvc2l0ZS4gQmVsb3cgdGhlIGNhcCB0aGVcbiAgIGJhbmQgaXMgZnVsbC1ibGVlZCBhbmQgaXRzIGVkZ2VzIGFyZSB0aGUgdmlld3BvcnQncywgc28gdGhlcmUnc1xuICAgbm90aGluZyB0byBmZWF0aGVyIFx1MjAxNCB0aGUgZmFkZSBvbmx5IGV4aXN0cyB0byBoaWRlIHRoZSB0d28gdmVydGljYWxcbiAgIGVkZ2VzIHRoZSBjYXAgY3JlYXRlcyBvbiBhbiBvdmVyc2l6ZWQgc2NyZWVuLiAqL1xuLnhyYXktaW5uZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjgxcHgpIHtcbiAgLnhyYXktaW5uZXIge1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwLCBibGFjayAxMjBweCwgYmxhY2sgY2FsYygxMDAlIC0gMTIwcHgpLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50IDAsIGJsYWNrIDEyMHB4LCBibGFjayBjYWxjKDEwMCUgLSAxMjBweCksIHRyYW5zcGFyZW50IDEwMCUpO1xuICB9XG59XG5cbi54cmF5LXBsYXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIDQ1JTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xufVxuXG4vKiBOaWdodCBwbGF0ZSBvbmx5IFx1MjAxNCBuZWFyLWJsYWNrIGJ5IGRlc2lnbiwgc28gYSBzbWFsbCBsaWZ0IG1ha2VzIHRoZVxuICAgbGluZSB3b3JrIHJlYWQgb24gYSBicmlnaHQgc2NyZWVuIHdpdGhvdXQgd2FzaGluZyBvdXQgdGhlIG5pZ2h0LiAqL1xuLnhyYXktcGxhdGUtLW5pZ2h0IHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMjgpIGNvbnRyYXN0KDEuMDQpOyB9XG5cbi8qIExpZ2h0IG1vZGUgc3dhcHMgdGhlIGJhc2UgcGhvdG9ncmFwaCBmb3IgYSBEQVkgcmVuZGVyIG9mIHRoZSBzYW1lXG4gICB2aWV3LCBvZmZsaW5lLXJlZ2lzdGVyZWQgdG8gdGhlIG5pZ2h0IHBsYXRlJ3MgZ2VvbWV0cnkgXHUyMDE0IHNvIHRoZVxuICAgY2FudmFzIHJldmVhbCAod2hpY2ggaXMgdGhlbWUtYmxpbmQpIHN0aWxsIHB1bmNoZXMgdGhyb3VnaCBpblxuICAgcmVnaXN0ZXIuIEJvdGggYXJlIHBsYWluIDxpbWc+czsgdGhlIGhpZGRlbiBvbmUgc3RpbGwgbG9hZHMsIHdoaWNoXG4gICBpcyB3aGF0IG1ha2VzIHRoZSB0aGVtZSB0b2dnbGUgaW5zdGFudC4gKi9cbi54cmF5LXBsYXRlLS1kYXkgeyBkaXNwbGF5OiBub25lOyB9XG5bZGF0YS10aGVtZT0nbGlnaHQnXSAueHJheS1wbGF0ZS0tbmlnaHQgeyBkaXNwbGF5OiBub25lOyB9XG5bZGF0YS10aGVtZT0nbGlnaHQnXSAueHJheS1wbGF0ZS0tZGF5IHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogVGhlIHJldmVhbCBpcyBwYWludGVkIGludG8gYSBjYW52YXMgYnkgWHJheVNreWxpbmUgKGEgYnJ1c2ggdGhhdFxuICAgdHJhY2tzIHRoZSBwb2ludGVyIGV4YWN0bHkgYW5kIGxlYXZlcyBhIGZhZGluZyBzdHJva2UpLCBzbyB0aGVyZSBpcyBub1xuICAgbWFzayBlbGVtZW50IGhlcmUgYW55IG1vcmUgXHUyMDE0IHRoZSBjYW52YXMgc2ltcGx5IHNpdHMgb3ZlciB0aGUgYmFzZVxuICAgcGxhdGUuIERpbW1pbmcgb2YgdGhlIHgtcmF5IGhhcHBlbnMgYXMgaXQncyBkcmF3biwgaW4gdGhlIGNvbXBvbmVudC4gKi9cbi54cmF5LWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEZWNvZGVkIGZvciB0aGUgYnJ1c2gsIG5ldmVyIGxhaWQgb3V0LiBOb3QgZGlzcGxheTpub25lIFx1MjAxNCB0aGF0J3MgdGhlXG4gICBvbmUgdmFsdWUgdGhhdCBjYW4ga2VlcCBhIGJyb3dzZXIgZnJvbSBwcmlvcml0aXNpbmcgdGhlIGZldGNoLiAqL1xuLnhyYXktc291cmNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC54cmF5LWJhbmQgeyBhc3BlY3QtcmF0aW86IGF1dG87IGhlaWdodDogY2xhbXAoNDIwcHgsIDU2dmgsIDYyMHB4KTsgfVxuICAvKiBUaGUgc2NyaW0gaXMgYSBtdWNoIGJpZ2dlciBmcmFjdGlvbiBvZiBhIHBob25lIGhlcm8sIHNvIGl0IHdhc1xuICAgICB3YXNoaW5nIHRoZSBza3lsaW5lIG91dC4gTGlnaHRlciB0b3VjaCBoZXJlLiAqL1xuICAuaGVyby1zY3JpbSB7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgOTIlIDYyJSBhdCA1MCUgMzYlLFxuICAgICAgcmdiYSgxMywgMTQsIDIwLCAwLjcwKSAwJSxcbiAgICAgIHJnYmEoMTMsIDE0LCAyMCwgMC41MikgMzglLFxuICAgICAgcmdiYSgxMywgMTQsIDIwLCAwLjI0KSA2NiUsXG4gICAgICB0cmFuc3BhcmVudCAxMDAlKTtcbiAgfVxuICAueHJheS1wbGF0ZSB7IG9iamVjdC1wb3NpdGlvbjogY2VudGVyIDQ3JTsgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQVVBO0FBQ0UsUUFBTTtBQUNOLGFBQVc7QUFDWCxlQUFhO0FBQ2IsVUFBUTtBQUNSLFlBQVUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM5QixtQkFBaUIsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNyQyxVQUFRO0FBQ1IsZ0JBQWM7QUFDZCxjQUFZO0FBQ1osV0FBUztBQUNULGdCQUFjO0FBQ2QsZ0JBQWMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNqQyxxQkFBbUIsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUN0QyxhQUFXO0FBQ1gsYUFBVztBQUNYLFlBQVU7QUFDVixnQkFBYyxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ2hDLGlCQUFlLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7QUFDakMsaUJBQWUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtBQUNsQyxhQUFXLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDekIsVUFBUTtBQUdSLGVBQWE7QUFDYixpQkFBZTtBQUNmLHFCQUFtQjtBQUNuQixxQkFBbUI7QUFDbkIscUJBQW1CO0FBQ25CLHFCQUFtQjtBQUNuQixjQUFZLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxH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 */
