@layer reset, tokens, base, utils, components, pages;

/* resources/css/tokens/_nysiris.css */
@layer tokens {
  :root {
    --nys-brand-primary: oklch(51% 0.18 250);
    --nys-brand-primary-hover: oklch(47% 0.20 250);
    --nys-brand-primary-active: oklch(43% 0.22 250);
    --nys-brand-on-primary: #ffffff;
    --nys-brand-accent: oklch(72% 0.16 180);
    --nys-brand-logo-url: url(/assets/brand/nysiris-logo.svg);
    --nys-bg: oklch(98% 0.005 250);
    --nys-bg-elev-1: oklch(100% 0 0);
    --nys-bg-elev-2: oklch(96% 0.005 250);
    --nys-text: oklch(20% 0.02 250);
    --nys-text-muted: oklch(45% 0.02 250);
    --nys-text-subtle: oklch(46% 0.02 250);
    --nys-border: oklch(88% 0.01 250);
    --nys-border-strong: oklch(75% 0.02 250);
    --nys-state-ok: oklch(48% 0.15 145);
    --nys-state-ko: oklch(50% 0.19 30);
    --nys-state-clarify: oklch(48% 0.13 80);
    --nys-state-pending: oklch(46% 0.02 250);
    --nys-state-ok-text: var(--nys-state-ok);
    --nys-state-ko-text: var(--nys-state-ko);
    --nys-state-clarify-text: var(--nys-state-clarify);
    --nys-state-pending-text: var(--nys-state-pending);
    --nys-brand-primary-text: var(--nys-brand-primary);
    --nys-color-text: var(--nys-text);
    --nys-color-fg: var(--nys-text);
    --nys-color-muted: var(--nys-text-muted);
    --nys-color-surface: var(--nys-bg-elev-1);
    --nys-color-surface-muted: var(--nys-bg-elev-2);
    --nys-color-muted-bg: var(--nys-bg-elev-2);
    --nys-color-border: var(--nys-border);
    --nys-color-focus: var(--nys-brand-primary);
    --nys-color-link: var(--nys-brand-primary-text);
    --nys-color-danger: var(--nys-state-ko-text);
    --nys-color-danger-bg: color-mix(in oklab, var(--nys-state-ko), transparent 88%);
    --nys-color-warning: var(--nys-state-clarify-text);
    --nys-color-warn: var(--nys-state-clarify-text);
    --nys-color-success: var(--nys-state-ok-text);
    --nys-color-ok: var(--nys-state-ok-text);
    --nys-fg: var(--nys-text);
    --nys-muted: var(--nys-text-muted);
    --nys-surface: var(--nys-bg-elev-1);
    --nys-focus: var(--nys-brand-primary);
    --nys-danger: var(--nys-state-ko-text);
    --nys-warning: var(--nys-state-clarify-text);
    --nys-success: var(--nys-state-ok-text);
    --nys-priority-p1: oklch(55% 0.22 25);
    --nys-priority-p2: oklch(65% 0.18 50);
    --nys-priority-p3: oklch(70% 0.10 80);
    --nys-priority-p4: oklch(70% 0.04 250);
    --nys-font-sans:
      ui-sans-serif,
      system-ui,
      -apple-system,
      Segoe UI,
      Roboto,
      Inter,
      Arial,
      sans-serif;
    --nys-font-mono:
      ui-monospace,
      "JetBrains Mono",
      "Cascadia Code",
      Menlo,
      Consolas,
      monospace;
    --nys-font-arabic:
      "Noto Sans Arabic",
      Tahoma,
      sans-serif;
    --nys-font-size-xs: 0.75rem;
    --nys-font-size-sm: 0.875rem;
    --nys-font-size-base: 1rem;
    --nys-font-size-md: 1.125rem;
    --nys-font-size-lg: 1.25rem;
    --nys-font-size-xl: 1.5rem;
    --nys-font-size-2xl: 1.875rem;
    --nys-font-size-3xl: 2.25rem;
    --nys-line-height-tight: 1.25;
    --nys-line-height-base: 1.5;
    --nys-line-height-relaxed: 1.7;
    --nys-radius-xs: 0.125rem;
    --nys-radius-sm: 0.25rem;
    --nys-radius-md: 0.5rem;
    --nys-radius-lg: 0.75rem;
    --nys-radius-pill: 9999px;
    --nys-shadow-sm: 0 1px 2px oklch(20% 0.02 250 / 0.06);
    --nys-shadow-md: 0 4px 6px -1px oklch(20% 0.02 250 / 0.08), 0 2px 4px -2px oklch(20% 0.02 250 / 0.05);
    --nys-shadow-lg: 0 10px 15px -3px oklch(20% 0.02 250 / 0.10), 0 4px 6px -4px oklch(20% 0.02 250 / 0.06);
    --nys-anim-fast: 120ms cubic-bezier(0.4, 0, 0.2, 1);
    --nys-anim-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
    --nys-anim-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
    --nys-sidebar-w: 16rem;
    --nys-sidebar-w-collapsed: 4rem;
    --nys-topbar-h: 3.5rem;
    --nys-content-max: 80rem;
    --nys-z-base: 1;
    --nys-z-dropdown: 100;
    --nys-z-sticky: 200;
    --nys-z-modal: 1000;
    --nys-z-toast: 1100;
    --nys-z-cmdpalette: 1200;
    --nys-z-tooltip: 1300;
  }
  :root[data-theme=dark] {
    --nys-bg: oklch(18% 0.02 250);
    --nys-bg-elev-1: oklch(22% 0.02 250);
    --nys-bg-elev-2: oklch(26% 0.02 250);
    --nys-text: oklch(95% 0.005 250);
    --nys-text-muted: oklch(75% 0.02 250);
    --nys-text-subtle: oklch(60% 0.02 250);
    --nys-border: oklch(35% 0.02 250);
    --nys-border-strong: oklch(50% 0.02 250);
    --nys-state-ok-text: oklch(80% 0.15 145);
    --nys-state-ko-text: oklch(74% 0.16 25);
    --nys-state-clarify-text: oklch(83% 0.15 85);
    --nys-state-pending-text: oklch(74% 0.03 250);
    --nys-brand-primary-text: oklch(76% 0.12 250);
    --nys-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.4);
    --nys-shadow-md: 0 4px 6px -1px oklch(0% 0 0 / 0.5), 0 2px 4px -2px oklch(0% 0 0 / 0.4);
    --nys-shadow-lg: 0 10px 15px -3px oklch(0% 0 0 / 0.55), 0 4px 6px -4px oklch(0% 0 0 / 0.45);
  }
  @media (prefers-color-scheme: dark) {
    :root[data-theme=auto] {
      --nys-bg: oklch(18% 0.02 250);
      --nys-bg-elev-1: oklch(22% 0.02 250);
      --nys-bg-elev-2: oklch(26% 0.02 250);
      --nys-text: oklch(95% 0.005 250);
      --nys-text-muted: oklch(75% 0.02 250);
      --nys-text-subtle: oklch(60% 0.02 250);
      --nys-border: oklch(35% 0.02 250);
      --nys-border-strong: oklch(50% 0.02 250);
      --nys-state-ok-text: oklch(80% 0.15 145);
      --nys-state-ko-text: oklch(74% 0.16 25);
      --nys-state-clarify-text: oklch(83% 0.15 85);
      --nys-state-pending-text: oklch(74% 0.03 250);
      --nys-brand-primary-text: oklch(76% 0.12 250);
    }
  }
  :root[data-theme=high-contrast] {
    --nys-bg: #000;
    --nys-bg-elev-1: #000;
    --nys-bg-elev-2: #111;
    --nys-text: #fff;
    --nys-text-muted: #ccc;
    --nys-text-subtle: #aaa;
    --nys-border: #fff;
    --nys-border-strong: #fff;
    --nys-brand-primary: #ffff00;
    --nys-brand-on-primary: #000;
    --nys-state-ok: #00ff00;
    --nys-state-ko: #ff5050;
    --nys-state-clarify: #ffd000;
    --nys-state-ok-text: #00ff00;
    --nys-state-ko-text: #ff7070;
    --nys-state-clarify-text: #ffd000;
    --nys-state-pending-text: #d8d8d8;
    --nys-brand-primary-text: #ffff00;
  }
  :root[dir=rtl] {
    --nys-font-sans: var(--nys-font-arabic);
  }
}

/* resources/css/tokens/_density.css */
@layer tokens {
  :root[data-density=confort],
  :root:not([data-density]) {
    --nys-space-1: 0.25rem;
    --nys-space-2: 0.5rem;
    --nys-space-3: 0.75rem;
    --nys-space-4: 1rem;
    --nys-space-5: 1.5rem;
    --nys-space-6: 2rem;
    --nys-space-8: 3rem;
    --nys-control-h: 2.5rem;
    --nys-control-padding-x: 0.875rem;
  }
  :root[data-density=compact] {
    --nys-space-1: 0.2rem;
    --nys-space-2: 0.4rem;
    --nys-space-3: 0.6rem;
    --nys-space-4: 0.8rem;
    --nys-space-5: 1.2rem;
    --nys-space-6: 1.6rem;
    --nys-space-8: 2.4rem;
    --nys-control-h: 2.25rem;
    --nys-control-padding-x: 0.75rem;
  }
  :root[data-density=dense] {
    --nys-space-1: 0.125rem;
    --nys-space-2: 0.25rem;
    --nys-space-3: 0.5rem;
    --nys-space-4: 0.625rem;
    --nys-space-5: 0.875rem;
    --nys-space-6: 1.25rem;
    --nys-space-8: 1.75rem;
    --nys-control-h: 1.875rem;
    --nys-control-padding-x: 0.5rem;
  }
}

/* resources/css/components/_buttons.css */
@layer components {
  .nys-btn {
    --_bg: var(--nys-bg-elev-2);
    --_text: var(--nys-text);
    --_border: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--nys-space-2);
    height: var(--nys-control-h);
    padding-inline: var(--nys-control-padding-x);
    border-radius: var(--nys-radius-md);
    background: var(--_bg);
    color: var(--_text);
    border: 1px solid var(--_border);
    font-weight: 500;
    font-size: var(--nys-font-size-sm);
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    text-decoration: none;
    transition:
      background var(--nys-anim-fast),
      color var(--nys-anim-fast),
      border-color var(--nys-anim-fast),
      transform var(--nys-anim-fast);
    white-space: nowrap;
  }
  .nys-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    filter: brightness(0.97);
  }
  .nys-btn:active:not(:disabled) {
    transform: translateY(0);
  }
  .nys-btn:focus-visible {
    outline: 2px solid var(--nys-brand-primary);
    outline-offset: 2px;
  }
  .nys-btn:disabled,
  .nys-btn[aria-disabled=true] {
    opacity: 0.55;
    cursor: not-allowed;
  }
  .nys-btn--primary {
    --_bg: var(--nys-brand-primary);
    --_text: var(--nys-brand-on-primary);
  }
  .nys-btn--primary:hover:not(:disabled) {
    --_bg: var(--nys-brand-primary-hover);
  }
  .nys-btn--primary:active:not(:disabled) {
    --_bg: var(--nys-brand-primary-active);
  }
  .nys-btn--secondary {
    --_border: var(--nys-border-strong);
  }
  .nys-btn--ghost {
    --_bg: transparent;
    --_text: var(--nys-text);
  }
  .nys-btn--ghost:hover:not(:disabled) {
    --_bg: var(--nys-bg-elev-2);
  }
  .nys-btn--danger {
    --_bg: var(--nys-state-ko);
    --_text: #fff;
  }
  .nys-btn--icon {
    width: var(--nys-control-h);
    padding-inline: 0;
  }
  .nys-btn--sm {
    height: calc(var(--nys-control-h) - 0.5rem);
    font-size: var(--nys-font-size-xs);
  }
  .nys-btn--lg {
    height: calc(var(--nys-control-h) + 0.5rem);
    font-size: var(--nys-font-size-md);
    padding-inline: var(--nys-space-5);
  }
}

/* resources/css/components/_inputs.css */
@layer components {
  .nys-input,
  .nys-textarea,
  .nys-select {
    display: block;
    width: 100%;
    height: var(--nys-control-h);
    padding-inline: var(--nys-control-padding-x);
    border: 1px solid var(--nys-border);
    background: var(--nys-bg-elev-1);
    color: var(--nys-text);
    border-radius: var(--nys-radius-md);
    font-size: var(--nys-font-size-base);
    transition: border-color var(--nys-anim-fast), box-shadow var(--nys-anim-fast);
  }
  .nys-textarea {
    height: auto;
    min-height: calc(var(--nys-control-h) * 3);
    padding-block: var(--nys-space-2);
    resize: vertical;
  }
  .nys-input:focus,
  .nys-textarea:focus,
  .nys-select:focus {
    outline: none;
    border-color: var(--nys-brand-primary);
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--nys-brand-primary), transparent 80%);
  }
  .nys-input:disabled,
  .nys-textarea:disabled,
  .nys-select:disabled {
    background: var(--nys-bg-elev-2);
    color: var(--nys-text-muted);
    cursor: not-allowed;
  }
  .nys-input[aria-invalid=true],
  .nys-textarea[aria-invalid=true] {
    border-color: var(--nys-state-ko);
  }
  .nys-label {
    display: block;
    margin-bottom: var(--nys-space-2);
    font-size: var(--nys-font-size-sm);
    font-weight: 500;
    color: var(--nys-text);
  }
  .nys-label--required::after {
    content: " *";
    color: var(--nys-state-ko-text);
  }
  .nys-help {
    margin-top: var(--nys-space-1);
    font-size: var(--nys-font-size-xs);
    color: var(--nys-text-muted);
  }
  .nys-error {
    margin-top: var(--nys-space-1);
    font-size: var(--nys-font-size-xs);
    color: var(--nys-state-ko-text);
  }
}

/* resources/css/components/_cards.css */
@layer components {
  .nys-card {
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-lg);
    padding: var(--nys-space-5);
    box-shadow: var(--nys-shadow-sm);
  }
  .nys-card--interactive {
    cursor: pointer;
    transition:
      transform var(--nys-anim-fast),
      box-shadow var(--nys-anim-fast),
      border-color var(--nys-anim-fast);
  }
  .nys-card--interactive:hover {
    transform: translateY(-2px);
    box-shadow: var(--nys-shadow-md);
    border-color: var(--nys-border-strong);
  }
  .nys-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--nys-space-3);
  }
  .nys-card__title {
    font-size: var(--nys-font-size-md);
    font-weight: 600;
    color: var(--nys-text);
  }
  .nys-card__subtitle {
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
  }
  .nys-kpi__value {
    font-size: var(--nys-font-size-3xl);
    font-weight: 700;
    line-height: 1;
    color: var(--nys-text);
  }
  .nys-kpi__delta {
    display: inline-flex;
    align-items: center;
    gap: var(--nys-space-1);
    font-size: var(--nys-font-size-sm);
    font-weight: 600;
  }
  .nys-kpi__delta--up {
    color: var(--nys-state-ok-text);
  }
  .nys-kpi__delta--down {
    color: var(--nys-state-ko-text);
  }
  .nys-kpi__delta--flat {
    color: var(--nys-text-muted);
  }
}

/* resources/css/components/_modal.css */
@layer components {
  .nys-modal {
    border: none;
    padding: 0;
    border-radius: var(--nys-radius-lg);
    background: var(--nys-bg-elev-1);
    color: var(--nys-text);
    box-shadow: var(--nys-shadow-lg);
    max-width: min(90vw, 40rem);
    min-width: 20rem;
  }
  .nys-modal::backdrop {
    background: oklch(0% 0 0 / 0.5);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }
  .nys-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--nys-space-4) var(--nys-space-5);
    border-bottom: 1px solid var(--nys-border);
  }
  .nys-modal__title {
    font-size: var(--nys-font-size-lg);
    font-weight: 600;
  }
  .nys-modal__body {
    padding: var(--nys-space-5);
  }
  .nys-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--nys-space-3);
    padding: var(--nys-space-4) var(--nys-space-5);
    border-top: 1px solid var(--nys-border);
    background: var(--nys-bg-elev-2);
    border-radius: 0 0 var(--nys-radius-lg) var(--nys-radius-lg);
  }
}

/* resources/css/components/_layout.css */
@layer components {
  .nys-app {
    display: grid;
    grid-template-columns: var(--nys-sidebar-w) minmax(0, 1fr);
    grid-template-rows: var(--nys-topbar-h) 1fr;
    grid-template-areas: "sidebar topbar" "sidebar main";
    height: 100vh;
    background: var(--nys-bg);
    color: var(--nys-text);
    font-family: var(--nys-font-sans);
    transition: grid-template-columns var(--nys-anim-base);
  }
  .nys-app[data-sidebar-collapsed=true] {
    grid-template-columns: var(--nys-sidebar-w-collapsed) minmax(0, 1fr);
  }
  .nys-sidebar {
    grid-area: sidebar;
    background: var(--nys-bg-elev-1);
    border-inline-end: 1px solid var(--nys-border);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
  }
  .nys-sidebar__brand {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    height: var(--nys-topbar-h);
    padding-inline: var(--nys-space-4);
    border-bottom: 1px solid var(--nys-border);
    font-weight: 700;
    font-size: var(--nys-font-size-md);
    color: var(--nys-brand-primary-text);
  }
  .nys-sidebar__nav {
    flex: 1;
    padding: var(--nys-space-3);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-1);
  }
  .nys-sidebar__item {
    display: flex;
    align-items: center;
    gap: var(--nys-space-3);
    padding: var(--nys-space-2) var(--nys-space-3);
    border-radius: var(--nys-radius-md);
    color: var(--nys-text-muted);
    text-decoration: none;
    transition: background var(--nys-anim-fast), color var(--nys-anim-fast);
  }
  .nys-sidebar__item:hover {
    background: var(--nys-bg-elev-2);
    color: var(--nys-text);
  }
  .nys-sidebar__item[aria-current=page] {
    background: color-mix(in oklab, var(--nys-brand-primary), transparent 90%);
    color: var(--nys-brand-primary-text);
    font-weight: 500;
  }
  .nys-topbar {
    grid-area: topbar;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--nys-space-5);
    background: var(--nys-bg-elev-1);
    border-bottom: 1px solid var(--nys-border);
  }
  .nys-main {
    grid-area: main;
    overflow-y: auto;
    padding: var(--nys-space-5);
    max-width: var(--nys-content-max);
    width: 100%;
    min-width: 0;
  }
  @media (max-width: 768px) {
    .nys-app {
      grid-template-columns: minmax(0, 1fr);
      grid-template-areas: "topbar" "main";
    }
    .nys-usermenu__name {
      display: none;
    }
    .nys-sidebar {
      position: fixed;
      inset-block: 0;
      inset-inline-start: 0;
      width: var(--nys-sidebar-w);
      z-index: var(--nys-z-modal);
      transform: translateX(-100%);
      transition: transform var(--nys-anim-base);
    }
    .nys-app[data-sidebar-open=true] .nys-sidebar {
      transform: translateX(0);
    }
  }
  .nys-sidebar__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: none;
  }
  .nys-sidebar__icon svg {
    width: 20px;
    height: 20px;
  }
  .nys-sidebar__collapse {
    margin-top: auto;
    border: 0;
    background: none;
    cursor: pointer;
    justify-content: center;
  }
  .nys-app[data-sidebar-collapsed=true] .nys-sidebar__brand,
  .nys-app[data-sidebar-collapsed=true] .nys-sidebar__item {
    justify-content: center;
  }
  .nys-topbar__left,
  .nys-topbar__right {
    display: flex;
    align-items: center;
    gap: var(--nys-space-3);
  }
  .nys-topbar__menu {
    display: none;
  }
  @media (max-width: 768px) {
    .nys-topbar__menu {
      display: inline-flex;
    }
  }
  .nys-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: var(--nys-radius-md);
    background: none;
    color: var(--nys-text-muted);
    cursor: pointer;
    transition: background var(--nys-anim-fast), color var(--nys-anim-fast);
  }
  .nys-iconbtn:hover {
    background: var(--nys-bg-elev-2);
    color: var(--nys-text);
  }
  .nys-topbar__search {
    display: inline-flex;
    align-items: center;
    gap: var(--nys-space-2);
    height: var(--nys-control-h);
    padding: 0 var(--nys-space-3);
    min-width: 12rem;
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-md);
    background: var(--nys-bg);
    color: var(--nys-text-muted);
    cursor: pointer;
    transition: border-color var(--nys-anim-fast);
  }
  .nys-topbar__search:hover {
    border-color: var(--nys-brand-primary);
  }
  .nys-topbar__search > span {
    flex: 1;
    text-align: start;
    font-size: var(--nys-font-size-sm);
  }
  .nys-topbar__search kbd {
    font: inherit;
    font-size: 0.75rem;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-sm);
  }
  @media (max-width: 768px) {
    .nys-topbar__search {
      min-width: 0;
    }
    .nys-topbar__search > span,
    .nys-topbar__search kbd {
      display: none;
    }
  }
  .nys-usermenu {
    position: relative;
  }
  .nys-usermenu__trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--nys-space-2);
    border: 0;
    background: none;
    cursor: pointer;
    padding: var(--nys-space-1) var(--nys-space-2);
    border-radius: var(--nys-radius-md);
    color: var(--nys-text);
    font: inherit;
  }
  .nys-usermenu__trigger:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-usermenu__name {
    font-size: var(--nys-font-size-sm);
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .nys-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    flex: none;
    background: var(--nys-brand-primary);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
  }
  .nys-usermenu__pop {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + var(--nys-space-2));
    min-width: 14rem;
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-md);
    box-shadow: var(--nys-shadow-2, 0 8px 24px rgba(0,0,0,.18));
    padding: var(--nys-space-2);
    z-index: var(--nys-z-modal);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-1);
  }
  .nys-usermenu__id {
    display: flex;
    flex-direction: column;
    padding: var(--nys-space-2) var(--nys-space-3);
    border-bottom: 1px solid var(--nys-border);
    margin-bottom: var(--nys-space-1);
  }
  .nys-usermenu__id span {
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
  }
  .nys-usermenu__item {
    display: flex;
    align-items: center;
    gap: var(--nys-space-3);
    width: 100%;
    padding: var(--nys-space-2) var(--nys-space-3);
    border: 0;
    background: none;
    cursor: pointer;
    border-radius: var(--nys-radius-md);
    color: var(--nys-text);
    text-align: start;
    font: inherit;
  }
  .nys-usermenu__item:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-scrim {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .4);
    z-index: calc(var(--nys-z-modal) - 1);
  }
  @media (min-width: 769px) {
    .nys-scrim {
      display: none;
    }
  }
}

/* resources/css/components/_field-state.css */
@layer components {
  .nys-field {
    position: relative;
    padding: var(--nys-space-3);
    border-radius: var(--nys-radius-md);
    transition: background var(--nys-anim-fast), border-color var(--nys-anim-fast);
    border: 1px solid transparent;
  }
  .nys-field[data-state=ok] {
    background: color-mix(in oklab, var(--nys-state-ok), transparent 92%);
    border-color: var(--nys-state-ok);
  }
  .nys-field[data-state=ko] {
    background: color-mix(in oklab, var(--nys-state-ko), transparent 92%);
    border-color: var(--nys-state-ko);
  }
  .nys-field[data-state=clarify] {
    background: color-mix(in oklab, var(--nys-state-clarify), transparent 90%);
    border-color: var(--nys-state-clarify);
  }
  .nys-field[data-state=pending] {
    border-color: var(--nys-border);
  }
  .nys-field[data-locked=true]::after {
    content: "\1f512";
    position: absolute;
    inset-block-start: var(--nys-space-2);
    inset-inline-end: var(--nys-space-2);
    opacity: 0.6;
  }
  .nys-field__presence {
    position: absolute;
    inset-block-start: -10px;
    inset-inline-start: var(--nys-space-2);
    display: inline-flex;
    gap: 2px;
    padding-inline: var(--nys-space-2);
    background: var(--nys-bg-elev-1);
    border-radius: var(--nys-radius-pill);
    box-shadow: var(--nys-shadow-sm);
    font-size: var(--nys-font-size-xs);
  }
  .nys-field__presence-avatar {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--nys-brand-accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
  }
  .nys-state-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--nys-space-1);
    padding: 2px var(--nys-space-2);
    border-radius: var(--nys-radius-pill);
    font-size: var(--nys-font-size-xs);
    font-weight: 600;
  }
  .nys-state-badge--ok {
    background: var(--nys-state-ok);
    color: #fff;
  }
  .nys-state-badge--ko {
    background: var(--nys-state-ko);
    color: #fff;
  }
  .nys-state-badge--clarify {
    background: var(--nys-state-clarify);
    color: #000;
  }
  .nys-state-badge--pending {
    background: var(--nys-state-pending);
    color: #fff;
  }
}

/* resources/css/utilities/_a11y.css */
@layer utils {
  .nys-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .nys-skip-link {
    position: absolute;
    inset-block-start: -100px;
    inset-inline-start: 0;
    padding: var(--nys-space-3) var(--nys-space-5);
    background: var(--nys-brand-primary);
    color: var(--nys-brand-on-primary);
    z-index: var(--nys-z-tooltip);
    transition: top var(--nys-anim-fast);
  }
  .nys-skip-link:focus {
    inset-block-start: 0;
  }
  .nys-focus-ring:focus-visible {
    outline: 2px solid var(--nys-brand-primary);
    outline-offset: 2px;
    border-radius: var(--nys-radius-sm);
  }
}

/* resources/css/utilities/_spacing.css */
@layer utils {
  .nys-gap-1 {
    gap: var(--nys-space-1);
  }
  .nys-gap-2 {
    gap: var(--nys-space-2);
  }
  .nys-gap-3 {
    gap: var(--nys-space-3);
  }
  .nys-gap-4 {
    gap: var(--nys-space-4);
  }
  .nys-gap-5 {
    gap: var(--nys-space-5);
  }
  .nys-gap-6 {
    gap: var(--nys-space-6);
  }
  .nys-stack {
    display: flex;
    flex-direction: column;
  }
  .nys-stack-h {
    display: flex;
    flex-direction: row;
    align-items: center;
  }
  .nys-stack-h--between {
    justify-content: space-between;
  }
  .nys-stack-h--end {
    justify-content: flex-end;
  }
  .nys-grid {
    display: grid;
  }
  .nys-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .nys-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .nys-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  @media (max-width: 1024px) {
    .nys-grid--4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (max-width: 640px) {
    .nys-grid--2,
    .nys-grid--3,
    .nys-grid--4 {
      grid-template-columns: 1fr;
    }
  }
}

/* resources/css/pages/_auth.css */
@layer pages {
  .nys-auth {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background: var(--nys-bg);
    padding: var(--nys-space-5);
  }
  .nys-auth__card {
    width: 100%;
    max-width: 24rem;
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-lg);
    padding: var(--nys-space-6);
    box-shadow: var(--nys-shadow-md);
  }
  .nys-auth__brand {
    text-align: center;
    margin-bottom: var(--nys-space-5);
  }
  .nys-auth__brand img {
    height: 3rem;
    margin: 0 auto;
  }
  .nys-auth__title {
    font-size: var(--nys-font-size-lg);
    font-weight: 600;
    text-align: center;
    margin-bottom: var(--nys-space-2);
  }
  .nys-auth__subtitle {
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
    text-align: center;
    margin-bottom: var(--nys-space-5);
  }
  .nys-oauth-providers {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-2);
  }
}

/* resources/css/pages/_dashboard.css */
@layer pages {
  .nys-dashboard {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-5);
  }
  .nys-dashboard__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-3);
  }
  .nys-dashboard__title {
    font-size: var(--nys-font-size-2xl);
    font-weight: 700;
  }
  .nys-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--nys-space-4);
  }
  .nys-section-title {
    font-size: var(--nys-font-size-md);
    font-weight: 600;
    margin-bottom: var(--nys-space-3);
  }
  .nys-dash__sub {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
    margin-block-start: var(--nys-space-1);
  }
  .nys-kpi {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-2);
    text-decoration: none;
    color: inherit;
    border-inline-start: 3px solid var(--nys-border);
  }
  .nys-kpi__label {
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
  }
  .nys-kpi--good {
    border-inline-start-color: var(--nys-state-ok);
  }
  .nys-kpi--warn {
    border-inline-start-color: var(--nys-state-clarify);
  }
  .nys-kpi--danger {
    border-inline-start-color: var(--nys-state-ko);
  }
  .nys-kpi--danger .nys-kpi__value {
    color: var(--nys-state-ko-text);
  }
  .nys-dash__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--nys-space-4);
  }
  .nys-dash__panel {
    display: flex;
    flex-direction: column;
  }
  .nys-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
  }
  .nys-list__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-3);
    padding-block: var(--nys-space-3);
    border-block-start: 1px solid var(--nys-border);
  }
  .nys-list > li:first-child .nys-list__row,
  .nys-list__row:first-child {
    border-block-start: 0;
  }
  .nys-list__row--link {
    text-decoration: none;
    color: inherit;
    border-radius: var(--nys-radius-sm);
    transition: background-color var(--nys-anim-fast);
  }
  .nys-list__row--link:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-list__main {
    min-width: 0;
    flex: 1;
  }
  .nys-list__aside {
    flex-shrink: 0;
  }
  .nys-list__title {
    font-weight: 600;
    color: var(--nys-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .nys-list__sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--nys-space-2);
    margin-block-start: var(--nys-space-1);
  }
  .nys-list__meta {
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
  }
  .nys-pill {
    display: inline-flex;
    align-items: center;
    padding-block: 2px;
    padding-inline: var(--nys-space-2);
    border-radius: var(--nys-radius-pill);
    font-size: var(--nys-font-size-xs);
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
  }
  .nys-pill--muted {
    background: var(--nys-bg-elev-2);
    color: var(--nys-text-muted);
  }
  .nys-pill--ok {
    background: color-mix(in oklch, var(--nys-state-ok) 12%, transparent);
    color: var(--nys-state-ok-text);
  }
  .nys-pill--warn {
    background: color-mix(in oklch, var(--nys-state-clarify) 22%, transparent);
    color: var(--nys-text);
  }
  .nys-pill--danger {
    background: color-mix(in oklch, var(--nys-state-ko) 12%, transparent);
    color: var(--nys-state-ko-text);
  }
  .nys-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 1.5rem;
    padding-inline: var(--nys-space-2);
    height: 1.5rem;
    border-radius: var(--nys-radius-pill);
    background: var(--nys-bg-elev-2);
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-xs);
    font-weight: 600;
  }
  .nys-progress {
    block-size: 6px;
    inline-size: 100%;
    background: var(--nys-bg-elev-2);
    border-radius: var(--nys-radius-pill);
    overflow: hidden;
    margin-block-start: var(--nys-space-2);
  }
  .nys-progress__bar {
    display: block;
    block-size: 100%;
    background: var(--nys-brand-primary);
    border-radius: var(--nys-radius-pill);
    transition: inline-size var(--nys-anim-base);
  }
  .nys-statusbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nys-space-2);
  }
  .nys-empty {
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
    padding-block: var(--nys-space-4);
    text-align: center;
  }
  .nys-dash__error {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--nys-space-3);
    text-align: center;
    color: var(--nys-text-muted);
  }
  .nys-skel {
    position: relative;
    overflow: hidden;
    background: var(--nys-bg-elev-2);
    border-color: transparent;
  }
  .nys-skel--kpi {
    block-size: 6.5rem;
  }
  .nys-skel--panel {
    block-size: 14rem;
  }
  .nys-skel::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(
        90deg,
        transparent,
        color-mix(in oklch, var(--nys-bg-elev-1) 60%, transparent),
        transparent);
    transform: translateX(-100%);
    animation: nys-skel-shimmer 1.4s infinite;
  }
  @keyframes nys-skel-shimmer {
    100% {
      transform: translateX(100%);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .nys-skel::after {
      animation: none;
    }
    .nys-progress__bar {
      transition: none;
    }
  }
  .nys-dashboard__actions {
    display: flex;
    gap: var(--nys-space-2);
    align-items: center;
  }
  .nys-kpi__row {
    display: flex;
    align-items: baseline;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  .nys-kpi__delta {
    font-size: var(--nys-font-size-sm);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  .nys-kpi__delta--ok {
    color: var(--nys-state-ok-text);
  }
  .nys-kpi__delta--danger {
    color: var(--nys-state-ko-text);
  }
  .nys-kpi__delta--muted {
    color: var(--nys-text-muted);
  }
  .nys-kpi__spark {
    margin-block-start: var(--nys-space-2);
  }
  .nys-chart-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--nys-space-4);
    margin-block-start: var(--nys-space-4);
  }
  .nys-chart-panel {
    min-block-size: 240px;
    display: flex;
  }
  .nys-chart-panel > nys-chart {
    inline-size: 100%;
  }
  .nys-metricpanel {
    margin-block-end: var(--nys-space-4);
  }
  .nys-metricform {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--nys-space-3);
    align-items: end;
  }
  .nys-metricform__notes {
    grid-column: 1 / -1;
  }
  .nys-metricform .nys-btn {
    block-size: var(--nys-control-h);
  }
  .nys-metricpanel__queue {
    margin-block-start: var(--nys-space-4);
  }
  .nys-metricpanel__actions {
    display: flex;
    gap: var(--nys-space-2);
  }
}

/* resources/css/pages/_projects.css */
@layer pages {
  .nys-pill--info {
    background: color-mix(in oklch, var(--nys-brand-primary) 10%, transparent);
    color: var(--nys-brand-primary-text);
  }
  .nys-detail__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--nys-space-3);
    flex-wrap: wrap;
  }
  .nys-detail__header > * {
    min-width: 0;
  }
  nys-project-board {
    display: block;
    max-inline-size: 100%;
  }
  .nys-detail__back {
    display: inline-block;
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
    text-decoration: none;
    margin-block-end: var(--nys-space-1);
  }
  .nys-detail__back:hover {
    color: var(--nys-brand-primary-text);
  }
  .nys-detail__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--nys-space-2);
    margin-block-start: var(--nys-space-2);
  }
  .nys-detail__desc {
    color: var(--nys-text-muted);
    line-height: var(--nys-line-height-relaxed);
    margin-block-end: var(--nys-space-4);
  }
  .nys-tabs {
    display: flex;
    gap: var(--nys-space-1);
    border-block-end: 1px solid var(--nys-border);
    overflow-x: auto;
  }
  .nys-tab {
    appearance: none;
    background: transparent;
    border: 0;
    border-block-end: 2px solid transparent;
    padding: var(--nys-space-3) var(--nys-space-4);
    font: inherit;
    font-weight: 600;
    color: var(--nys-text-muted);
    cursor: pointer;
    white-space: nowrap;
    transition: color var(--nys-anim-fast), border-color var(--nys-anim-fast);
  }
  .nys-tab:hover {
    color: var(--nys-text);
  }
  .nys-tab[aria-selected=true] {
    color: var(--nys-brand-primary-text);
    border-block-end-color: var(--nys-brand-primary);
  }
  .nys-tabpanel {
    margin-block-start: var(--nys-space-4);
  }
  .nys-kanban {
    display: flex;
    gap: var(--nys-space-4);
    overflow-x: auto;
    padding-block-end: var(--nys-space-2);
  }
  .nys-kanban__col {
    flex: 0 0 16rem;
    background: var(--nys-bg-elev-2);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-lg);
    padding: var(--nys-space-3);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-2);
  }
  .nys-kanban__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-2);
    font-weight: 600;
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
    padding-block-end: var(--nys-space-1);
  }
  .nys-kanban__card {
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
  }
  .nys-meta-grid {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-2);
  }
  .nys-meta-grid__row {
    display: flex;
    justify-content: space-between;
    gap: var(--nys-space-3);
  }
  .nys-meta-grid__row dt {
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
  }
  .nys-meta-grid__row dd {
    margin: 0;
    font-weight: 600;
  }
  .nys-empty--sm {
    padding-block: var(--nys-space-2);
    font-size: var(--nys-font-size-xs);
  }
  .nys-roleblock {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-4);
  }
  .nys-roleblock + .nys-roleblock {
    margin-block-start: var(--nys-space-5);
    padding-block-start: var(--nys-space-5);
    border-block-start: 1px solid var(--nys-border);
  }
  .nys-roleblock__title {
    font-size: var(--nys-font-size-xl);
    font-weight: 700;
  }
  .nys-roleblock__actions {
    display: flex;
    gap: var(--nys-space-3);
  }
  .nys-narrow {
    max-inline-size: 44rem;
    margin-inline: auto;
  }
  .nys-form {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-4);
  }
  .nys-form__actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--nys-space-3);
    margin-block-start: var(--nys-space-2);
  }
  .nys-field__label {
    display: block;
    font-size: var(--nys-font-size-sm);
    font-weight: 600;
    margin-block-end: var(--nys-space-1);
    color: var(--nys-text);
  }
  .nys-field__error {
    display: block;
    color: var(--nys-state-ko-text);
    font-size: var(--nys-font-size-sm);
    margin-block-start: var(--nys-space-1);
  }
  .nys-form .nys-input,
  .nys-form select.nys-input,
  .nys-form textarea.nys-input {
    inline-size: 100%;
    box-sizing: border-box;
  }
  .nys-form textarea.nys-input {
    resize: vertical;
    min-block-size: 6rem;
  }
  .nys-stack-cards {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-4);
  }
  .nys-pr-card .nys-detail__desc {
    white-space: pre-wrap;
  }
  .nys-sla__leg {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-1);
    margin-block-end: var(--nys-space-3);
  }
  .nys-progress__bar--ok {
    background: var(--nys-state-ok);
  }
  .nys-progress__bar--warn {
    background: var(--nys-state-clarify);
  }
  .nys-progress__bar--danger {
    background: var(--nys-state-ko);
  }
  .nys-thread {
    list-style: none;
    margin: 0 0 var(--nys-space-4);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-thread__item {
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
    background: var(--nys-bg-elev-1);
  }
  .nys-thread__item--internal {
    background: color-mix(in oklch, var(--nys-state-clarify) 10%, var(--nys-bg-elev-1));
    border-color: color-mix(in oklch, var(--nys-state-clarify) 40%, var(--nys-border));
  }
  .nys-thread__head {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    margin-block-end: var(--nys-space-2);
  }
  .nys-thread__time {
    margin-inline-start: auto;
  }
  .nys-thread__body {
    color: var(--nys-text);
    line-height: var(--nys-line-height-base);
    overflow-wrap: anywhere;
  }
  .nys-thread__body p {
    margin: 0;
    white-space: pre-wrap;
  }
  .nys-thread__form {
    margin-block-start: var(--nys-space-3);
  }
  .nys-thread__formactions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--nys-space-3);
  }
  .nys-checkline {
    display: inline-flex;
    align-items: center;
    gap: var(--nys-space-2);
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
    margin-inline-end: auto;
  }
  .nys-builder {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(18rem, 1.4fr) minmax(14rem, 1fr);
    gap: var(--nys-space-4);
    align-items: start;
  }
  @media (max-width: 60rem) {
    .nys-builder {
      grid-template-columns: 1fr;
    }
  }
  .nys-builder__tree,
  .nys-builder__props,
  .nys-builder__preview {
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-lg);
    padding: var(--nys-space-4);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-tree__section {
    border-block-end: 1px solid var(--nys-border);
    padding-block-end: var(--nys-space-2);
    margin-block-end: var(--nys-space-2);
  }
  .nys-tree__sechead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    padding: var(--nys-space-1) var(--nys-space-2);
    border-radius: var(--nys-radius-sm);
    cursor: pointer;
  }
  .nys-tree__sechead:hover,
  .nys-tree__field:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-tree__sechead.is-sel,
  .nys-tree__field.is-sel {
    background: color-mix(in oklch, var(--nys-brand-primary) 14%, transparent);
  }
  .nys-tree__field {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    padding: var(--nys-space-1) var(--nys-space-2);
    border-radius: var(--nys-radius-sm);
    cursor: pointer;
    font-size: var(--nys-font-size-sm);
  }
  .nys-tree__label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .nys-tree__add {
    background: none;
    border: 0;
    color: var(--nys-brand-primary-text);
    font-size: var(--nys-font-size-sm);
    cursor: pointer;
    text-align: start;
    padding: var(--nys-space-1) var(--nys-space-2);
  }
  .nys-iconbtn-sm {
    background: none;
    border: 0;
    color: var(--nys-text-subtle);
    cursor: pointer;
    font-size: var(--nys-font-size-sm);
    padding: 0 var(--nys-space-1);
  }
  .nys-iconbtn-sm:hover {
    color: var(--nys-state-ko-text);
  }
  .nys-opt-row {
    display: flex;
    gap: var(--nys-space-2);
    align-items: center;
    margin-block-end: var(--nys-space-1);
  }
  .nys-builder__errors {
    border-color: var(--nys-state-ko);
    background: color-mix(in oklch, var(--nys-state-ko) 8%, var(--nys-bg-elev-1));
  }
  .nys-builder__errors ul {
    margin: var(--nys-space-2) 0 0;
    padding-inline-start: var(--nys-space-4);
    font-size: var(--nys-font-size-sm);
  }
  .nys-builder__errors code {
    font-family: var(--nys-font-mono);
    color: var(--nys-state-ko-text);
  }
  .nys-builder__deferred {
    border: 1px dashed var(--nys-border-strong);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
    text-align: center;
  }
  .nys-preview-field {
    gap: var(--nys-space-1);
  }
  .nys-json {
    font-family: var(--nys-font-mono);
    font-size: var(--nys-font-size-sm);
    inline-size: 100%;
    box-sizing: border-box;
  }
  .nys-input--sm {
    padding: var(--nys-space-1) var(--nys-space-2);
  }
  .nys-btn--sm {
    padding: var(--nys-space-1) var(--nys-space-2);
    font-size: var(--nys-font-size-sm);
  }
  .nys-cahier__section {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-cahier__field {
    display: block;
  }
  .nys-cahier__field + .nys-cahier__field {
    margin-block-start: var(--nys-space-4);
    padding-block-start: var(--nys-space-4);
    border-block-start: 1px solid var(--nys-border);
  }
  .nys-cahier__deferred {
    border: 1px dashed var(--nys-border-strong);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
  }
  .nys-progress--lg {
    block-size: 10px;
  }
  .nys-cahier__livrables {
    border-color: var(--nys-state-ok);
  }
  .nys-sealing__actions {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  .nys-sealing__actions .nys-btn {
    text-decoration: none;
  }
  .nys-ged {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-ged__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-3);
    flex-wrap: wrap;
  }
  .nys-ged__crumbs {
    display: flex;
    align-items: center;
    gap: var(--nys-space-1);
    flex-wrap: wrap;
  }
  .nys-ged__crumb {
    background: none;
    border: 0;
    color: var(--nys-brand-primary-text);
    cursor: pointer;
    font: inherit;
    padding: var(--nys-space-1);
  }
  .nys-ged__crumb[disabled] {
    color: var(--nys-text);
    cursor: default;
    font-weight: 600;
  }
  .nys-ged__sep {
    color: var(--nys-text-subtle);
  }
  .nys-ged__actions {
    display: flex;
    gap: var(--nys-space-2);
    align-items: center;
  }
  .nys-ged__actions label.nys-btn {
    cursor: pointer;
  }
  .nys-ged__drop {
    border: 2px dashed var(--nys-border-strong);
    border-radius: var(--nys-radius-lg);
    padding: var(--nys-space-5);
    text-align: center;
    color: var(--nys-text-muted);
    font-size: var(--nys-font-size-sm);
    transition: background-color var(--nys-anim-fast), border-color var(--nys-anim-fast);
  }
  .nys-ged__drop.is-over {
    border-color: var(--nys-brand-primary);
    background: color-mix(in oklch, var(--nys-brand-primary) 8%, transparent);
  }
  .nys-ged__uploads {
    margin: 0;
  }
  .nys-ged__folder {
    width: 100%;
    background: none;
    border: 0;
    text-align: start;
    cursor: pointer;
    font: inherit;
  }
  .nys-ged__rowactions {
    display: flex;
    gap: var(--nys-space-1);
  }
  .nys-ged__rowactions .nys-btn {
    text-decoration: none;
  }
  .nys-gantt-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-gantt-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-3);
    flex-wrap: wrap;
  }
  .nys-gantt-zoom {
    display: inline-flex;
    gap: 0.25rem;
  }
  .nys-gantt-zoom .nys-btn.is-active {
    background: var(--nys-brand-primary);
    color: #fff;
    border-color: var(--nys-brand-primary);
  }
  .nys-gantt-deps {
    padding: var(--nys-space-4);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-gantt-depform {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) auto;
    gap: var(--nys-space-3);
    align-items: end;
  }
  .nys-gantt-depform .nys-btn {
    block-size: var(--nys-control-h);
  }
  .nys-gantt-deplist .nys-list__sub {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  nys-project-gantt nys-gantt {
    display: block;
    overflow-x: auto;
    max-inline-size: 100%;
  }
  .nys-chat {
    display: grid;
    grid-template-columns: minmax(140px, 200px) 1fr;
    gap: var(--nys-space-3);
    min-block-size: 60vh;
  }
  .nys-chat__channels {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-inline-end: 1px solid var(--nys-border);
    padding-inline-end: var(--nys-space-2);
  }
  .nys-chat__channel {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    text-align: start;
    font: inherit;
    cursor: pointer;
    padding: 0.4rem 0.6rem;
    border-radius: var(--nys-radius-sm);
    border: 0;
    background: transparent;
    color: var(--nys-text);
  }
  .nys-chat__channel:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-chat__channel.is-active {
    background: var(--nys-bg-accent, var(--nys-bg-elev-2));
    font-weight: 600;
  }
  .nys-chat__channel-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .nys-chat__unread {
    inline-size: 8px;
    block-size: 8px;
    border-radius: 50%;
    background: var(--nys-brand-primary);
    flex: none;
  }
  .nys-chat__main {
    display: flex;
    flex-direction: column;
    min-block-size: 0;
  }
  .nys-chat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-block-end: var(--nys-space-2);
    border-block-end: 1px solid var(--nys-border);
  }
  .nys-chat__title {
    margin: 0;
    font-size: var(--nys-font-size-md);
  }
  .nys-chat__status {
    font-size: 0.7rem;
    color: var(--nys-text-muted);
    border: 1px solid var(--nys-border);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
  }
  .nys-chat__status.is-live {
    color: var(--nys-state-ok-text);
    border-color: var(--nys-state-ok);
  }
  .nys-chat__pins {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    padding: var(--nys-space-2) 0;
  }
  .nys-chat__timeline {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
    padding: var(--nys-space-3) 0;
    max-block-size: 55vh;
  }
  .nys-chat__msg {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .nys-chat__msg--system {
    opacity: 0.8;
    font-style: italic;
  }
  .nys-chat__msg--deleted {
    color: var(--nys-text-muted);
  }
  .nys-chat__msg-head {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
  }
  .nys-chat__author {
    font-weight: 600;
  }
  .nys-chat__reply-ctx {
    font-size: 0.75rem;
    color: var(--nys-text-muted);
    border-inline-start: 2px solid var(--nys-border);
    padding-inline-start: 0.5rem;
  }
  .nys-chat__body {
    line-height: 1.5;
  }
  .nys-chat__body :is(p, ul, ol, pre) {
    margin: 0.25rem 0;
  }
  .nys-chat__body pre {
    background: var(--nys-bg-elev-2);
    padding: 0.5rem;
    border-radius: var(--nys-radius-sm);
    overflow-x: auto;
  }
  .nys-chat__reactions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
  }
  .nys-chat__reaction {
    font: inherit;
    font-size: 0.75rem;
    cursor: pointer;
    border: 1px solid var(--nys-border);
    background: var(--nys-bg-elev-1);
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
  }
  .nys-chat__reaction.is-mine {
    border-color: var(--nys-brand-primary);
    background: var(--nys-bg-accent, var(--nys-bg-elev-2));
  }
  .nys-chat__msg-actions {
    display: inline-flex;
    gap: 0.15rem;
    margin-inline-start: 0.5rem;
    opacity: 0;
    transition: opacity 0.12s;
  }
  .nys-chat__msg:hover .nys-chat__msg-actions {
    opacity: 1;
  }
  .nys-chat__react-add,
  .nys-chat__act {
    font: inherit;
    font-size: 0.8rem;
    cursor: pointer;
    border: 0;
    background: transparent;
    padding: 0.1rem 0.25rem;
    border-radius: var(--nys-radius-sm);
    color: var(--nys-text-muted);
  }
  .nys-chat__react-add:hover,
  .nys-chat__act:hover {
    background: var(--nys-bg-elev-2);
    color: var(--nys-text);
  }
  .nys-chat__composer {
    border-block-start: 1px solid var(--nys-border);
    padding-block-start: var(--nys-space-2);
    position: relative;
  }
  .nys-chat__composer-row {
    display: flex;
    gap: var(--nys-space-2);
    align-items: flex-end;
  }
  .nys-chat__composer textarea {
    flex: 1;
    resize: vertical;
  }
  .nys-chat__replying {
    font-size: 0.75rem;
    color: var(--nys-text-muted);
    margin-block-end: 0.25rem;
  }
  .nys-chat__readonly {
    border-block-start: 1px solid var(--nys-border);
    padding: var(--nys-space-3);
    color: var(--nys-text-muted);
    font-size: 0.85rem;
    text-align: center;
  }
  .nys-chat__mentions {
    position: absolute;
    inset-block-end: 100%;
    inset-inline-start: 0;
    list-style: none;
    margin: 0;
    padding: 0.25rem;
    background: var(--nys-bg-elev-1);
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-sm);
    box-shadow: var(--nys-shadow-md);
    z-index: 5;
  }
  .nys-chat__mentions button {
    display: block;
    inline-size: 100%;
    text-align: start;
    font: inherit;
    border: 0;
    background: transparent;
    cursor: pointer;
    padding: 0.25rem 0.6rem;
    border-radius: var(--nys-radius-sm);
  }
  .nys-chat__mentions button:hover {
    background: var(--nys-bg-elev-2);
  }
  .nys-linkbtn {
    font: inherit;
    border: 0;
    background: transparent;
    color: var(--nys-brand-primary-text);
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
  }
  @media (max-width: 640px) {
    .nys-chat {
      grid-template-columns: 1fr;
    }
    .nys-chat__channels {
      flex-direction: row;
      overflow-x: auto;
      border-inline-end: 0;
      border-block-end: 1px solid var(--nys-border);
    }
  }
  .nys-kb {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-kb__toolbar {
    display: flex;
    gap: var(--nys-space-2);
    align-items: center;
    flex-wrap: wrap;
  }
  .nys-kb__search {
    flex: 1 1 240px;
  }
  .nys-kb__filter {
    flex: 0 0 auto;
  }
  .nys-kb__row {
    inline-size: 100%;
    text-align: start;
    font: inherit;
    border: 0;
    background: transparent;
    cursor: pointer;
  }
  .nys-kb__article {
    padding: var(--nys-space-5);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-kb__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  .nys-kb__actions {
    display: flex;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  .nys-kb__head {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-2);
  }
  .nys-kb__title {
    margin: 0;
    font-size: var(--nys-font-size-xl);
  }
  .nys-kb__body {
    line-height: 1.65;
  }
  .nys-kb__body :is(h1, h2, h3) {
    margin-block: 1rem 0.5rem;
  }
  .nys-kb__body :is(p, ul, ol) {
    margin-block: 0.5rem;
  }
  .nys-kb__body pre {
    background: var(--nys-bg-elev-2);
    padding: 0.75rem;
    border-radius: var(--nys-radius-sm);
    overflow-x: auto;
  }
  .nys-kb__body code {
    background: var(--nys-bg-elev-2);
    padding: 0.1em 0.35em;
    border-radius: 3px;
  }
  .nys-kb__feedback {
    display: flex;
    align-items: center;
    gap: var(--nys-space-2);
    border-block-start: 1px solid var(--nys-border);
    padding-block-start: var(--nys-space-3);
    color: var(--nys-text-muted);
  }
  .nys-kb__edit {
    padding: var(--nys-space-5);
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-kb__editrow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nys-space-3);
  }
  .nys-kb__bodyinput {
    font-family: var(--nys-font-mono, ui-monospace, monospace);
    resize: vertical;
  }
  .nys-kb__editactions {
    display: flex;
    align-items: center;
    gap: var(--nys-space-3);
  }
  .nys-kb-related .nys-list__row {
    align-items: flex-start;
  }
  .nys-newticket {
    margin-block-end: var(--nys-space-4);
  }
  .nys-newticket__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nys-space-3);
  }
  .nys-newticket__deflect {
    border: 1px dashed var(--nys-border-strong);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
    background: var(--nys-bg-elev-2);
  }
  .nys-newticket__actions {
    display: flex;
    gap: var(--nys-space-2);
  }
  @media (max-width: 640px) {
    .nys-kb__editrow,
    .nys-newticket__row {
      grid-template-columns: 1fr;
    }
  }
  .nys-nps {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-4);
  }
  .nys-nps__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nys-space-2);
    flex-wrap: wrap;
  }
  .nys-nps__agg {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
  }
  .nys-nps__gauge {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
  }
  .nys-nps__gauge-num {
    font-size: var(--nys-font-size-3xl);
    font-weight: 700;
    line-height: 1;
  }
  .nys-nps__num--ok {
    color: var(--nys-state-ok-text);
  }
  .nys-nps__num--warn {
    color: var(--nys-state-clarify-text);
  }
  .nys-nps__num--danger {
    color: var(--nys-state-ko-text);
  }
  .nys-nps__breakdown {
    display: flex;
    block-size: 0.9rem;
    border-radius: 999px;
    overflow: hidden;
    background: var(--nys-bg-elev-2);
  }
  .nys-nps__seg {
    display: block;
    min-inline-size: 0;
    transition: inline-size 0.3s;
  }
  .nys-nps__seg--promoter {
    background: var(--nys-state-ok);
  }
  .nys-nps__seg--passive {
    background: var(--nys-state-clarify);
  }
  .nys-nps__seg--detractor {
    background: var(--nys-state-ko);
  }
  .nys-nps__legend {
    display: flex;
    gap: var(--nys-space-4);
    flex-wrap: wrap;
    font-size: var(--nys-font-size-sm);
    color: var(--nys-text-muted);
  }
  .nys-nps__dot {
    display: inline-block;
    inline-size: 0.6rem;
    block-size: 0.6rem;
    border-radius: 50%;
    margin-inline-end: 0.25rem;
  }
  .nys-nps__dot--promoter {
    background: var(--nys-state-ok);
  }
  .nys-nps__dot--passive {
    background: var(--nys-state-clarify);
  }
  .nys-nps__dot--detractor {
    background: var(--nys-state-ko);
  }
  .nys-nps__score {
    display: inline-block;
    min-inline-size: 1.6rem;
    text-align: center;
    font-weight: 700;
    border-radius: var(--nys-radius-sm);
    padding: 0 0.35rem;
    color: #fff;
  }
  .nys-nps__score--promoter {
    background: var(--nys-state-ok);
  }
  .nys-nps__score--passive {
    background: var(--nys-state-clarify);
  }
  .nys-nps__score--detractor {
    background: var(--nys-state-ko);
  }
  .nys-nps__dispatch,
  .nys-nps__survey {
    padding: var(--nys-space-4);
  }
  .nys-nps__drow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--nys-space-3);
  }
  .nys-nps__recipients {
    border: 1px solid var(--nys-border);
    border-radius: var(--nys-radius-md);
    padding: var(--nys-space-3);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-block-size: 220px;
    overflow-y: auto;
    margin-block: var(--nys-space-3);
  }
  .nys-nps__respond {
    display: flex;
    flex-direction: column;
    gap: var(--nys-space-3);
    margin-block-start: var(--nys-space-2);
  }
  .nys-nps__scale {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
  }
  .nys-nps__scalebtn {
    inline-size: 2.4rem;
    block-size: 2.4rem;
    border-radius: var(--nys-radius-sm);
    border: 1px solid var(--nys-border);
    background: var(--nys-bg-elev-1);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.08s;
  }
  .nys-nps__scalebtn:hover {
    transform: translateY(-2px);
  }
  .nys-nps__scalebtn--detractor.is-selected {
    background: var(--nys-state-ko);
    color: #fff;
    border-color: var(--nys-state-ko);
  }
  .nys-nps__scalebtn--passive.is-selected {
    background: var(--nys-state-clarify);
    color: #fff;
    border-color: var(--nys-state-clarify);
  }
  .nys-nps__scalebtn--promoter.is-selected {
    background: var(--nys-state-ok);
    color: #fff;
    border-color: var(--nys-state-ok);
  }
  .nys-nps__scale-ends {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: var(--nys-text-muted);
  }
  .nys-nps__respond-actions {
    display: flex;
    gap: var(--nys-space-2);
  }
  @media (max-width: 640px) {
    .nys-nps__drow {
      grid-template-columns: 1fr;
    }
  }
  .nys-nps__trend {
    min-block-size: 240px;
  }
  .nys-nps__trend > nys-chart {
    display: block;
    inline-size: 100%;
    block-size: 220px;
  }
  .nys-chat-hub__switch {
    display: flex;
    gap: 0.25rem;
    margin-block-end: 0.75rem;
  }
  .nys-chat-hub__switch .is-active {
    background: var(--nys-accent-soft, #e0ecff);
    color: var(--nys-brand-primary-active, #1e40af);
  }
  .nys-dm {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 1rem;
    min-block-size: 420px;
  }
  .nys-dm__list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    border-inline-end: 1px solid var(--nys-border-subtle, #eef0f3);
    padding-inline-end: 0.75rem;
  }
  .nys-dm__new {
    align-self: flex-start;
  }
  .nys-dm__hint {
    color: var(--nys-text-muted, #6b7280);
  }
  .nys-dm__picker {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-block: 0.5rem;
    border-block-end: 1px dashed var(--nys-border-subtle, #eef0f3);
    margin-block-end: 0.5rem;
  }
  .nys-dm__recipient,
  .nys-dm__conv {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    text-align: start;
    padding: 0.4rem 0.6rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
    color: inherit;
    font: inherit;
  }
  .nys-dm__recipient:hover,
  .nys-dm__conv:hover {
    background: var(--nys-surface-2, #f3f4f6);
  }
  .nys-dm__conv.is-active {
    background: var(--nys-accent-soft, #e0ecff);
    color: var(--nys-brand-primary-active, #1e40af);
  }
  .nys-dm__badge {
    min-inline-size: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--nys-accent, #2563eb);
    color: #fff;
    font-size: 0.7rem;
    text-align: center;
  }
  .nys-dm__thread {
    display: flex;
    flex-direction: column;
    min-block-size: 420px;
  }
  .nys-dm__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block-end: 0.5rem;
    border-block-end: 1px solid var(--nys-border-subtle, #eef0f3);
  }
  .nys-dm__messages {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-block: 0.75rem;
  }
  .nys-dm__msg {
    display: flex;
    flex-direction: column;
    max-inline-size: 75%;
  }
  .nys-dm__msg.is-mine {
    align-self: flex-end;
    align-items: flex-end;
  }
  .nys-dm__bubble {
    padding: 0.4rem 0.7rem;
    border-radius: 10px;
    background: var(--nys-surface-2, #f3f4f6);
  }
  .nys-dm__msg.is-mine .nys-dm__bubble {
    background: var(--nys-accent-soft, #e0ecff);
  }
  .nys-dm__deleted {
    color: var(--nys-text-muted, #6b7280);
  }
  .nys-dm__meta {
    font-size: 0.7rem;
    color: var(--nys-text-muted, #6b7280);
    margin-block-start: 0.15rem;
    display: flex;
    gap: 0.4rem;
    align-items: center;
  }
  .nys-dm__actions {
    display: inline-flex;
    gap: 0.4rem;
    opacity: 0;
    transition: opacity 0.12s ease;
  }
  .nys-dm__msg:hover .nys-dm__actions,
  .nys-dm__msg:focus-within .nys-dm__actions {
    opacity: 1;
  }
  .nys-dm__action {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    color: var(--nys-accent, #2563eb);
    font: inherit;
    font-size: 0.7rem;
  }
  .nys-dm__action:hover {
    text-decoration: underline;
  }
  .nys-dm__msg.is-editing .nys-dm__bubble {
    outline: 2px solid var(--nys-accent, #2563eb);
    outline-offset: 1px;
  }
  .nys-dm__editing {
    align-self: center;
    font-size: 0.75rem;
    color: var(--nys-accent, #2563eb);
  }
  .nys-dm__composer {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
    padding-block-start: 0.5rem;
    border-block-start: 1px solid var(--nys-border-subtle, #eef0f3);
  }
  .nys-dm__composer textarea {
    flex: 1;
    resize: vertical;
  }
  @media (max-width: 720px) {
    .nys-dm {
      grid-template-columns: 1fr;
    }
  }
  .nys-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    z-index: 40;
  }
  .nys-drawer {
    position: fixed;
    inset-block: 0;
    inset-inline-end: 0;
    z-index: 41;
    inline-size: min(480px, 92vw);
    background: var(--nys-surface, #fff);
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    padding: 1rem 1.25rem;
    overflow-y: auto;
  }
  .nys-drawer__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-block-end: 0.75rem;
    border-block-end: 1px solid var(--nys-border-subtle, #eef0f3);
  }
  .nys-drawer__title {
    font-size: 1.05rem;
    margin: 0;
  }
  .nys-drawer__sub {
    font-size: 0.75rem;
    color: var(--nys-text-muted, #6b7280);
  }
  .nys-tc {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-block-start: 0.75rem;
  }
  .nys-tc__internal {
    font-size: 0.72rem;
    color: var(--nys-text-muted, #6b7280);
    margin: 0;
  }
  .nys-tc__list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
  }
  .nys-tc__item {
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    background: var(--nys-surface-2, #f6f7f9);
  }
  .nys-tc__item.is-editing {
    outline: 2px solid var(--nys-accent, #2563eb);
    outline-offset: 1px;
  }
  .nys-tc__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
  }
  .nys-tc__time {
    font-size: 0.68rem;
    color: var(--nys-text-muted, #6b7280);
  }
  .nys-tc__body {
    margin-block-start: 0.2rem;
  }
  .nys-tc__deleted {
    color: var(--nys-text-muted, #6b7280);
  }
  .nys-tc__actions {
    display: flex;
    gap: 0.5rem;
    margin-block-start: 0.25rem;
    opacity: 0;
    transition: opacity 0.12s ease;
  }
  .nys-tc__item:hover .nys-tc__actions,
  .nys-tc__item:focus-within .nys-tc__actions {
    opacity: 1;
  }
  .nys-tc__action {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    color: var(--nys-accent, #2563eb);
    font: inherit;
    font-size: 0.7rem;
  }
  .nys-tc__action:hover {
    text-decoration: underline;
  }
  .nys-tc__editing {
    font-size: 0.75rem;
    color: var(--nys-accent, #2563eb);
  }
  .nys-tc__composer {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-block-start: 0.5rem;
    border-block-start: 1px solid var(--nys-border-subtle, #eef0f3);
  }
  .nys-tc__composer textarea {
    resize: vertical;
  }
  .nys-tc__composer-actions {
    display: flex;
    gap: 0.5rem;
  }
  .nys-metrics {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem;
  }
  .nys-metrics__title {
    font-size: 1.25rem;
    margin: 0;
  }
  .nys-metrics__controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-end;
  }
  .nys-metrics__controls .nys-field {
    min-inline-size: 9rem;
  }
  .nys-metrics__chart {
    display: block;
    padding: 1rem;
  }
  .nys-metrics__chart > nys-chart {
    display: block;
    inline-size: 100%;
    block-size: 320px;
  }
  .nys-metrics__table {
    padding: 0.5rem 1rem;
    overflow-x: auto;
  }
  .nys-metrics__table table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
  }
  .nys-metrics__table th,
  .nys-metrics__table td {
    text-align: start;
    padding: 0.4rem 0.6rem;
    border-block-end: 1px solid var(--nys-border-subtle, #eef0f3);
  }
  .nys-metrics__table th {
    color: var(--nys-text-muted, #6b7280);
    font-weight: 600;
  }
  .nys-nps__baractions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
  .nys-nps__req {
    color: var(--nys-task-critical, #dc2626);
  }
  .nys-nps__xfield {
    margin-block-start: 0.6rem;
  }
  .nys-nps__rating {
    display: flex;
    gap: 0.3rem;
  }
  .nys-nps__ratebtn {
    inline-size: 2.2rem;
    block-size: 2.2rem;
    border: 1px solid var(--nys-border, #d1d5db);
    border-radius: 6px;
    background: var(--nys-surface, #fff);
    cursor: pointer;
    font: inherit;
  }
  .nys-nps__ratebtn.is-selected {
    background: var(--nys-accent, #2563eb);
    color: #fff;
    border-color: var(--nys-accent, #2563eb);
  }
  .nys-nps__xanswers {
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.82rem;
  }
  .nys-nps__xanswers li {
    display: flex;
    gap: 0.35rem;
  }
  .nys-nps__qconfig {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .nys-nps__qrow {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    padding-block-end: 0.5rem;
    border-block-end: 1px dashed var(--nys-border-subtle, #eef0f3);
  }
  .nys-nps__qrow .nys-input {
    flex: 1 1 8rem;
    min-inline-size: 6rem;
  }
  .nys-nps__qactions {
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
  }
  .nys-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.5);
    z-index: 50;
  }
  .nys-ged__preview {
    position: fixed;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    z-index: 51;
    inline-size: min(960px, 94vw);
    max-block-size: 92vh;
    background: var(--nys-surface, #fff);
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  .nys-ged__preview-body {
    flex: 1;
    min-block-size: 50vh;
    overflow: auto;
    background: var(--nys-surface-2, #f3f4f6);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
  }
  .nys-ged__preview-img {
    max-inline-size: 100%;
    max-block-size: 70vh;
    object-fit: contain;
  }
  .nys-ged__preview-frame {
    inline-size: 100%;
    block-size: 65vh;
    border: 0;
    background: #fff;
  }
  .nys-ged__ocr {
    border-block-start: 1px solid var(--nys-border-subtle, #eef0f3);
    padding: 0.75rem 1rem;
    max-block-size: 26vh;
    overflow: auto;
  }
  .nys-ged__ocr-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-block-end: 0.4rem;
  }
  .nys-ged__ocr-text pre {
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.8rem;
    margin: 0.2rem 0 0.6rem;
  }
  .nys-sign {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .nys-sign__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .nys-sign__create {
    display: block;
  }
  .nys-sign__row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  .nys-sign__row .nys-field {
    flex: 1 1 10rem;
  }
  .nys-sign__grow {
    flex: 2 1 16rem;
  }
  .nys-sign__signers {
    border: 1px solid var(--nys-border-subtle, #eef0f3);
    border-radius: 8px;
    padding: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .nys-sign__signer {
    display: flex;
    gap: 0.5rem;
    align-items: center;
  }
  .nys-sign__signer .nys-input {
    flex: 1 1 8rem;
  }
  .nys-sign__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .nys-sign__wfhead {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
  .nys-sign__wfactions {
    margin-inline-start: auto;
    display: flex;
    gap: 0.4rem;
  }
  .nys-sign__signers-list {
    list-style: none;
    margin: 0.6rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
  }
  .nys-sign__signer-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .nys-sign__signer-name {
    flex: 1;
  }
  .nys-sign__signer-dot {
    inline-size: 0.7rem;
    block-size: 0.7rem;
    border-radius: 50%;
    background: var(--nys-text-muted, #9ca3af);
    flex: none;
  }
  .nys-sign__signer-dot--ok {
    background: var(--nys-ok, #16a34a);
  }
  .nys-sign__signer-dot--info {
    background: var(--nys-accent, #2563eb);
  }
  .nys-sign__signer-dot--danger {
    background: var(--nys-task-critical, #dc2626);
  }
  .nys-sign__signer-dot--warn {
    background: var(--nys-warn, #d97706);
  }
}

/* resources/css/app.css */
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  html {
    -webkit-text-size-adjust: 100%;
  }
  body {
    min-height: 100vh;
    line-height: 1.5;
  }
  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
  }
  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    overflow-wrap: break-word;
  }
  #app {
    isolation: isolate;
  }
  [hidden] {
    display: none !important;
  }
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
}
/*! For license information please see styles.css.LEGAL.txt */
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vcmVzb3VyY2VzL2Nzcy90b2tlbnMvX255c2lyaXMuY3NzIiwgIi4uLy4uL3Jlc291cmNlcy9jc3MvdG9rZW5zL19kZW5zaXR5LmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL2NvbXBvbmVudHMvX2J1dHRvbnMuY3NzIiwgIi4uLy4uL3Jlc291cmNlcy9jc3MvY29tcG9uZW50cy9faW5wdXRzLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL2NvbXBvbmVudHMvX2NhcmRzLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL2NvbXBvbmVudHMvX21vZGFsLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL2NvbXBvbmVudHMvX2xheW91dC5jc3MiLCAiLi4vLi4vcmVzb3VyY2VzL2Nzcy9jb21wb25lbnRzL19maWVsZC1zdGF0ZS5jc3MiLCAiLi4vLi4vcmVzb3VyY2VzL2Nzcy91dGlsaXRpZXMvX2ExMXkuY3NzIiwgIi4uLy4uL3Jlc291cmNlcy9jc3MvdXRpbGl0aWVzL19zcGFjaW5nLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL3BhZ2VzL19hdXRoLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL3BhZ2VzL19kYXNoYm9hcmQuY3NzIiwgIi4uLy4uL3Jlc291cmNlcy9jc3MvcGFnZXMvX3Byb2plY3RzLmNzcyIsICIuLi8uLi9yZXNvdXJjZXMvY3NzL2FwcC5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogTnlzaXJpcyBkZXNpZ24gdG9rZW5zIChleHRlbmRzIE9wZW4gUHJvcHMgZnJvbSBDRE4pLlxuICpcbiAqIEFsbCBjdXN0b20gdmFsdWVzIGFyZSBleHBvc2VkIGFzIENTUyBjdXN0b20gcHJvcGVydGllcyAoLS1ueXMtKikuXG4gKiBUaGVtZXMgKGxpZ2h0L2RhcmsvYXV0by9oaWdoLWNvbnRyYXN0KSB0b2dnbGUgdmlhIGRhdGEgYXR0cmlidXRlcyBvbiA8aHRtbD4uXG4gKiBXaGl0ZS1sYWJlbCBwZXIgY2xpZW50IGlzIGFjaGlldmVkIGJ5IG92ZXJyaWRpbmcgYSBzbWFsbCBzZXQgb2YgYnJhbmQgdG9rZW5zXG4gKiB2aWEgaW5saW5lIDxzdHlsZT4gaW5qZWN0ZWQgYnkgdGhlIGJhY2stZW5kIGJhc2VkIG9uIHRoZSBjbGllbnQncyBicmFuZGluZy5cbiAqL1xuXG46cm9vdCB7XG4gICAgLyogLS0tLS0tLS0tLSBCcmFuZCAob3ZlcnJpZGFibGUgZm9yIHdoaXRlLWxhYmVsKSAtLS0tLS0tLS0tXG4gICAgICAgTCB0dW5lZCBzbyB3aGl0ZSB0ZXh0IG9uIHRoZSBwcmltYXJ5IG1lZXRzIFdDQUcgMi4xIEFBIChcdTIyNjU0LjU6MSk6XG4gICAgICAgb2tsY2goNTglKSByZW5kZXJlZCAjMDA3Y2RmID0gNC4yNDoxIChmYWlscyk7IDU0JSBjbGVhcnMgdGhlIGJhciB3aGlsZVxuICAgICAgIGtlZXBpbmcgdGhlIGluZGlnbyBodWUuIGhvdmVyL2FjdGl2ZSBzdGF5IHByb2dyZXNzaXZlbHkgZGFya2VyLiAqL1xuICAgIC0tbnlzLWJyYW5kLXByaW1hcnk6IG9rbGNoKDUxJSAwLjE4IDI1MCk7ICAgICAvKiBpbmRpZ28tZGVlcCBcdTIwMTQgQUEgYm90aCBhcyBhIGJnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlciB3aGl0ZSB0ZXh0IEFORCBhcyB0ZXh0IG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbGlnaHQtdGludCBzdXJmYWNlcyAoXHUyMjY1NC41OjEpICovXG4gICAgLS1ueXMtYnJhbmQtcHJpbWFyeS1ob3Zlcjogb2tsY2goNDclIDAuMjAgMjUwKTtcbiAgICAtLW55cy1icmFuZC1wcmltYXJ5LWFjdGl2ZTogb2tsY2goNDMlIDAuMjIgMjUwKTtcbiAgICAtLW55cy1icmFuZC1vbi1wcmltYXJ5OiAjZmZmZmZmO1xuICAgIC0tbnlzLWJyYW5kLWFjY2VudDogb2tsY2goNzIlIDAuMTYgMTgwKTsgICAgICAvKiB0ZWFsICovXG4gICAgLS1ueXMtYnJhbmQtbG9nby11cmw6IHVybCgnL2Fzc2V0cy9icmFuZC9ueXNpcmlzLWxvZ28uc3ZnJyk7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFNlbWFudGljIGNvbG9ycyAtLS0tLS0tLS0tICovXG4gICAgLS1ueXMtYmc6IG9rbGNoKDk4JSAwLjAwNSAyNTApO1xuICAgIC0tbnlzLWJnLWVsZXYtMTogb2tsY2goMTAwJSAwIDApO1xuICAgIC0tbnlzLWJnLWVsZXYtMjogb2tsY2goOTYlIDAuMDA1IDI1MCk7XG4gICAgLS1ueXMtdGV4dDogb2tsY2goMjAlIDAuMDIgMjUwKTtcbiAgICAvKiBCb3RoIG11dGVkL3N1YnRsZSBkYXJrZW5lZCBzbyBTTUFMTCBURVhUIGNsZWFycyBXQ0FHIEFBICg0LjU6MSkgd2hlblxuICAgICAgIHJlbmRlcmVkIG9uIHRoZSBsaWdodGVzdCB0aGVtZSBzdXJmYWNlcyAoYmcgLyBiZy1lbGV2LTEgLyBiZy1lbGV2LTIpLlxuICAgICAgIEF1ZGl0IChheGUtY29yZSA0LjEwKTogb2tsY2goNTAlKSBcdTIxOTIgNC4wMjoxIG9uIHdoaXRlIChmYWlsKSwgb2tsY2goNDYlKSBcdTIxOTIgNC43OjEgKHBhc3MpO1xuICAgICAgIHN1YnRsZSBtb3ZlZCBmcm9tIG9rbGNoKDY1JSkgXHUyMTkyIG9rbGNoKDQ2JSkgc28gZGFzaGJvYXJkIFwiZW1wdHlcIiBoaW50cyArIHNpZGViYXIgXCJzb29uXCJcbiAgICAgICBwaWxscyBjbGVhciBBQSBvbiBib3RoIHdoaXRlIEFORCBva2xjaCg5NiUpIGVsZXZhdGVkIHN1cmZhY2VzLiBWaXN1YWwgaGllcmFyY2h5XG4gICAgICAgcHJlc2VydmVkIHZpYSBmb250LXN0eWxlOml0YWxpYyArIHNpemUgb24gdGhlIHJ1bGVzIHRoYXQgb3B0IGludG8gXCJzdWJ0bGVcIi4gKi9cbiAgICAtLW55cy10ZXh0LW11dGVkOiBva2xjaCg0NSUgMC4wMiAyNTApO1xuICAgIC0tbnlzLXRleHQtc3VidGxlOiBva2xjaCg0NiUgMC4wMiAyNTApO1xuICAgIC0tbnlzLWJvcmRlcjogb2tsY2goODglIDAuMDEgMjUwKTtcbiAgICAtLW55cy1ib3JkZXItc3Ryb25nOiBva2xjaCg3NSUgMC4wMiAyNTApO1xuXG4gICAgLyogU3RhdGVzIChmaWVsZCB2YWxpZGF0aW9uIE9LL0tPL1x1MDBDMCBjbGFyaWZpZXIgXHUyMDE0IGZyb20gXHUwMEE3NC4zLjEpLlxuICAgICAgIEwgdHVuZWQgZm9yIFdDQUcgQUEgd2hlbiB1c2VkIGFzIFNNQUxMIFRFWFQgb24gdGhlIG1hdGNoaW5nIGxpZ2h0LXRpbnRcbiAgICAgICBzdGF0dXMgc3VyZmFjZXMgKHRoZSBjaGlwcyByZW5kZXIgMTJweCBzdGF0dXMgdGV4dCk7IHRoZSBodWVzIHN0YXkgY2xlYXJseVxuICAgICAgIGdyZWVuL3JlZC9hbWJlci9zbGF0ZS4gKG9rbGNoIDYwXHUyMDEzNzAlIGZhaWxlZDogZ3JlZW4gMi45NzoxLCBldGMuKSAqL1xuICAgIC0tbnlzLXN0YXRlLW9rOiBva2xjaCg0OCUgMC4xNSAxNDUpOyAgICAgICAgICAvKiBncmVlbiAqL1xuICAgIC0tbnlzLXN0YXRlLWtvOiBva2xjaCg1MCUgMC4xOSAzMCk7ICAgICAgICAgICAvKiByZWQgKi9cbiAgICAtLW55cy1zdGF0ZS1jbGFyaWZ5OiBva2xjaCg0OCUgMC4xMyA4MCk7ICAgICAgLyogYW1iZXIgXHUyMDE0IGRhcmtlbmVkIGZyb20gNTIlIHRvIDQ4JSBzbyB0aGUgYWxwaGEvY2xhcmlmeSBwaWxsIHRleHQgY2xlYXJzIEFBIG9uIHRoZSAyMCUtbWl4IHRpbnRlZCBiYWNrZ3JvdW5kICh3YXMgNC4yMToxLCBub3cgfjUuMDoxKSAqL1xuICAgIC0tbnlzLXN0YXRlLXBlbmRpbmc6IG9rbGNoKDQ2JSAwLjAyIDI1MCk7ICAgICAvKiBzbGF0ZSAqL1xuXG4gICAgLyogUmVhZGFibGUtYXMtVEVYVCB2YXJpYW50cyBvZiB0aGUgYnJhbmQgKyBzdGF0ZSBjb2xvdXJzLlxuICAgICAgIFRoZSBiYXNlIHRva2VucyBhYm92ZSBhcmUgdHVuZWQgdG8gY2FycnkgI2ZmZi8jMDAwIGFzIGEgU09MSUQgYmFja2dyb3VuZFxuICAgICAgIChiYWRnZXMsIHByaW1hcnkvZGFuZ2VyIGJ1dHRvbnMsIGF2YXRhcnMpIGFuZCBhcmUgdGhlcmVmb3JlIGRlbGliZXJhdGVseVxuICAgICAgIGRhcmsgXHUyMDE0IHdoaWNoIG1ha2VzIHRoZW0gdG9vIGRhcmsgdG8gcmVhZCBhcyBURVhUIG9uIGEgREFSSyBzdXJmYWNlICh0aGVcbiAgICAgICBkYXJrLXRoZW1lIHBhZ2UgYmcgb3IgYSBkYXJrIHN0YXRlLXRpbnQgY2hpcCwgd2hlcmUgdGhleSBzY29yZWQgMi40XHUyMDEzMy4xOjEpLlxuICAgICAgIFRoZXNlICotdGV4dCB0b2tlbnMgYXJlIHdoYXQgZXZlcnkgYGNvbG9yOmAgdGV4dCBydWxlIHJlZmVyZW5jZXM7IGluIGxpZ2h0XG4gICAgICAgbW9kZSB0aGV5IGVxdWFsIHRoZSBiYXNlIHRva2VuIChhbHJlYWR5IEFBIG9uIGxpZ2h0IHN1cmZhY2VzKSwgYW5kIHRoZVxuICAgICAgIGRhcmsgLyBoaWdoLWNvbnRyYXN0IHRoZW1lcyBvdmVycmlkZSB0aGVtIHRvIGxpZ2h0ZXIgdmFsdWVzIHNvIHRleHQgY2xlYXJzXG4gICAgICAgV0NBRyBBQSBpbiBldmVyeSB0aGVtZS4gU09MSUQgYmFja2dyb3VuZHMga2VlcCB1c2luZyB0aGUgYmFzZSB0b2tlbi4gKi9cbiAgICAtLW55cy1zdGF0ZS1vay10ZXh0OiB2YXIoLS1ueXMtc3RhdGUtb2spO1xuICAgIC0tbnlzLXN0YXRlLWtvLXRleHQ6IHZhcigtLW55cy1zdGF0ZS1rbyk7XG4gICAgLS1ueXMtc3RhdGUtY2xhcmlmeS10ZXh0OiB2YXIoLS1ueXMtc3RhdGUtY2xhcmlmeSk7XG4gICAgLS1ueXMtc3RhdGUtcGVuZGluZy10ZXh0OiB2YXIoLS1ueXMtc3RhdGUtcGVuZGluZyk7XG4gICAgLS1ueXMtYnJhbmQtcHJpbWFyeS10ZXh0OiB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeSk7XG5cbiAgICAvKiAtLS0tLS0tLS0tIENvbXBvbmVudCBjb2xvdXIgYWxpYXNlcyAtLS0tLS0tLS0tXG4gICAgICAgU2V2ZXJhbCBzaGFkb3ctRE9NIGNvbXBvbmVudHMgKG55cy1mb3JtLWZpZWxkLCBueXMtcmljaC1lZGl0b3IsXG4gICAgICAgbnlzLXNpZ25hdHVyZSwgbnlzLWRpYWdyYW0sIFx1MjAyNikgcmVmZXJlbmNlIGAtLW55cy1jb2xvci0qYCBuYW1lcyB0aGF0IG5ldmVyXG4gICAgICAgZXhpc3RlZCwgc28gYHZhcigtLW55cy1jb2xvci10ZXh0LCAjMTExKWAgYWx3YXlzIGZlbGwgYmFjayB0byB0aGUgaGFyZGNvZGVkXG4gICAgICAgTElHSFQtbW9kZSBoZXggXHUyMDE0IGludmlzaWJsZSBvbiB0aGUgZGFyayB0aGVtZSAobGFiZWwgMS4wODoxLCBpbnB1dHMsIGVycm9ycykuXG4gICAgICAgQWxpYXNpbmcgdGhlbSB0byB0aGUgcmVhbCB0b2tlbnMgKHdoaWNoIGZsaXAgaW4gdGhlIGRhcmsgLyBoaWdoLWNvbnRyYXN0XG4gICAgICAgYmxvY2tzKSBtYWtlcyBldmVyeSBjb21wb25lbnQgdGhlbWUtYXdhcmUgaW4gT05FIHBsYWNlOyBjdXN0b20gcHJvcGVydGllc1xuICAgICAgIHBpZXJjZSB0aGUgc2hhZG93IGJvdW5kYXJ5IGFuZCByZXNvbHZlIGxhemlseSwgc28gbm8gcGVyLWNvbXBvbmVudCBlZGl0IGlzXG4gICAgICAgbmVlZGVkLiBUZXh0LWJlYXJpbmcgYWNjZW50cyBtYXAgdG8gdGhlIHJlYWRhYmxlICotdGV4dCB2YXJpYW50cyBzbyB0aGV5XG4gICAgICAgY2xlYXIgV0NBRyBBQSBvbiBkYXJrIHN1cmZhY2VzLiAqL1xuICAgIC0tbnlzLWNvbG9yLXRleHQ6IHZhcigtLW55cy10ZXh0KTtcbiAgICAtLW55cy1jb2xvci1mZzogdmFyKC0tbnlzLXRleHQpO1xuICAgIC0tbnlzLWNvbG9yLW11dGVkOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgLS1ueXMtY29sb3Itc3VyZmFjZTogdmFyKC0tbnlzLWJnLWVsZXYtMSk7XG4gICAgLS1ueXMtY29sb3Itc3VyZmFjZS1tdXRlZDogdmFyKC0tbnlzLWJnLWVsZXYtMik7XG4gICAgLS1ueXMtY29sb3ItbXV0ZWQtYmc6IHZhcigtLW55cy1iZy1lbGV2LTIpO1xuICAgIC0tbnlzLWNvbG9yLWJvcmRlcjogdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgLS1ueXMtY29sb3ItZm9jdXM6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbiAgICAtLW55cy1jb2xvci1saW5rOiB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeS10ZXh0KTtcbiAgICAtLW55cy1jb2xvci1kYW5nZXI6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTtcbiAgICAtLW55cy1jb2xvci1kYW5nZXItYmc6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tbnlzLXN0YXRlLWtvKSwgdHJhbnNwYXJlbnQgODglKTtcbiAgICAtLW55cy1jb2xvci13YXJuaW5nOiB2YXIoLS1ueXMtc3RhdGUtY2xhcmlmeS10ZXh0KTtcbiAgICAtLW55cy1jb2xvci13YXJuOiB2YXIoLS1ueXMtc3RhdGUtY2xhcmlmeS10ZXh0KTtcbiAgICAtLW55cy1jb2xvci1zdWNjZXNzOiB2YXIoLS1ueXMtc3RhdGUtb2stdGV4dCk7XG4gICAgLS1ueXMtY29sb3Itb2s6IHZhcigtLW55cy1zdGF0ZS1vay10ZXh0KTtcblxuICAgIC8qIFNhbWUgYnVnLCB0aGUgYmFyZSBgLS1ueXMtKmAgc3BlbGxpbmcgKG5vIGAtY29sb3ItYCkgdXNlZCBieSBvdGhlciBzaGFkb3dcbiAgICAgICBjb21wb25lbnRzIChueXMta2FuYmFuLWJvYXJkLCBueXMtZ2FudHQsIFx1MjAyNik6IGB2YXIoLS1ueXMtbXV0ZWQsICM4ODgpYCBldGMuXG4gICAgICAgTkI6IC0tbnlzLWJvcmRlciBhbmQgLS1ueXMtdGV4dC1tdXRlZCBBUkUgcmVhbCB0b2tlbnMgYW5kIG11c3QgTk9UIGJlXG4gICAgICAgcmUtYWxpYXNlZDsgb25seSB0aGUgbWlzc2luZyBuYW1lcyBiZWxvdy4gKi9cbiAgICAtLW55cy1mZzogdmFyKC0tbnlzLXRleHQpO1xuICAgIC0tbnlzLW11dGVkOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgLS1ueXMtc3VyZmFjZTogdmFyKC0tbnlzLWJnLWVsZXYtMSk7XG4gICAgLS1ueXMtZm9jdXM6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbiAgICAtLW55cy1kYW5nZXI6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTtcbiAgICAtLW55cy13YXJuaW5nOiB2YXIoLS1ueXMtc3RhdGUtY2xhcmlmeS10ZXh0KTtcbiAgICAtLW55cy1zdWNjZXNzOiB2YXIoLS1ueXMtc3RhdGUtb2stdGV4dCk7XG5cbiAgICAvKiBTdGF0dXNlcyAoS2FuYmFuIC8gU0xBIC8gVGlja2V0IHByaW9yaXRpZXMpICovXG4gICAgLS1ueXMtcHJpb3JpdHktcDE6IG9rbGNoKDU1JSAwLjIyIDI1KTtcbiAgICAtLW55cy1wcmlvcml0eS1wMjogb2tsY2goNjUlIDAuMTggNTApO1xuICAgIC0tbnlzLXByaW9yaXR5LXAzOiBva2xjaCg3MCUgMC4xMCA4MCk7XG4gICAgLS1ueXMtcHJpb3JpdHktcDQ6IG9rbGNoKDcwJSAwLjA0IDI1MCk7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFR5cG9ncmFwaHkgLS0tLS0tLS0tLSAqL1xuICAgIC0tbnlzLWZvbnQtc2FuczogdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBJbnRlciwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgLS1ueXMtZm9udC1tb25vOiB1aS1tb25vc3BhY2UsIFwiSmV0QnJhaW5zIE1vbm9cIiwgXCJDYXNjYWRpYSBDb2RlXCIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICAgIC0tbnlzLWZvbnQtYXJhYmljOiBcIk5vdG8gU2FucyBBcmFiaWNcIiwgVGFob21hLCBzYW5zLXNlcmlmO1xuXG4gICAgLS1ueXMtZm9udC1zaXplLXhzOiAwLjc1cmVtO1xuICAgIC0tbnlzLWZvbnQtc2l6ZS1zbTogMC44NzVyZW07XG4gICAgLS1ueXMtZm9udC1zaXplLWJhc2U6IDFyZW07XG4gICAgLS1ueXMtZm9udC1zaXplLW1kOiAxLjEyNXJlbTtcbiAgICAtLW55cy1mb250LXNpemUtbGc6IDEuMjVyZW07XG4gICAgLS1ueXMtZm9udC1zaXplLXhsOiAxLjVyZW07XG4gICAgLS1ueXMtZm9udC1zaXplLTJ4bDogMS44NzVyZW07XG4gICAgLS1ueXMtZm9udC1zaXplLTN4bDogMi4yNXJlbTtcblxuICAgIC0tbnlzLWxpbmUtaGVpZ2h0LXRpZ2h0OiAxLjI1O1xuICAgIC0tbnlzLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNTtcbiAgICAtLW55cy1saW5lLWhlaWdodC1yZWxheGVkOiAxLjc7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFJhZGlpIC8gc2hhZG93cyAtLS0tLS0tLS0tICovXG4gICAgLS1ueXMtcmFkaXVzLXhzOiAwLjEyNXJlbTtcbiAgICAtLW55cy1yYWRpdXMtc206IDAuMjVyZW07XG4gICAgLS1ueXMtcmFkaXVzLW1kOiAwLjVyZW07XG4gICAgLS1ueXMtcmFkaXVzLWxnOiAwLjc1cmVtO1xuICAgIC0tbnlzLXJhZGl1cy1waWxsOiA5OTk5cHg7XG5cbiAgICAtLW55cy1zaGFkb3ctc206IDAgMXB4IDJweCBva2xjaCgyMCUgMC4wMiAyNTAgLyAwLjA2KTtcbiAgICAtLW55cy1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IG9rbGNoKDIwJSAwLjAyIDI1MCAvIDAuMDgpLCAwIDJweCA0cHggLTJweCBva2xjaCgyMCUgMC4wMiAyNTAgLyAwLjA1KTtcbiAgICAtLW55cy1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggb2tsY2goMjAlIDAuMDIgMjUwIC8gMC4xMCksIDAgNHB4IDZweCAtNHB4IG9rbGNoKDIwJSAwLjAyIDI1MCAvIDAuMDYpO1xuXG4gICAgLyogLS0tLS0tLS0tLSBBbmltYXRpb24gLS0tLS0tLS0tLSAqL1xuICAgIC0tbnlzLWFuaW0tZmFzdDogMTIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAtLW55cy1hbmltLWJhc2U6IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgLS1ueXMtYW5pbS1zbG93OiAzNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuXG4gICAgLyogLS0tLS0tLS0tLSBMYXlvdXQgLS0tLS0tLS0tLSAqL1xuICAgIC0tbnlzLXNpZGViYXItdzogMTZyZW07XG4gICAgLS1ueXMtc2lkZWJhci13LWNvbGxhcHNlZDogNHJlbTtcbiAgICAtLW55cy10b3BiYXItaDogMy41cmVtO1xuICAgIC0tbnlzLWNvbnRlbnQtbWF4OiA4MHJlbTtcblxuICAgIC0tbnlzLXotYmFzZTogMTtcbiAgICAtLW55cy16LWRyb3Bkb3duOiAxMDA7XG4gICAgLS1ueXMtei1zdGlja3k6IDIwMDtcbiAgICAtLW55cy16LW1vZGFsOiAxMDAwO1xuICAgIC0tbnlzLXotdG9hc3Q6IDExMDA7XG4gICAgLS1ueXMtei1jbWRwYWxldHRlOiAxMjAwO1xuICAgIC0tbnlzLXotdG9vbHRpcDogMTMwMDtcbn1cblxuLyogLS0tLS0tLS0tLSBEYXJrIHRoZW1lIC0tLS0tLS0tLS0gKi9cbjpyb290W2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcbiAgICAtLW55cy1iZzogb2tsY2goMTglIDAuMDIgMjUwKTtcbiAgICAtLW55cy1iZy1lbGV2LTE6IG9rbGNoKDIyJSAwLjAyIDI1MCk7XG4gICAgLS1ueXMtYmctZWxldi0yOiBva2xjaCgyNiUgMC4wMiAyNTApO1xuICAgIC0tbnlzLXRleHQ6IG9rbGNoKDk1JSAwLjAwNSAyNTApO1xuICAgIC0tbnlzLXRleHQtbXV0ZWQ6IG9rbGNoKDc1JSAwLjAyIDI1MCk7XG4gICAgLS1ueXMtdGV4dC1zdWJ0bGU6IG9rbGNoKDYwJSAwLjAyIDI1MCk7XG4gICAgLS1ueXMtYm9yZGVyOiBva2xjaCgzNSUgMC4wMiAyNTApO1xuICAgIC0tbnlzLWJvcmRlci1zdHJvbmc6IG9rbGNoKDUwJSAwLjAyIDI1MCk7XG5cbiAgICAvKiBMaWdodGVuZWQgdGV4dCBhY2NlbnRzIHNvIGJyYW5kL3N0YXRlIFRFWFQgY2xlYXJzIFdDQUcgQUEgb24gZGFyayBzdXJmYWNlc1xuICAgICAgICh0aGUgYmFzZSB0b2tlbnMgc3RheSBkYXJrIGZvciAjZmZmLW9uLXNvbGlkIGJhZGdlcy9idXR0b25zIFx1MjAxNCBzZWUgOnJvb3QpLiAqL1xuICAgIC0tbnlzLXN0YXRlLW9rLXRleHQ6IG9rbGNoKDgwJSAwLjE1IDE0NSk7XG4gICAgLS1ueXMtc3RhdGUta28tdGV4dDogb2tsY2goNzQlIDAuMTYgMjUpO1xuICAgIC0tbnlzLXN0YXRlLWNsYXJpZnktdGV4dDogb2tsY2goODMlIDAuMTUgODUpO1xuICAgIC0tbnlzLXN0YXRlLXBlbmRpbmctdGV4dDogb2tsY2goNzQlIDAuMDMgMjUwKTtcbiAgICAtLW55cy1icmFuZC1wcmltYXJ5LXRleHQ6IG9rbGNoKDc2JSAwLjEyIDI1MCk7XG5cbiAgICAtLW55cy1zaGFkb3ctc206IDAgMXB4IDJweCBva2xjaCgwJSAwIDAgLyAwLjQpO1xuICAgIC0tbnlzLXNoYWRvdy1tZDogMCA0cHggNnB4IC0xcHggb2tsY2goMCUgMCAwIC8gMC41KSwgMCAycHggNHB4IC0ycHggb2tsY2goMCUgMCAwIC8gMC40KTtcbiAgICAtLW55cy1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggb2tsY2goMCUgMCAwIC8gMC41NSksIDAgNHB4IDZweCAtNHB4IG9rbGNoKDAlIDAgMCAvIDAuNDUpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgOnJvb3RbZGF0YS10aGVtZT1cImF1dG9cIl0ge1xuICAgICAgICAtLW55cy1iZzogb2tsY2goMTglIDAuMDIgMjUwKTtcbiAgICAgICAgLS1ueXMtYmctZWxldi0xOiBva2xjaCgyMiUgMC4wMiAyNTApO1xuICAgICAgICAtLW55cy1iZy1lbGV2LTI6IG9rbGNoKDI2JSAwLjAyIDI1MCk7XG4gICAgICAgIC0tbnlzLXRleHQ6IG9rbGNoKDk1JSAwLjAwNSAyNTApO1xuICAgICAgICAtLW55cy10ZXh0LW11dGVkOiBva2xjaCg3NSUgMC4wMiAyNTApO1xuICAgICAgICAtLW55cy10ZXh0LXN1YnRsZTogb2tsY2goNjAlIDAuMDIgMjUwKTtcbiAgICAgICAgLS1ueXMtYm9yZGVyOiBva2xjaCgzNSUgMC4wMiAyNTApO1xuICAgICAgICAtLW55cy1ib3JkZXItc3Ryb25nOiBva2xjaCg1MCUgMC4wMiAyNTApO1xuICAgICAgICAtLW55cy1zdGF0ZS1vay10ZXh0OiBva2xjaCg4MCUgMC4xNSAxNDUpO1xuICAgICAgICAtLW55cy1zdGF0ZS1rby10ZXh0OiBva2xjaCg3NCUgMC4xNiAyNSk7XG4gICAgICAgIC0tbnlzLXN0YXRlLWNsYXJpZnktdGV4dDogb2tsY2goODMlIDAuMTUgODUpO1xuICAgICAgICAtLW55cy1zdGF0ZS1wZW5kaW5nLXRleHQ6IG9rbGNoKDc0JSAwLjAzIDI1MCk7XG4gICAgICAgIC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dDogb2tsY2goNzYlIDAuMTIgMjUwKTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0gSGlnaC1jb250cmFzdCBhMTF5IC0tLS0tLS0tLS0gKi9cbjpyb290W2RhdGEtdGhlbWU9XCJoaWdoLWNvbnRyYXN0XCJdIHtcbiAgICAtLW55cy1iZzogIzAwMDtcbiAgICAtLW55cy1iZy1lbGV2LTE6ICMwMDA7XG4gICAgLS1ueXMtYmctZWxldi0yOiAjMTExO1xuICAgIC0tbnlzLXRleHQ6ICNmZmY7XG4gICAgLS1ueXMtdGV4dC1tdXRlZDogI2NjYztcbiAgICAtLW55cy10ZXh0LXN1YnRsZTogI2FhYTtcbiAgICAtLW55cy1ib3JkZXI6ICNmZmY7XG4gICAgLS1ueXMtYm9yZGVyLXN0cm9uZzogI2ZmZjtcbiAgICAtLW55cy1icmFuZC1wcmltYXJ5OiAjZmZmZjAwO1xuICAgIC0tbnlzLWJyYW5kLW9uLXByaW1hcnk6ICMwMDA7XG4gICAgLS1ueXMtc3RhdGUtb2s6ICMwMGZmMDA7XG4gICAgLS1ueXMtc3RhdGUta286ICNmZjUwNTA7XG4gICAgLS1ueXMtc3RhdGUtY2xhcmlmeTogI2ZmZDAwMDtcbiAgICAvKiBFeHBsaWNpdCB0ZXh0IGFjY2VudHMgXHUyMDE0IGJyaWdodCBvbiB0aGUgcHVyZS1ibGFjayBIQyBzdXJmYWNlIChwZW5kaW5nIGlzIG5vdFxuICAgICAgIG92ZXJyaWRkZW4gYWJvdmUsIHNvIHdpdGhvdXQgdGhpcyBpdCB3b3VsZCBpbmhlcml0IHRoZSBkYXJrIHNsYXRlIGJhc2UpLiAqL1xuICAgIC0tbnlzLXN0YXRlLW9rLXRleHQ6ICMwMGZmMDA7XG4gICAgLS1ueXMtc3RhdGUta28tdGV4dDogI2ZmNzA3MDtcbiAgICAtLW55cy1zdGF0ZS1jbGFyaWZ5LXRleHQ6ICNmZmQwMDA7XG4gICAgLS1ueXMtc3RhdGUtcGVuZGluZy10ZXh0OiAjZDhkOGQ4O1xuICAgIC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dDogI2ZmZmYwMDtcbn1cblxuLyogLS0tLS0tLS0tLSBSVEwgYWRqdXN0bWVudHMgLS0tLS0tLS0tLSAqL1xuOnJvb3RbZGlyPVwicnRsXCJdIHtcbiAgICAtLW55cy1mb250LXNhbnM6IHZhcigtLW55cy1mb250LWFyYWJpYyk7XG59XG4iLCAiLyoqXG4gKiBEZW5zaXR5IHRva2VucyBcdTIwMTQgY29udHJvbGxlZCB2aWEgW2RhdGEtZGVuc2l0eT1cImNvbmZvcnR8Y29tcGFjdHxkZW5zZVwiXSBvbiA8aHRtbD4uXG4gKiBVc2VkIGJ5IHNwYWNpbmcgdXRpbGl0aWVzIGFuZCBjb21wb25lbnQgcGFkZGluZyBvdmVycmlkZXMuXG4gKi9cblxuOnJvb3RbZGF0YS1kZW5zaXR5PVwiY29uZm9ydFwiXSwgOnJvb3Q6bm90KFtkYXRhLWRlbnNpdHldKSB7XG4gICAgLS1ueXMtc3BhY2UtMTogMC4yNXJlbTtcbiAgICAtLW55cy1zcGFjZS0yOiAwLjVyZW07XG4gICAgLS1ueXMtc3BhY2UtMzogMC43NXJlbTtcbiAgICAtLW55cy1zcGFjZS00OiAxcmVtO1xuICAgIC0tbnlzLXNwYWNlLTU6IDEuNXJlbTtcbiAgICAtLW55cy1zcGFjZS02OiAycmVtO1xuICAgIC0tbnlzLXNwYWNlLTg6IDNyZW07XG4gICAgLS1ueXMtY29udHJvbC1oOiAyLjVyZW07XG4gICAgLS1ueXMtY29udHJvbC1wYWRkaW5nLXg6IDAuODc1cmVtO1xufVxuXG46cm9vdFtkYXRhLWRlbnNpdHk9XCJjb21wYWN0XCJdIHtcbiAgICAtLW55cy1zcGFjZS0xOiAwLjJyZW07XG4gICAgLS1ueXMtc3BhY2UtMjogMC40cmVtO1xuICAgIC0tbnlzLXNwYWNlLTM6IDAuNnJlbTtcbiAgICAtLW55cy1zcGFjZS00OiAwLjhyZW07XG4gICAgLS1ueXMtc3BhY2UtNTogMS4ycmVtO1xuICAgIC0tbnlzLXNwYWNlLTY6IDEuNnJlbTtcbiAgICAtLW55cy1zcGFjZS04OiAyLjRyZW07XG4gICAgLS1ueXMtY29udHJvbC1oOiAyLjI1cmVtO1xuICAgIC0tbnlzLWNvbnRyb2wtcGFkZGluZy14OiAwLjc1cmVtO1xufVxuXG46cm9vdFtkYXRhLWRlbnNpdHk9XCJkZW5zZVwiXSB7XG4gICAgLS1ueXMtc3BhY2UtMTogMC4xMjVyZW07XG4gICAgLS1ueXMtc3BhY2UtMjogMC4yNXJlbTtcbiAgICAtLW55cy1zcGFjZS0zOiAwLjVyZW07XG4gICAgLS1ueXMtc3BhY2UtNDogMC42MjVyZW07XG4gICAgLS1ueXMtc3BhY2UtNTogMC44NzVyZW07XG4gICAgLS1ueXMtc3BhY2UtNjogMS4yNXJlbTtcbiAgICAtLW55cy1zcGFjZS04OiAxLjc1cmVtO1xuICAgIC0tbnlzLWNvbnRyb2wtaDogMS44NzVyZW07XG4gICAgLS1ueXMtY29udHJvbC1wYWRkaW5nLXg6IDAuNXJlbTtcbn1cbiIsICIvKipcbiAqIEJ1dHRvbnMgXHUyMDE0IHByaW1hcnksIHNlY29uZGFyeSwgZ2hvc3QsIGRhbmdlciwgaWNvbi1vbmx5LlxuICogQWNjZXNzaWJpbGl0eS1maXJzdDogZm9jdXMtdmlzaWJsZSByaW5nLCBwcmVmZXJzLXJlZHVjZWQtbW90aW9uIGNvbXBsaWFudC5cbiAqL1xuXG4ubnlzLWJ0biB7XG4gICAgLS1fYmc6IHZhcigtLW55cy1iZy1lbGV2LTIpO1xuICAgIC0tX3RleHQ6IHZhcigtLW55cy10ZXh0KTtcbiAgICAtLV9ib3JkZXI6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgaGVpZ2h0OiB2YXIoLS1ueXMtY29udHJvbC1oKTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tbnlzLWNvbnRyb2wtcGFkZGluZy14KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLW1kKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1fYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1fdGV4dCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tX2JvcmRlcik7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1ueXMtYW5pbS1mYXN0KSwgY29sb3IgdmFyKC0tbnlzLWFuaW0tZmFzdCksXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLW55cy1hbmltLWZhc3QpLCB0cmFuc2Zvcm0gdmFyKC0tbnlzLWFuaW0tZmFzdCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5ueXMtYnRuOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyBmaWx0ZXI6IGJyaWdodG5lc3MoMC45Nyk7IH1cbi5ueXMtYnRuOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuLm55cy1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuLm55cy1idG46ZGlzYWJsZWQsIC5ueXMtYnRuW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICBvcGFjaXR5OiAwLjU1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5ueXMtYnRuLS1wcmltYXJ5IHtcbiAgICAtLV9iZzogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpO1xuICAgIC0tX3RleHQ6IHZhcigtLW55cy1icmFuZC1vbi1wcmltYXJ5KTtcbn1cbi5ueXMtYnRuLS1wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgLS1fYmc6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LWhvdmVyKTsgfVxuLm55cy1idG4tLXByaW1hcnk6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsgLS1fYmc6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LWFjdGl2ZSk7IH1cblxuLm55cy1idG4tLXNlY29uZGFyeSB7IC0tX2JvcmRlcjogdmFyKC0tbnlzLWJvcmRlci1zdHJvbmcpOyB9XG5cbi5ueXMtYnRuLS1naG9zdCB7XG4gICAgLS1fYmc6IHRyYW5zcGFyZW50O1xuICAgIC0tX3RleHQ6IHZhcigtLW55cy10ZXh0KTtcbn1cbi5ueXMtYnRuLS1naG9zdDpob3Zlcjpub3QoOmRpc2FibGVkKSB7IC0tX2JnOiB2YXIoLS1ueXMtYmctZWxldi0yKTsgfVxuXG4ubnlzLWJ0bi0tZGFuZ2VyIHtcbiAgICAtLV9iZzogdmFyKC0tbnlzLXN0YXRlLWtvKTtcbiAgICAtLV90ZXh0OiAjZmZmO1xufVxuXG4ubnlzLWJ0bi0taWNvbiB7IHdpZHRoOiB2YXIoLS1ueXMtY29udHJvbC1oKTsgcGFkZGluZy1pbmxpbmU6IDA7IH1cblxuLm55cy1idG4tLXNtIHsgaGVpZ2h0OiBjYWxjKHZhcigtLW55cy1jb250cm9sLWgpIC0gMC41cmVtKTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXhzKTsgfVxuLm55cy1idG4tLWxnIHsgaGVpZ2h0OiBjYWxjKHZhcigtLW55cy1jb250cm9sLWgpICsgMC41cmVtKTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLW1kKTsgcGFkZGluZy1pbmxpbmU6IHZhcigtLW55cy1zcGFjZS01KTsgfVxuIiwgIi8qKlxuICogRm9ybSBpbnB1dHMgXHUyMDE0IHRleHQsIHRleHRhcmVhLCBzZWxlY3QsIGNoZWNrYm94LCByYWRpby5cbiAqIEJvdW5kIHRvIHRoZSBPSy9LTy9cdTAwQzAtY2xhcmlmaWVyIHZhbGlkYXRpb24gc3RhdGVzIHZpYSBbZGF0YS1zdGF0ZV0gYXR0cmlidXRlLlxuICovXG5cbi5ueXMtaW5wdXQsXG4ubnlzLXRleHRhcmVhLFxuLm55cy1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogdmFyKC0tbnlzLWNvbnRyb2wtaCk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLW55cy1jb250cm9sLXBhZGRpbmcteCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMSk7XG4gICAgY29sb3I6IHZhcigtLW55cy10ZXh0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLW1kKTtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtYmFzZSk7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLW55cy1hbmltLWZhc3QpLCBib3gtc2hhZG93IHZhcigtLW55cy1hbmltLWZhc3QpO1xufVxuLm55cy10ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogY2FsYyh2YXIoLS1ueXMtY29udHJvbC1oKSAqIDMpOyBwYWRkaW5nLWJsb2NrOiB2YXIoLS1ueXMtc3BhY2UtMik7IHJlc2l6ZTogdmVydGljYWw7IH1cbi5ueXMtaW5wdXQ6Zm9jdXMsIC5ueXMtdGV4dGFyZWE6Zm9jdXMsIC5ueXMtc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLW55cy1icmFuZC1wcmltYXJ5KSwgdHJhbnNwYXJlbnQgODAlKTtcbn1cbi5ueXMtaW5wdXQ6ZGlzYWJsZWQsIC5ueXMtdGV4dGFyZWE6ZGlzYWJsZWQsIC5ueXMtc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5ueXMtaW5wdXRbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSxcbi5ueXMtdGV4dGFyZWFbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ueXMtc3RhdGUta28pO1xufVxuXG4ubnlzLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dCk7XG59XG4ubnlzLWxhYmVsLS1yZXF1aXJlZDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiICpcIjtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXN0YXRlLWtvLXRleHQpO1xufVxuXG4ubnlzLWhlbHAge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLW55cy1zcGFjZS0xKTtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUteHMpO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG59XG5cbi5ueXMtZXJyb3Ige1xuICAgIG1hcmdpbi10b3A6IHZhcigtLW55cy1zcGFjZS0xKTtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUteHMpO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtc3RhdGUta28tdGV4dCk7XG59XG4iLCAiLyoqXG4gKiBDYXJkcyBcdTIwMTQgZ2VuZXJpYyBjb250YWluZXIgZm9yIGdyb3VwZWQgY29udGVudCAoS1BJIGNhcmRzLCBsaXN0IGl0ZW1zLCBwYW5lbHMpLlxuICovXG5cbi5ueXMtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1sZyk7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLW55cy1zaGFkb3ctc20pO1xufVxuXG4ubnlzLWNhcmQtLWludGVyYWN0aXZlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLW55cy1hbmltLWZhc3QpLCBib3gtc2hhZG93IHZhcigtLW55cy1hbmltLWZhc3QpLCBib3JkZXItY29sb3IgdmFyKC0tbnlzLWFuaW0tZmFzdCk7XG59XG4ubnlzLWNhcmQtLWludGVyYWN0aXZlOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tbnlzLXNoYWRvdy1tZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ueXMtYm9yZGVyLXN0cm9uZyk7XG59XG5cbi5ueXMtY2FyZF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLW55cy1zcGFjZS0zKTtcbn1cbi5ueXMtY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1tZCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQpO1xufVxuLm55cy1jYXJkX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpO1xufVxuXG4ubnlzLWtwaV9fdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS0zeGwpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHZhcigtLW55cy10ZXh0KTtcbn1cbi5ueXMta3BpX19kZWx0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0xKTtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ubnlzLWtwaV9fZGVsdGEtLXVwIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1vay10ZXh0KTsgfVxuLm55cy1rcGlfX2RlbHRhLS1kb3duIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuLm55cy1rcGlfX2RlbHRhLS1mbGF0IHsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgfVxuIiwgIi8qKlxuICogTW9kYWwgZGlhbG9nIHByaW1pdGl2ZSBcdTIwMTQgYnVpbHQgb24gdGhlIG5hdGl2ZSA8ZGlhbG9nPiBlbGVtZW50IGZvciBhMTF5LlxuICovXG5cbi5ueXMtbW9kYWwge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbGcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tbnlzLXNoYWRvdy1sZyk7XG4gICAgbWF4LXdpZHRoOiBtaW4oOTB2dywgNDByZW0pO1xuICAgIG1pbi13aWR0aDogMjByZW07XG59XG4ubnlzLW1vZGFsOjpiYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogb2tsY2goMCUgMCAwIC8gMC41KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbn1cbi5ueXMtbW9kYWxfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtNCkgdmFyKC0tbnlzLXNwYWNlLTUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTtcbn1cbi5ueXMtbW9kYWxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtbGcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ubnlzLW1vZGFsX19ib2R5IHsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTUpOyB9XG4ubnlzLW1vZGFsX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtNCkgdmFyKC0tbnlzLXNwYWNlLTUpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tbnlzLXJhZGl1cy1sZykgdmFyKC0tbnlzLXJhZGl1cy1sZyk7XG59XG4iLCAiLyoqXG4gKiBBcHBsaWNhdGlvbiBzaGVsbCBsYXlvdXQgXHUyMDE0IHNpZGViYXIgKyB0b3AgYmFyICsgbWFpbiBjb250ZW50LlxuICovXG5cbi5ueXMtYXBwIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIC8qIG1pbm1heCgwLDFmcik6IHRoZSBjb250ZW50IHRyYWNrIG1heSBzaHJpbmsgYmVsb3cgaXRzIGludHJpbnNpYyBtaW4tY29udGVudFxuICAgICAgIHNvIHdpZGUgY2hpbGRyZW4gKEthbmJhbiBib2FyZCwgbG9uZyB0b3BiYXIgbmFtZXMpIHNjcm9sbC9jbGlwIGludGVybmFsbHlcbiAgICAgICBpbnN0ZWFkIG9mIHdpZGVuaW5nIHRoZSBncmlkIFx1MjE5MiBob3Jpem9udGFsIHBhZ2Ugb3ZlcmZsb3cuICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1ueXMtc2lkZWJhci13KSBtaW5tYXgoMCwgMWZyKTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHZhcigtLW55cy10b3BiYXItaCkgMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgIFwic2lkZWJhciB0b3BiYXJcIlxuICAgICAgICBcInNpZGViYXIgbWFpblwiO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1ueXMtZm9udC1zYW5zKTtcbiAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFyKC0tbnlzLWFuaW0tYmFzZSk7XG59XG4ubnlzLWFwcFtkYXRhLXNpZGViYXItY29sbGFwc2VkPVwidHJ1ZVwiXSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1ueXMtc2lkZWJhci13LWNvbGxhcHNlZCkgbWlubWF4KDAsIDFmcik7XG59XG5cbi5ueXMtc2lkZWJhciB7XG4gICAgZ3JpZC1hcmVhOiBzaWRlYmFyO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xuICAgIGJvcmRlci1pbmxpbmUtZW5kOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ubnlzLXNpZGViYXJfX2JyYW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgaGVpZ2h0OiB2YXIoLS1ueXMtdG9wYmFyLWgpO1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1ueXMtc3BhY2UtNCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLW1kKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dCk7XG59XG4ubnlzLXNpZGViYXJfX25hdiB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtMyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTEpO1xufVxuLm55cy1zaWRlYmFyX19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTIpIHZhcigtLW55cy1zcGFjZS0zKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLW1kKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLW55cy1hbmltLWZhc3QpLCBjb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KTtcbn1cbi5ueXMtc2lkZWJhcl9faXRlbTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG4ubnlzLXNpZGViYXJfX2l0ZW1bYXJpYS1jdXJyZW50PVwicGFnZVwiXSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeSksIHRyYW5zcGFyZW50IDkwJSk7XG4gICAgY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LXRleHQpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5ueXMtdG9wYmFyIHtcbiAgICBncmlkLWFyZWE6IHRvcGJhcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tbnlzLXNwYWNlLTUpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTtcbn1cblxuLm55cy1tYWluIHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtNSk7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1ueXMtY29udGVudC1tYXgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIExldCB0aGUgbWFpbiBjb2x1bW4gc2hyaW5rIGJlbG93IGl0cyBjb250ZW50J3MgaW50cmluc2ljIHdpZHRoIHNvIHdpZGVcbiAgICAgICBjaGlsZHJlbiAodGhlIEthbmJhbiBib2FyZCkgc2Nyb2xsIElOVEVSTkFMTFkgKG92ZXJmbG93LXgpIGluc3RlYWQgb2ZcbiAgICAgICB3aWRlbmluZyB0aGUgZ3JpZCB0cmFjayBcdTIxOTIgaG9yaXpvbnRhbCBwYWdlIG92ZXJmbG93IG9uIG1vYmlsZS4gKi9cbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi8qIE1vYmlsZSBsYXlvdXQgXHUyMDE0IHNpZGViYXIgYmVjb21lcyBvZmZjYW52YXMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5ueXMtYXBwIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0b3BiYXJcIiBcIm1haW5cIjtcbiAgICB9XG4gICAgLyogRHJvcCB0aGUgdXNlcidzIG5hbWUgb24gbW9iaWxlICh0aGUgYXZhdGFyIHN0YW5kcyBpbjsgdGhlIHRyaWdnZXIga2VlcHMgYW5cbiAgICAgICBhcmlhLWxhYmVsKSBzbyBhIGxvbmcgZGlzcGxheSBuYW1lIGNhbid0IHdpZGVuIHRoZSB0b3BiYXIgcGFzdCB0aGUgdmlld3BvcnQuICovXG4gICAgLm55cy11c2VybWVudV9fbmFtZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubnlzLXNpZGViYXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0LWJsb2NrOiAwO1xuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1ueXMtc2lkZWJhci13KTtcbiAgICAgICAgei1pbmRleDogdmFyKC0tbnlzLXotbW9kYWwpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbnlzLWFuaW0tYmFzZSk7XG4gICAgfVxuICAgIC5ueXMtYXBwW2RhdGEtc2lkZWJhci1vcGVuPVwidHJ1ZVwiXSAubnlzLXNpZGViYXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuLyogLS0tIFNoZWxsIHN1Yi1lbGVtZW50czogc2lkZWJhciBpY29ucyArIGNvbGxhcHNlLCB0b3BiYXIgY29udHJvbHMsIHVzZXIgbWVudSAtLS0gKi9cbi5ueXMtc2lkZWJhcl9faWNvbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgZmxleDogbm9uZTsgfVxuLm55cy1zaWRlYmFyX19pY29uIHN2ZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IH1cbi5ueXMtc2lkZWJhcl9fY29sbGFwc2UgeyBtYXJnaW4tdG9wOiBhdXRvOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbi5ueXMtYXBwW2RhdGEtc2lkZWJhci1jb2xsYXBzZWQ9XCJ0cnVlXCJdIC5ueXMtc2lkZWJhcl9fYnJhbmQsXG4ubnlzLWFwcFtkYXRhLXNpZGViYXItY29sbGFwc2VkPVwidHJ1ZVwiXSAubnlzLXNpZGViYXJfX2l0ZW0geyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ubnlzLXRvcGJhcl9fbGVmdCwgLm55cy10b3BiYXJfX3JpZ2h0IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMtdG9wYmFyX19tZW51IHsgZGlzcGxheTogbm9uZTsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7IC5ueXMtdG9wYmFyX19tZW51IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH0gfVxuXG4ubnlzLWljb25idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMi4yNXJlbTsgaGVpZ2h0OiAyLjI1cmVtOyBib3JkZXI6IDA7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLW55cy1hbmltLWZhc3QpLCBjb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KTtcbn1cbi5ueXMtaWNvbmJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG5cbi5ueXMtdG9wYmFyX19zZWFyY2gge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTtcbiAgICBoZWlnaHQ6IHZhcigtLW55cy1jb250cm9sLWgpOyBwYWRkaW5nOiAwIHZhcigtLW55cy1zcGFjZS0zKTsgbWluLXdpZHRoOiAxMnJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1tZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnKTsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KTtcbn1cbi5ueXMtdG9wYmFyX19zZWFyY2g6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTsgfVxuLm55cy10b3BiYXJfX3NlYXJjaCA+IHNwYW4geyBmbGV4OiAxOyB0ZXh0LWFsaWduOiBzdGFydDsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgfVxuLm55cy10b3BiYXJfX3NlYXJjaCBrYmQgeyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDAuNzVyZW07IHBhZGRpbmc6IDAuMDVyZW0gMC4zNXJlbTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsgLm55cy10b3BiYXJfX3NlYXJjaCB7IG1pbi13aWR0aDogMDsgfSAubnlzLXRvcGJhcl9fc2VhcmNoID4gc3BhbiwgLm55cy10b3BiYXJfX3NlYXJjaCBrYmQgeyBkaXNwbGF5OiBub25lOyB9IH1cblxuLm55cy11c2VybWVudSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLm55cy11c2VybWVudV9fdHJpZ2dlciB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0xKSB2YXIoLS1ueXMtc3BhY2UtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyBmb250OiBpbmhlcml0OyB9XG4ubnlzLXVzZXJtZW51X190cmlnZ2VyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMik7IH1cbi5ueXMtdXNlcm1lbnVfX25hbWUgeyBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pOyBtYXgtd2lkdGg6IDEycmVtOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLm55cy1hdmF0YXIgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiAycmVtOyBoZWlnaHQ6IDJyZW07IGJvcmRlci1yYWRpdXM6IDUwJTsgZmxleDogbm9uZTsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpOyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAwLjhyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5ueXMtdXNlcm1lbnVfX3BvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyBpbnNldC1pbmxpbmUtZW5kOiAwOyB0b3A6IGNhbGMoMTAwJSArIHZhcigtLW55cy1zcGFjZS0yKSk7IG1pbi13aWR0aDogMTRyZW07XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLW1kKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1ueXMtc2hhZG93LTIsIDAgOHB4IDI0cHggcmdiYSgwLDAsMCwuMTgpKTsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIHotaW5kZXg6IHZhcigtLW55cy16LW1vZGFsKTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMSk7XG59XG4ubnlzLXVzZXJtZW51X19pZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0yKSB2YXIoLS1ueXMtc3BhY2UtMyk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tbnlzLXNwYWNlLTEpOyB9XG4ubnlzLXVzZXJtZW51X19pZCBzcGFuIHsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgfVxuLm55cy11c2VybWVudV9faXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB3aWR0aDogMTAwJTsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTIpIHZhcigtLW55cy1zcGFjZS0zKTsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB0ZXh0LWFsaWduOiBzdGFydDsgZm9udDogaW5oZXJpdDsgfVxuLm55cy11c2VybWVudV9faXRlbTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyB9XG5cbi5ueXMtc2NyaW0geyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC40KTsgei1pbmRleDogY2FsYyh2YXIoLS1ueXMtei1tb2RhbCkgLSAxKTsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7IC5ueXMtc2NyaW0geyBkaXNwbGF5OiBub25lOyB9IH1cbiIsICIvKipcbiAqIEZpZWxkIHZhbGlkYXRpb24gc3RhdGUgaW5kaWNhdG9ycyAoT0sgLyBLTyAvIFx1MDBDMCBjbGFyaWZpZXIpIFx1MjAxNCBcdTAwQTc0LjMuMS5cbiAqIEFwcGxpZWQgdmlhIFtkYXRhLXN0YXRlXSBhdHRyaWJ1dGUgb24gdGhlIGZpZWxkIGNvbnRhaW5lci5cbiAqL1xuXG4ubnlzLWZpZWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTMpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tbnlzLWFuaW0tZmFzdCksIGJvcmRlci1jb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm55cy1maWVsZFtkYXRhLXN0YXRlPVwib2tcIl0ge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tbnlzLXN0YXRlLW9rKSwgdHJhbnNwYXJlbnQgOTIlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW55cy1zdGF0ZS1vayk7XG59XG4ubnlzLWZpZWxkW2RhdGEtc3RhdGU9XCJrb1wiXSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1ueXMtc3RhdGUta28pLCB0cmFuc3BhcmVudCA5MiUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLXN0YXRlLWtvKTtcbn1cbi5ueXMtZmllbGRbZGF0YS1zdGF0ZT1cImNsYXJpZnlcIl0ge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpLCB0cmFuc3BhcmVudCA5MCUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpO1xufVxuLm55cy1maWVsZFtkYXRhLXN0YXRlPVwicGVuZGluZ1wiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ueXMtYm9yZGVyKTtcbn1cblxuLm55cy1maWVsZFtkYXRhLWxvY2tlZD1cInRydWVcIl06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlx1RDgzRFx1REQxMlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLW55cy1zcGFjZS0yKTtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbi8qIFByZXNlbmNlIGluZGljYXRvciAoY29sbGFib3JhdGl2ZSBlZGl0aW5nKSAqL1xuLm55cy1maWVsZF9fcHJlc2VuY2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogLTEwcHg7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZ2FwOiAycHg7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLW55cy1zcGFjZS0yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0xKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXBpbGwpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLW55cy1zaGFkb3ctc20pO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS14cyk7XG59XG4ubnlzLWZpZWxkX19wcmVzZW5jZS1hdmF0YXIge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJyYW5kLWFjY2VudCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogRmllbGQgc3RhdGUgYmFkZ2VzIChpbmxpbmUpICovXG4ubnlzLXN0YXRlLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTEpO1xuICAgIHBhZGRpbmc6IDJweCB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1waWxsKTtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUteHMpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ubnlzLXN0YXRlLWJhZGdlLS1vayB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1vayk7IGNvbG9yOiAjZmZmOyB9XG4ubnlzLXN0YXRlLWJhZGdlLS1rbyB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1rbyk7IGNvbG9yOiAjZmZmOyB9XG4ubnlzLXN0YXRlLWJhZGdlLS1jbGFyaWZ5IHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpOyBjb2xvcjogIzAwMDsgfVxuLm55cy1zdGF0ZS1iYWRnZS0tcGVuZGluZyB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1wZW5kaW5nKTsgY29sb3I6ICNmZmY7IH1cbiIsICIvKipcbiAqIEFjY2Vzc2liaWxpdHkgdXRpbGl0aWVzIFx1MjAxNCBXQ0FHIDIuMSBBQSBjb21wbGlhbmNlIGhlbHBlcnMuXG4gKi9cblxuLyogVmlzdWFsbHkgaGlkZGVuIGJ1dCBhY2Nlc3NpYmxlIHRvIHNjcmVlbiByZWFkZXJzICovXG4ubnlzLXNyLW9ubHkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlcjogMDtcbn1cblxuLyogU2tpcC10by1jb250ZW50IGxpbmsgcmV2ZWFsZWQgb24gZm9jdXMgKi9cbi5ueXMtc2tpcC1saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQtYmxvY2stc3RhcnQ6IC0xMDBweDtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTMpIHZhcigtLW55cy1zcGFjZS01KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLW55cy1icmFuZC1vbi1wcmltYXJ5KTtcbiAgICB6LWluZGV4OiB2YXIoLS1ueXMtei10b29sdGlwKTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgdmFyKC0tbnlzLWFuaW0tZmFzdCk7XG59XG4ubnlzLXNraXAtbGluazpmb2N1cyB7IGluc2V0LWJsb2NrLXN0YXJ0OiAwOyB9XG5cbi8qIEZvY3VzIHJpbmcgaGVscGVyICh3aGVuIGRlZmF1bHQgb3V0bGluZSBpcyBzdXBwcmVzc2VkKSAqL1xuLm55cy1mb2N1cy1yaW5nOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeSk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXNtKTtcbn1cbiIsICIvKipcbiAqIFNwYWNpbmcgdXRpbGl0aWVzIFx1MjAxNCBkZW5zaXR5LWF3YXJlICh1c2VzIC0tbnlzLXNwYWNlLSogdG9rZW5zKS5cbiAqL1xuXG4ubnlzLWdhcC0xIHsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMSk7IH1cbi5ueXMtZ2FwLTIgeyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgfVxuLm55cy1nYXAtMyB7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLWdhcC00IHsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtNCk7IH1cbi5ueXMtZ2FwLTUgeyBnYXA6IHZhcigtLW55cy1zcGFjZS01KTsgfVxuLm55cy1nYXAtNiB7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTYpOyB9XG5cbi5ueXMtc3RhY2sgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4ubnlzLXN0YWNrLWggeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4ubnlzLXN0YWNrLWgtLWJldHdlZW4geyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbi5ueXMtc3RhY2staC0tZW5kIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4ubnlzLWdyaWQgeyBkaXNwbGF5OiBncmlkOyB9XG4ubnlzLWdyaWQtLTIgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH1cbi5ueXMtZ3JpZC0tMyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTsgfVxuLm55cy1ncmlkLS00IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm55cy1ncmlkLS00IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAubnlzLWdyaWQtLTIsIC5ueXMtZ3JpZC0tMywgLm55cy1ncmlkLS00IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cbiIsICIvKipcbiAqIEF1dGggcGFnZXMgKGxvZ2luLCAyRkEsIGludml0YXRpb24gYWNjZXB0YW5jZSkuXG4gKi9cblxuLm55cy1hdXRoIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtNSk7XG59XG4ubnlzLWF1dGhfX2NhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMjRyZW07XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1sZyk7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTYpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLW55cy1zaGFkb3ctbWQpO1xufVxuLm55cy1hdXRoX19icmFuZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLW55cy1zcGFjZS01KTtcbn1cbi5ueXMtYXV0aF9fYnJhbmQgaW1nIHsgaGVpZ2h0OiAzcmVtOyBtYXJnaW46IDAgYXV0bzsgfVxuLm55cy1hdXRoX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLWxnKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ueXMtc3BhY2UtMik7XG59XG4ubnlzLWF1dGhfX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLW55cy1zcGFjZS01KTtcbn1cbi5ueXMtb2F1dGgtcHJvdmlkZXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7XG59XG4iLCAiLyoqXG4gKiBEYXNoYm9hcmQgcGFnZXMgXHUyMDE0IEtQSSBncmlkLCByZWNlbnQgYWN0aXZpdHksIGNoYXJ0cy5cbiAqL1xuXG4ubnlzLWRhc2hib2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTUpO1xufVxuLm55cy1kYXNoYm9hcmRfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTtcbn1cbi5ueXMtZGFzaGJvYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLTJ4bCk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5ueXMta3BpLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtNCk7XG59XG4ubnlzLXNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1tZCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ueXMtc3BhY2UtMyk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFJvbGUtYXdhcmUgZGFzaGJvYXJkICg8bnlzLWRhc2hib2FyZC1ob21lPikgXHUyMDE0IEtQSSBjYXJkcywgbGlzdCBwYW5lbHMsXG4gKiBwaWxscywgcHJvZ3Jlc3MgYmFycywgc2tlbGV0b24gbG9hZGVycy4gTG9naWNhbCBwcm9wZXJ0aWVzIHRocm91Z2hvdXQgc29cbiAqIHRoZSBsYXlvdXQgbWlycm9ycyBjb3JyZWN0bHkgdW5kZXIgUlRMIChBcmFiaWMpLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubnlzLWRhc2hfX3N1YiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS0xKTtcbn1cblxuLyogS1BJIGNhcmRzIFx1MjAxNCBhY2NlbnQgdGhlIHZhbHVlIGJ5IGludGVudDsga2VlcCB0aGUgY2FyZCBjaHJvbWUgbmV1dHJhbC4gKi9cbi5ueXMta3BpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IDNweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTtcbn1cbi5ueXMta3BpX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpO1xufVxuLm55cy1rcGktLWdvb2QgeyBib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOiB2YXIoLS1ueXMtc3RhdGUtb2spOyB9XG4ubnlzLWtwaS0td2FybiB7IGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5KTsgfVxuLm55cy1rcGktLWRhbmdlciB7IGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rbyk7IH1cbi5ueXMta3BpLS1kYW5nZXIgLm55cy1rcGlfX3ZhbHVlIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuXG4vKiBUd28tY29sdW1uIHNlY3Rpb24gZ3JpZDsgY29sbGFwc2VzIHRvIGEgc2luZ2xlIGNvbHVtbiBvbiBuYXJyb3cgc2NyZWVucy4gKi9cbi5ueXMtZGFzaF9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS00KTtcbn1cbi5ueXMtZGFzaF9fcGFuZWwgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi8qIExpc3Qgc2VjdGlvbnMgKi9cbi5ueXMtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ubnlzLWxpc3RfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1ueXMtc3BhY2UtMyk7XG4gICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG59XG4ubnlzLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCAubnlzLWxpc3RfX3Jvdyxcbi5ueXMtbGlzdF9fcm93OmZpcnN0LWNoaWxkIHsgYm9yZGVyLWJsb2NrLXN0YXJ0OiAwOyB9XG4ubnlzLWxpc3RfX3Jvdy0tbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tbnlzLWFuaW0tZmFzdCk7XG59XG4ubnlzLWxpc3RfX3Jvdy0tbGluazpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyB9XG4ubnlzLWxpc3RfX21haW4geyBtaW4td2lkdGg6IDA7IGZsZXg6IDE7IH1cbi5ueXMtbGlzdF9fYXNpZGUgeyBmbGV4LXNocmluazogMDsgfVxuLm55cy1saXN0X190aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5ueXMtbGlzdF9fc3ViIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTEpO1xufVxuLm55cy1saXN0X19tZXRhIHsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgfVxuXG4vKiBQaWxscyAocHJpb3JpdHkgLyBzdGF0dXMgLyBTTEEgYmFkZ2VzKSAqL1xuLm55cy1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctYmxvY2s6IDJweDtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtcGlsbCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXhzKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5ueXMtcGlsbC0tbXV0ZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgfVxuLyogVGludCBrZXB0IGxpZ2h0IChcdTIyNjQxMiUpIHNvIHRoZSAqLXRleHQgY29sb3VyIGNsZWFycyBXQ0FHIEFBICg0LjU6MSkgT04gdGhlIGNoaXBcbiAgIFx1MjAxNCBhdCAxNlx1MjAxMzE4JSB0aGUgZ3JlZW4vYmx1ZSB0ZXh0IGRpcHBlZCB0byA0LjJcdTIwMTM0LjQgb3ZlciB0aGUgcGFnZSB3aGl0ZS4gKi9cbi5ueXMtcGlsbC0tb2sgeyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLW55cy1zdGF0ZS1vaykgMTIlLCB0cmFuc3BhcmVudCk7IGNvbG9yOiB2YXIoLS1ueXMtc3RhdGUtb2stdGV4dCk7IH1cbi5ueXMtcGlsbC0td2FybiB7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpIDIyJSwgdHJhbnNwYXJlbnQpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG4ubnlzLXBpbGwtLWRhbmdlciB7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLXN0YXRlLWtvKSAxMiUsIHRyYW5zcGFyZW50KTsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuXG4vKiBDb3VudCBjaGlwICovXG4ubnlzLWNoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLWlubGluZS1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLW55cy1zcGFjZS0yKTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXBpbGwpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXhzKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBQcm9ncmVzcyBiYXIgKi9cbi5ueXMtcHJvZ3Jlc3Mge1xuICAgIGJsb2NrLXNpemU6IDZweDtcbiAgICBpbmxpbmUtc2l6ZTogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXBpbGwpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtMik7XG59XG4ubnlzLXByb2dyZXNzX19iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtcGlsbCk7XG4gICAgdHJhbnNpdGlvbjogaW5saW5lLXNpemUgdmFyKC0tbnlzLWFuaW0tYmFzZSk7XG59XG5cbi5ueXMtc3RhdHVzYmFyIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgfVxuXG4ubnlzLWVtcHR5IHtcbiAgICBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tbnlzLXNwYWNlLTQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm55cy1kYXNoX19lcnJvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG59XG5cbi8qIFNrZWxldG9uIGxvYWRlcnMgKi9cbi5ueXMtc2tlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMik7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5ueXMtc2tlbC0ta3BpIHsgYmxvY2stc2l6ZTogNi41cmVtOyB9XG4ubnlzLXNrZWwtLXBhbmVsIHsgYmxvY2stc2l6ZTogMTRyZW07IH1cbi5ueXMtc2tlbDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLWJnLWVsZXYtMSkgNjAlLCB0cmFuc3BhcmVudCksIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIGFuaW1hdGlvbjogbnlzLXNrZWwtc2hpbW1lciAxLjRzIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBueXMtc2tlbC1zaGltbWVyIHsgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfSB9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5ueXMtc2tlbDo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbiAgICAubnlzLXByb2dyZXNzX19iYXIgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFx1MDBBNzEyLjMgXHUyMDE0IEtQSSBzcGFya2xpbmVzICsgdmFyaWF0aW9uLCBjaGFydCBncmlkLCBtYW51YWwtZW50cnkgcGFuZWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogSGVhZGVyIGFjdGlvbiBjbHVzdGVyIChSZWZyZXNoICsgbWFudWFsLUtQSSkuICovXG4ubnlzLWRhc2hib2FyZF9fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qIEtQSSBjYXJkOiB2YWx1ZSArIHZhcmlhdGlvbiBjaGlwIG9uIG9uZSByb3csIHNwYXJrbGluZSBiZW5lYXRoLiAqL1xuLm55cy1rcGlfX3JvdyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IGZsZXgtd3JhcDogd3JhcDsgfVxuLm55cy1rcGlfX2RlbHRhIHtcbiAgICBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLm55cy1rcGlfX2RlbHRhLS1vayB7IGNvbG9yOiB2YXIoLS1ueXMtc3RhdGUtb2stdGV4dCk7IH1cbi5ueXMta3BpX19kZWx0YS0tZGFuZ2VyIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuLm55cy1rcGlfX2RlbHRhLS1tdXRlZCB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IH1cbi5ueXMta3BpX19zcGFyayB7IG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTIpOyB9XG5cbi8qIENoYXJ0IGdyaWQgXHUyMDE0IG9uZSBwYW5lbCBwZXIgY2F0YWxvZ3VlIGNoYXJ0LCByZXNwb25zaXZlLiAqL1xuLm55cy1jaGFydC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTQpO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTQpO1xufVxuLm55cy1jaGFydC1wYW5lbCB7IG1pbi1ibG9jay1zaXplOiAyNDBweDsgZGlzcGxheTogZmxleDsgfVxuLm55cy1jaGFydC1wYW5lbCA+IG55cy1jaGFydCB7IGlubGluZS1zaXplOiAxMDAlOyB9XG5cbi8qIE1hbnVhbCBLUEkgZW50cnkgKyBhcHByb3ZhbCBwYW5lbC4gKi9cbi5ueXMtbWV0cmljcGFuZWwgeyBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1ueXMtc3BhY2UtNCk7IH1cbi5ueXMtbWV0cmljZm9ybSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE2MHB4LCAxZnIpKTtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTtcbiAgICBhbGlnbi1pdGVtczogZW5kO1xufVxuLm55cy1tZXRyaWNmb3JtX19ub3RlcyB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cbi5ueXMtbWV0cmljZm9ybSAubnlzLWJ0biB7IGJsb2NrLXNpemU6IHZhcigtLW55cy1jb250cm9sLWgpOyB9XG4ubnlzLW1ldHJpY3BhbmVsX19xdWV1ZSB7IG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTQpOyB9XG4ubnlzLW1ldHJpY3BhbmVsX19hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IH1cbiIsICIvKipcbiAqIFByb2plY3RzIFx1MjAxNCBsaXN0IChueXMtZGF0YS10YWJsZSBob3N0KSArIGRldGFpbCAodGFicywga2FuYmFuLCBtZXRhIGdyaWQpLlxuICogTG9naWNhbCBwcm9wZXJ0aWVzIHRocm91Z2hvdXQgZm9yIFJUTCBjb3JyZWN0bmVzcy4gQnVpbGRzIG9uIHRoZSBkYXNoYm9hcmRcbiAqIHByaW1pdGl2ZXMgKC5ueXMtY2FyZCAvIC5ueXMtbGlzdCAvIC5ueXMtcGlsbCAvIC5ueXMtcHJvZ3Jlc3MgLyAubnlzLXNrZWwpLlxuICovXG5cbi8qIEV4dHJhIHBpbGwgdG9uZSB1c2VkIGJ5IHBoYXNlL3N0YXR1cyArIEFWIGJhZGdlcy4gKi9cbi5ueXMtcGlsbC0taW5mbyB7XG4gICAgLyogMTAlIHRpbnQgXHUyMDE0IGtlZXBzIHRoZSBicmFuZC1wcmltYXJ5LXRleHQgXHUyMjY1NC41OjEgb24gdGhlIGNoaXAgb3ZlciB3aGl0ZS4gKi9cbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLW55cy1icmFuZC1wcmltYXJ5KSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgICBjb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dCk7XG59XG5cbi8qIERldGFpbCBoZWFkZXIgKi9cbi5ueXMtZGV0YWlsX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpO1xuICAgIC8qIFdyYXAgdGhlIGhlYWRlciBhY3Rpb25zIGJlbG93IHRoZSB0aXRsZSBibG9jayBvbiBuYXJyb3cgdmlld3BvcnRzLCBhbmQgbGV0XG4gICAgICAgdGhlIHRpdGxlIGJsb2NrIHNocmluayAobWluLXdpZHRoOjApIHNvIGEgbG9uZyBuYW1lIHdyYXBzIGluc3RlYWQgb2ZcbiAgICAgICBmb3JjaW5nIGhvcml6b250YWwgcGFnZSBvdmVyZmxvdyBvbiBtb2JpbGUuICovXG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm55cy1kZXRhaWxfX2hlYWRlciA+ICogeyBtaW4td2lkdGg6IDA7IH1cbi8qIFRoZSBib2FyZCB3cmFwcGVyIG11c3QgYmUgYSBib3VuZGVkIGJsb2NrIHNvIGl0cyBjb2x1bW4gcm93IG93bnMgdGhlXG4gICBob3Jpem9udGFsIHNjcm9sbCAob3ZlcmZsb3cteCkgaW5zdGVhZCBvZiBwdXNoaW5nIHRoZSBwYWdlIHdpZGUgb24gbW9iaWxlLiAqL1xubnlzLXByb2plY3QtYm9hcmQgeyBkaXNwbGF5OiBibG9jazsgbWF4LWlubGluZS1zaXplOiAxMDAlOyB9XG4ubnlzLWRldGFpbF9fYmFjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7XG4gICAgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTEpO1xufVxuLm55cy1kZXRhaWxfX2JhY2s6aG92ZXIgeyBjb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dCk7IH1cbi5ueXMtZGV0YWlsX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTIpO1xufVxuLm55cy1kZXRhaWxfX2Rlc2Mge1xuICAgIGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLW55cy1saW5lLWhlaWdodC1yZWxheGVkKTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1ueXMtc3BhY2UtNCk7XG59XG5cbi8qIFRhYnMgKi9cbi5ueXMtdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0xKTtcbiAgICBib3JkZXItYmxvY2stZW5kOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbn1cbi5ueXMtdGFiIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYmxvY2stZW5kOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTMpIHZhcigtLW55cy1zcGFjZS00KTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KSwgYm9yZGVyLWNvbG9yIHZhcigtLW55cy1hbmltLWZhc3QpO1xufVxuLm55cy10YWI6aG92ZXIgeyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG4ubnlzLXRhYlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LXRleHQpO1xuICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbn1cbi5ueXMtdGFicGFuZWwgeyBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS00KTsgfVxuXG4vKiBSZWFkLW9ubHkga2FuYmFuIChwcm9qZWN0IHRhc2tzKSAqL1xuLm55cy1rYW5iYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtNCk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTIpO1xufVxuLm55cy1rYW5iYW5fX2NvbCB7XG4gICAgZmxleDogMCAwIDE2cmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbGcpO1xuICAgIHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0zKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7XG59XG4ubnlzLWthbmJhbl9faGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7XG4gICAgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTEpO1xufVxuLm55cy1rYW5iYW5fX2NhcmQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpO1xuICAgIHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0zKTtcbn1cblxuLyogTWV0YSBncmlkIChvdmVydmlldyBrZXkvdmFsdWVzKSAqL1xuLm55cy1tZXRhLWdyaWQgeyBtYXJnaW46IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyB9XG4ubnlzLW1ldGEtZ3JpZF9fcm93IHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1tZXRhLWdyaWRfX3JvdyBkdCB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7IH1cbi5ueXMtbWV0YS1ncmlkX19yb3cgZGQgeyBtYXJnaW46IDA7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLm55cy1lbXB0eS0tc20geyBwYWRkaW5nLWJsb2NrOiB2YXIoLS1ueXMtc3BhY2UtMik7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS14cyk7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogNC1yb2xlIGRhc2hib2FyZCBibG9ja3MgKyBcdTAwQTczLjUgcHJvamVjdC1yZXF1ZXN0IGZvcm0gLyBhZG1pbiB0cmlhZ2UuXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubnlzLXJvbGVibG9jayB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTQpOyB9XG4ubnlzLXJvbGVibG9jayArIC5ueXMtcm9sZWJsb2NrIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS01KTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtNSk7XG4gICAgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG59XG4ubnlzLXJvbGVibG9ja19fdGl0bGUgeyBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUteGwpOyBmb250LXdlaWdodDogNzAwOyB9XG4ubnlzLXJvbGVibG9ja19fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG5cbi8qIENvbnN0cmFpbmVkIHNpbmdsZS1jb2x1bW4gcGFnZSAoZm9ybXMpLiAqL1xuLm55cy1uYXJyb3cgeyBtYXgtaW5saW5lLXNpemU6IDQ0cmVtOyBtYXJnaW4taW5saW5lOiBhdXRvOyB9XG5cbi8qIEdlbmVyaWMgZm9ybSBzY2FmZm9sZC4gKi9cbi5ueXMtZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTQpOyB9XG4ubnlzLWZvcm1fX2FjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtMik7IH1cbi5ueXMtZmllbGRfX2xhYmVsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLW55cy1zcGFjZS0xKTsgY29sb3I6IHZhcigtLW55cy10ZXh0KTsgfVxuLm55cy1maWVsZF9fZXJyb3IgeyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtMSk7IH1cbi5ueXMtZm9ybSAubnlzLWlucHV0LFxuLm55cy1mb3JtIHNlbGVjdC5ueXMtaW5wdXQsXG4ubnlzLWZvcm0gdGV4dGFyZWEubnlzLWlucHV0IHsgaW5saW5lLXNpemU6IDEwMCU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi5ueXMtZm9ybSB0ZXh0YXJlYS5ueXMtaW5wdXQgeyByZXNpemU6IHZlcnRpY2FsOyBtaW4tYmxvY2stc2l6ZTogNnJlbTsgfVxuXG4vKiBBZG1pbiB0cmlhZ2UgY2FyZHMuICovXG4ubnlzLXN0YWNrLWNhcmRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtNCk7IH1cbi5ueXMtcHItY2FyZCAubnlzLWRldGFpbF9fZGVzYyB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBcdTAwQTc2IHRpY2tldCBkZXRhaWwgXHUyMDE0IFNMQSBsZWdzLCB0cmFuc2l0aW9uIGJhciwgY29udmVyc2F0aW9uIHRocmVhZC5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ueXMtc2xhX19sZWcgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0xKTsgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLXByb2dyZXNzX19iYXItLW9rIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLW9rKTsgfVxuLm55cy1wcm9ncmVzc19fYmFyLS13YXJuIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpOyB9XG4ubnlzLXByb2dyZXNzX19iYXItLWRhbmdlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1rbyk7IH1cblxuLm55cy10aHJlYWQgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDAgMCB2YXIoLS1ueXMtc3BhY2UtNCk7IHBhZGRpbmc6IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLXRocmVhZF9faXRlbSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1tZCk7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xufVxuLm55cy10aHJlYWRfX2l0ZW0tLWludGVybmFsIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5KSAxMCUsIHZhcigtLW55cy1iZy1lbGV2LTEpKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpIDQwJSwgdmFyKC0tbnlzLWJvcmRlcikpO1xufVxuLm55cy10aHJlYWRfX2hlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTIpOyB9XG4ubnlzLXRocmVhZF9fdGltZSB7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87IH1cbi5ueXMtdGhyZWFkX19ib2R5IHsgY29sb3I6IHZhcigtLW55cy10ZXh0KTsgbGluZS1oZWlnaHQ6IHZhcigtLW55cy1saW5lLWhlaWdodC1iYXNlKTsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7IH1cbi5ueXMtdGhyZWFkX19ib2R5IHAgeyBtYXJnaW46IDA7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuLm55cy10aHJlYWRfX2Zvcm0geyBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy10aHJlYWRfX2Zvcm1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMtY2hlY2tsaW5lIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyBtYXJnaW4taW5saW5lLWVuZDogYXV0bzsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBcdTAwQTc0LjEuMyBmb3JtLWJ1aWxkZXIgXHUyMDE0IDMtcGFuZSBzcGxpdCwgc2VjdGlvbnMvZmllbGRzIHRyZWUsIG9wdGlvbnMgZWRpdG9yLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm55cy1idWlsZGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE0cmVtLCAxZnIpIG1pbm1heCgxOHJlbSwgMS40ZnIpIG1pbm1heCgxNHJlbSwgMWZyKTtcbiAgICBnYXA6IHZhcigtLW55cy1zcGFjZS00KTtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjByZW0pIHsgLm55cy1idWlsZGVyIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0gfVxuLm55cy1idWlsZGVyX190cmVlLCAubnlzLWJ1aWxkZXJfX3Byb3BzLCAubnlzLWJ1aWxkZXJfX3ByZXZpZXcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbGcpO1xuICAgIHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS00KTtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTtcbn1cbi5ueXMtdHJlZV9fc2VjdGlvbiB7IGJvcmRlci1ibG9jay1lbmQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLW55cy1zcGFjZS0yKTsgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTIpOyB9XG4ubnlzLXRyZWVfX3NlY2hlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0xKSB2YXIoLS1ueXMtc3BhY2UtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pOyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5ueXMtdHJlZV9fc2VjaGVhZDpob3ZlciwgLm55cy10cmVlX19maWVsZDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyB9XG4ubnlzLXRyZWVfX3NlY2hlYWQuaXMtc2VsLCAubnlzLXRyZWVfX2ZpZWxkLmlzLXNlbCB7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpIDE0JSwgdHJhbnNwYXJlbnQpOyB9XG4ubnlzLXRyZWVfX2ZpZWxkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0xKSB2YXIoLS1ueXMtc3BhY2UtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7IH1cbi5ueXMtdHJlZV9fbGFiZWwgeyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLm55cy10cmVlX19hZGQgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7IGNvbG9yOiB2YXIoLS1ueXMtYnJhbmQtcHJpbWFyeS10ZXh0KTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LWFsaWduOiBzdGFydDsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTEpIHZhcigtLW55cy1zcGFjZS0yKTsgfVxuLm55cy1pY29uYnRuLXNtIHsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiAwOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtc3VidGxlKTsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pOyBwYWRkaW5nOiAwIHZhcigtLW55cy1zcGFjZS0xKTsgfVxuLm55cy1pY29uYnRuLXNtOmhvdmVyIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuLm55cy1vcHQtcm93IHsgZGlzcGxheTogZmxleDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLW55cy1zcGFjZS0xKTsgfVxuLm55cy1idWlsZGVyX19lcnJvcnMgeyBib3JkZXItY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rbyk7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tbnlzLXN0YXRlLWtvKSA4JSwgdmFyKC0tbnlzLWJnLWVsZXYtMSkpOyB9XG4ubnlzLWJ1aWxkZXJfX2Vycm9ycyB1bCB7IG1hcmdpbjogdmFyKC0tbnlzLXNwYWNlLTIpIDAgMDsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLW55cy1zcGFjZS00KTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgfVxuLm55cy1idWlsZGVyX19lcnJvcnMgY29kZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1ueXMtZm9udC1tb25vKTsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rby10ZXh0KTsgfVxuLm55cy1idWlsZGVyX19kZWZlcnJlZCB7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ueXMtYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpOyBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtMyk7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLm55cy1wcmV2aWV3LWZpZWxkIHsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMSk7IH1cbi5ueXMtanNvbiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1ueXMtZm9udC1tb25vKTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgaW5saW5lLXNpemU6IDEwMCU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi5ueXMtaW5wdXQtLXNtIHsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTEpIHZhcigtLW55cy1zcGFjZS0yKTsgfVxuLm55cy1idG4tLXNtIHsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTEpIHZhcigtLW55cy1zcGFjZS0yKTsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgfVxuXG4vKiBcdTAwQTc0LjMgY2FoaWVyIFx1MjAxNCBzZWN0aW9uIGNhcmRzICsgZmllbGQgc3BhY2luZyArIGRlZmVycmVkLXR5cGUgcGxhY2Vob2xkZXIuICovXG4ubnlzLWNhaGllcl9fc2VjdGlvbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLWNhaGllcl9fZmllbGQgeyBkaXNwbGF5OiBibG9jazsgfVxuLm55cy1jYWhpZXJfX2ZpZWxkICsgLm55cy1jYWhpZXJfX2ZpZWxkIHsgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1ueXMtc3BhY2UtNCk7IHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS00KTsgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IH1cbi5ueXMtY2FoaWVyX19kZWZlcnJlZCB7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ueXMtYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtbWQpOyBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtMyk7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1zbSk7IH1cbi5ueXMtcHJvZ3Jlc3MtLWxnIHsgYmxvY2stc2l6ZTogMTBweDsgfVxuXG4vKiBcdTAwQTc0LjQgc2VhbGVkIGRlbGl2ZXJhYmxlcyBwYW5lbC4gKi9cbi5ueXMtY2FoaWVyX19saXZyYWJsZXMgeyBib3JkZXItY29sb3I6IHZhcigtLW55cy1zdGF0ZS1vayk7IH1cbi5ueXMtc2VhbGluZ19fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5ueXMtc2VhbGluZ19fYWN0aW9ucyAubnlzLWJ0biB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBcdTAwQTc5IEdFRCBcdTIwMTQgZG9jdW1lbnQgbWFuYWdlbWVudCAodXBsb2FkLCBmb2xkZXJzLCBmaWxlIHJvd3MpLiAqL1xuLm55cy1nZWQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1nZWRfX2JhciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IGZsZXgtd3JhcDogd3JhcDsgfVxuLm55cy1nZWRfX2NydW1icyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTEpOyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5ueXMtZ2VkX19jcnVtYiB7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMDsgY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LXRleHQpOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQ6IGluaGVyaXQ7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0xKTsgfVxuLm55cy1nZWRfX2NydW1iW2Rpc2FibGVkXSB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dCk7IGN1cnNvcjogZGVmYXVsdDsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLm55cy1nZWRfX3NlcCB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1zdWJ0bGUpOyB9XG4ubnlzLWdlZF9fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4ubnlzLWdlZF9fYWN0aW9ucyBsYWJlbC5ueXMtYnRuIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4ubnlzLWdlZF9fZHJvcCB7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIHZhcigtLW55cy1ib3JkZXItc3Ryb25nKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1sZyk7XG4gICAgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTUpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXNtKTsgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1ueXMtYW5pbS1mYXN0KSwgYm9yZGVyLWNvbG9yIHZhcigtLW55cy1hbmltLWZhc3QpO1xufVxuLm55cy1nZWRfX2Ryb3AuaXMtb3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpOyBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLW55cy1icmFuZC1wcmltYXJ5KSA4JSwgdHJhbnNwYXJlbnQpOyB9XG4ubnlzLWdlZF9fdXBsb2FkcyB7IG1hcmdpbjogMDsgfVxuLm55cy1nZWRfX2ZvbGRlciB7IHdpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IDA7IHRleHQtYWxpZ246IHN0YXJ0OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQ6IGluaGVyaXQ7IH1cbi5ueXMtZ2VkX19yb3dhY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMSk7IH1cbi5ueXMtZ2VkX19yb3dhY3Rpb25zIC5ueXMtYnRuIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFx1MDBBNzUuMiBcdTIwMTQgR2FudHQgdGFiIHdyYXBwZXIgKDxueXMtcHJvamVjdC1nYW50dD4pOyB0aGUgPG55cy1nYW50dD4gY2hpbGRcbiAgIGNhcnJpZXMgaXRzIG93biBzaGFkb3ctRE9NIHN0eWxlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ueXMtZ2FudHQtd3JhcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLWdhbnR0LXRvb2xiYXIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5ueXMtZ2FudHQtem9vbSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDAuMjVyZW07IH1cbi5ueXMtZ2FudHQtem9vbSAubnlzLWJ0bi5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5KTtcbn1cbi5ueXMtZ2FudHQtZGVwcyB7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS00KTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMtZ2FudHQtZGVwZm9ybSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEzMHB4LCAxZnIpKSBhdXRvO1xuICAgIGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpO1xuICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG59XG4ubnlzLWdhbnR0LWRlcGZvcm0gLm55cy1idG4geyBibG9jay1zaXplOiB2YXIoLS1ueXMtY29udHJvbC1oKTsgfVxuLm55cy1nYW50dC1kZXBsaXN0IC5ueXMtbGlzdF9fc3ViIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IGZsZXgtd3JhcDogd3JhcDsgfVxubnlzLXByb2plY3QtZ2FudHQgbnlzLWdhbnR0IHsgZGlzcGxheTogYmxvY2s7IG92ZXJmbG93LXg6IGF1dG87IG1heC1pbmxpbmUtc2l6ZTogMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBcdTAwQTc4IFx1MjAxNCBQcm9qZWN0IGNoYXQgdGFiICg8bnlzLXByb2plY3QtY2hhdD4sIGxpZ2h0IERPTSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ueXMtY2hhdCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE0MHB4LCAyMDBweCkgMWZyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgbWluLWJsb2NrLXNpemU6IDYwdmg7IH1cbi5ueXMtY2hhdF9fY2hhbm5lbHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsgYm9yZGVyLWlubGluZS1lbmQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1ueXMtc3BhY2UtMik7IH1cbi5ueXMtY2hhdF9fY2hhbm5lbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC40cmVtOyB0ZXh0LWFsaWduOiBzdGFydDsgZm9udDogaW5oZXJpdDsgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG4ubnlzLWNoYXRfX2NoYW5uZWw6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTsgfVxuLm55cy1jaGF0X19jaGFubmVsLmlzLWFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1hY2NlbnQsIHZhcigtLW55cy1iZy1lbGV2LTIpKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLm55cy1jaGF0X19jaGFubmVsLW5hbWUgeyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLm55cy1jaGF0X191bnJlYWQgeyBpbmxpbmUtc2l6ZTogOHB4OyBibG9jay1zaXplOiA4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpOyBmbGV4OiBub25lOyB9XG4ubnlzLWNoYXRfX21haW4geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtaW4tYmxvY2stc2l6ZTogMDsgfVxuLm55cy1jaGF0X19oZWFkZXIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMC41cmVtOyBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTIpOyBib3JkZXItYmxvY2stZW5kOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IH1cbi5ueXMtY2hhdF9fdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS1tZCk7IH1cbi5ueXMtY2hhdF9fc3RhdHVzIHsgZm9udC1zaXplOiAwLjdyZW07IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiA5OTlweDsgcGFkZGluZzogMC4xcmVtIDAuNXJlbTsgfVxuLm55cy1jaGF0X19zdGF0dXMuaXMtbGl2ZSB7IGNvbG9yOiB2YXIoLS1ueXMtc3RhdGUtb2stdGV4dCk7IGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLXN0YXRlLW9rKTsgfVxuLm55cy1jaGF0X19waW5zIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDAuMzVyZW07IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0yKSAwOyB9XG4ubnlzLWNoYXRfX3RpbWVsaW5lIHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0zKSAwOyBtYXgtYmxvY2stc2l6ZTogNTV2aDsgfVxuLm55cy1jaGF0X19tc2cgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsgfVxuLm55cy1jaGF0X19tc2ctLXN5c3RlbSB7IG9wYWNpdHk6IDAuODsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4ubnlzLWNoYXRfX21zZy0tZGVsZXRlZCB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IH1cbi5ueXMtY2hhdF9fbXNnLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogYmFzZWxpbmU7IGdhcDogMC41cmVtOyB9XG4ubnlzLWNoYXRfX2F1dGhvciB7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5ueXMtY2hhdF9fcmVwbHktY3R4IHsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyBib3JkZXItaW5saW5lLXN0YXJ0OiAycHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVyZW07IH1cbi5ueXMtY2hhdF9fYm9keSB7IGxpbmUtaGVpZ2h0OiAxLjU7IH1cbi5ueXMtY2hhdF9fYm9keSA6aXMocCwgdWwsIG9sLCBwcmUpIHsgbWFyZ2luOiAwLjI1cmVtIDA7IH1cbi5ueXMtY2hhdF9fYm9keSBwcmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTsgcGFkZGluZzogMC41cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXNtKTsgb3ZlcmZsb3cteDogYXV0bzsgfVxuLm55cy1jaGF0X19yZWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC4yNXJlbTsgfVxuLm55cy1jaGF0X19yZWFjdGlvbiB7IGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMC43NXJlbTsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMSk7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBwYWRkaW5nOiAwLjA1cmVtIDAuNDVyZW07IH1cbi5ueXMtY2hhdF9fcmVhY3Rpb24uaXMtbWluZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnkpOyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctYWNjZW50LCB2YXIoLS1ueXMtYmctZWxldi0yKSk7IH1cbi5ueXMtY2hhdF9fbXNnLWFjdGlvbnMgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAwLjE1cmVtOyBtYXJnaW4taW5saW5lLXN0YXJ0OiAwLjVyZW07IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnM7IH1cbi5ueXMtY2hhdF9fbXNnOmhvdmVyIC5ueXMtY2hhdF9fbXNnLWFjdGlvbnMgeyBvcGFjaXR5OiAxOyB9XG4ubnlzLWNoYXRfX3JlYWN0LWFkZCwgLm55cy1jaGF0X19hY3QgeyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDAuOHJlbTsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBwYWRkaW5nOiAwLjFyZW0gMC4yNXJlbTsgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1zbSk7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCk7IH1cbi5ueXMtY2hhdF9fcmVhY3QtYWRkOmhvdmVyLCAubnlzLWNoYXRfX2FjdDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQpOyB9XG4ubnlzLWNoYXRfX2NvbXBvc2VyIHsgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS0yKTsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4ubnlzLWNoYXRfX2NvbXBvc2VyLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbi5ueXMtY2hhdF9fY29tcG9zZXIgdGV4dGFyZWEgeyBmbGV4OiAxOyByZXNpemU6IHZlcnRpY2FsOyB9XG4ubnlzLWNoYXRfX3JlcGx5aW5nIHsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyBtYXJnaW4tYmxvY2stZW5kOiAwLjI1cmVtOyB9XG4ubnlzLWNoYXRfX3JlYWRvbmx5IHsgYm9yZGVyLWJsb2NrLXN0YXJ0OiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0zKTsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAwLjg1cmVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi5ueXMtY2hhdF9fbWVudGlvbnMgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0LWJsb2NrLWVuZDogMTAwJTsgaW5zZXQtaW5saW5lLXN0YXJ0OiAwOyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDAuMjVyZW07IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1zbSk7IGJveC1zaGFkb3c6IHZhcigtLW55cy1zaGFkb3ctbWQpOyB6LWluZGV4OiA1OyB9XG4ubnlzLWNoYXRfX21lbnRpb25zIGJ1dHRvbiB7IGRpc3BsYXk6IGJsb2NrOyBpbmxpbmUtc2l6ZTogMTAwJTsgdGV4dC1hbGlnbjogc3RhcnQ7IGZvbnQ6IGluaGVyaXQ7IGJvcmRlcjogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogMC4yNXJlbSAwLjZyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLW55cy1yYWRpdXMtc20pOyB9XG4ubnlzLWNoYXRfX21lbnRpb25zIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyB9XG4ubnlzLWxpbmtidG4geyBmb250OiBpbmhlcml0OyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnktdGV4dCk7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHBhZGRpbmc6IDA7IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkgeyAubnlzLWNoYXQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSAubnlzLWNoYXRfX2NoYW5uZWxzIHsgZmxleC1kaXJlY3Rpb246IHJvdzsgb3ZlcmZsb3cteDogYXV0bzsgYm9yZGVyLWlubGluZS1lbmQ6IDA7IGJvcmRlci1ibG9jay1lbmQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFx1MDBBNzYuNiBcdTIwMTQgS25vd2xlZGdlIGJhc2UgdGFiICg8bnlzLXByb2plY3Qta2I+KSArIG5ldy10aWNrZXQgY29tcG9zZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5ueXMta2IgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1rYl9fdG9vbGJhciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBhbGlnbi1pdGVtczogY2VudGVyOyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5ueXMta2JfX3NlYXJjaCB7IGZsZXg6IDEgMSAyNDBweDsgfVxuLm55cy1rYl9fZmlsdGVyIHsgZmxleDogMCAwIGF1dG87IH1cbi5ueXMta2JfX3JvdyB7IGlubGluZS1zaXplOiAxMDAlOyB0ZXh0LWFsaWduOiBzdGFydDsgZm9udDogaW5oZXJpdDsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY3Vyc29yOiBwb2ludGVyOyB9XG4ubnlzLWtiX19hcnRpY2xlIHsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTUpOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1rYl9fYmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgZmxleC13cmFwOiB3cmFwOyB9XG4ubnlzLWtiX19hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IGZsZXgtd3JhcDogd3JhcDsgfVxuLm55cy1rYl9faGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyB9XG4ubnlzLWtiX190aXRsZSB7IG1hcmdpbjogMDsgZm9udC1zaXplOiB2YXIoLS1ueXMtZm9udC1zaXplLXhsKTsgfVxuLm55cy1rYl9fYm9keSB7IGxpbmUtaGVpZ2h0OiAxLjY1OyB9XG4ubnlzLWtiX19ib2R5IDppcyhoMSxoMixoMykgeyBtYXJnaW4tYmxvY2s6IDFyZW0gMC41cmVtOyB9XG4ubnlzLWtiX19ib2R5IDppcyhwLHVsLG9sKSB7IG1hcmdpbi1ibG9jazogMC41cmVtOyB9XG4ubnlzLWtiX19ib2R5IHByZSB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTIpOyBwYWRkaW5nOiAwLjc1cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXNtKTsgb3ZlcmZsb3cteDogYXV0bzsgfVxuLm55cy1rYl9fYm9keSBjb2RlIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMik7IHBhZGRpbmc6IDAuMWVtIDAuMzVlbTsgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4ubnlzLWtiX19mZWVkYmFjayB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tbnlzLXNwYWNlLTIpOyBib3JkZXItYmxvY2stc3RhcnQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tbnlzLXNwYWNlLTMpOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyB9XG4ubnlzLWtiX19lZGl0IHsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTUpOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1rYl9fZWRpdHJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMta2JfX2JvZHlpbnB1dCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1ueXMtZm9udC1tb25vLCB1aS1tb25vc3BhY2UsIG1vbm9zcGFjZSk7IHJlc2l6ZTogdmVydGljYWw7IH1cbi5ueXMta2JfX2VkaXRhY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMta2ItcmVsYXRlZCAubnlzLWxpc3RfX3JvdyB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi8qIE5ldy10aWNrZXQgY29tcG9zZXIgKi9cbi5ueXMtbmV3dGlja2V0IHsgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tbnlzLXNwYWNlLTQpOyB9XG4ubnlzLW5ld3RpY2tldF9fcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1uZXd0aWNrZXRfX2RlZmxlY3QgeyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tbnlzLWJvcmRlci1zdHJvbmcpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLW1kKTsgcGFkZGluZzogdmFyKC0tbnlzLXNwYWNlLTMpOyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYmctZWxldi0yKTsgfVxuLm55cy1uZXd0aWNrZXRfX2FjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7IC5ueXMta2JfX2VkaXRyb3csIC5ueXMtbmV3dGlja2V0X19yb3cgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFx1MDBBNzYuNSBcdTIwMTQgTlBTIC8gc2F0aXNmYWN0aW9uIHRhYiAoPG55cy1wcm9qZWN0LW5wcz4pXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubnlzLW5wcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTQpOyB9XG4ubnlzLW5wc19fYmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IHZhcigtLW55cy1zcGFjZS0yKTsgZmxleC13cmFwOiB3cmFwOyB9XG4ubnlzLW5wc19fYWdnIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMyk7IH1cbi5ueXMtbnBzX19nYXVnZSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC4xNXJlbTsgfVxuLm55cy1ucHNfX2dhdWdlLW51bSB7IGZvbnQtc2l6ZTogdmFyKC0tbnlzLWZvbnQtc2l6ZS0zeGwpOyBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogMTsgfVxuLm55cy1ucHNfX251bS0tb2sgeyBjb2xvcjogdmFyKC0tbnlzLXN0YXRlLW9rLXRleHQpOyB9XG4ubnlzLW5wc19fbnVtLS13YXJuIHsgY29sb3I6IHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5LXRleHQpOyB9XG4ubnlzLW5wc19fbnVtLS1kYW5nZXIgeyBjb2xvcjogdmFyKC0tbnlzLXN0YXRlLWtvLXRleHQpOyB9XG4ubnlzLW5wc19fYnJlYWtkb3duIHsgZGlzcGxheTogZmxleDsgYmxvY2stc2l6ZTogMC45cmVtOyBib3JkZXItcmFkaXVzOiA5OTlweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWJnLWVsZXYtMik7IH1cbi5ueXMtbnBzX19zZWcgeyBkaXNwbGF5OiBibG9jazsgbWluLWlubGluZS1zaXplOiAwOyB0cmFuc2l0aW9uOiBpbmxpbmUtc2l6ZSAwLjNzOyB9XG4ubnlzLW5wc19fc2VnLS1wcm9tb3RlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1vayk7IH1cbi5ueXMtbnBzX19zZWctLXBhc3NpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtc3RhdGUtY2xhcmlmeSk7IH1cbi5ueXMtbnBzX19zZWctLWRldHJhY3RvciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1rbyk7IH1cbi5ueXMtbnBzX19sZWdlbmQgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IHZhcigtLW55cy1zcGFjZS00KTsgZmxleC13cmFwOiB3cmFwOyBmb250LXNpemU6IHZhcigtLW55cy1mb250LXNpemUtc20pOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyB9XG4ubnlzLW5wc19fZG90IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBpbmxpbmUtc2l6ZTogMC42cmVtOyBibG9jay1zaXplOiAwLjZyZW07IGJvcmRlci1yYWRpdXM6IDUwJTsgbWFyZ2luLWlubGluZS1lbmQ6IDAuMjVyZW07IH1cbi5ueXMtbnBzX19kb3QtLXByb21vdGVyIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLW9rKTsgfVxuLm55cy1ucHNfX2RvdC0tcGFzc2l2ZSB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5KTsgfVxuLm55cy1ucHNfX2RvdC0tZGV0cmFjdG9yIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLWtvKTsgfVxuLm55cy1ucHNfX3Njb3JlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtaW4taW5saW5lLXNpemU6IDEuNnJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXdlaWdodDogNzAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXNtKTsgcGFkZGluZzogMCAwLjM1cmVtOyBjb2xvcjogI2ZmZjsgfVxuLm55cy1ucHNfX3Njb3JlLS1wcm9tb3RlciB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1vayk7IH1cbi5ueXMtbnBzX19zY29yZS0tcGFzc2l2ZSB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5KTsgfVxuLm55cy1ucHNfX3Njb3JlLS1kZXRyYWN0b3IgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtc3RhdGUta28pOyB9XG4ubnlzLW5wc19fZGlzcGF0Y2gsIC5ueXMtbnBzX19zdXJ2ZXkgeyBwYWRkaW5nOiB2YXIoLS1ueXMtc3BhY2UtNCk7IH1cbi5ueXMtbnBzX19kcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IHZhcigtLW55cy1zcGFjZS0zKTsgfVxuLm55cy1ucHNfX3JlY2lwaWVudHMgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tbnlzLXJhZGl1cy1tZCk7IHBhZGRpbmc6IHZhcigtLW55cy1zcGFjZS0zKTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwLjI1cmVtOyBtYXgtYmxvY2stc2l6ZTogMjIwcHg7IG92ZXJmbG93LXk6IGF1dG87IG1hcmdpbi1ibG9jazogdmFyKC0tbnlzLXNwYWNlLTMpOyB9XG4ubnlzLW5wc19fcmVzcG9uZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tbnlzLXNwYWNlLTMpOyBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLW55cy1zcGFjZS0yKTsgfVxuLm55cy1ucHNfX3NjYWxlIHsgZGlzcGxheTogZmxleDsgZ2FwOiAwLjNyZW07IGZsZXgtd3JhcDogd3JhcDsgfVxuLm55cy1ucHNfX3NjYWxlYnRuIHsgaW5saW5lLXNpemU6IDIuNHJlbTsgYmxvY2stc2l6ZTogMi40cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1ueXMtcmFkaXVzLXNtKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlcik7IGJhY2tncm91bmQ6IHZhcigtLW55cy1iZy1lbGV2LTEpOyBmb250OiBpbmhlcml0OyBmb250LXdlaWdodDogNjAwOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4czsgfVxuLm55cy1ucHNfX3NjYWxlYnRuOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9XG4ubnlzLW5wc19fc2NhbGVidG4tLWRldHJhY3Rvci5pcy1zZWxlY3RlZCB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1rbyk7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6IHZhcigtLW55cy1zdGF0ZS1rbyk7IH1cbi5ueXMtbnBzX19zY2FsZWJ0bi0tcGFzc2l2ZS5pcy1zZWxlY3RlZCB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdGF0ZS1jbGFyaWZ5KTsgY29sb3I6ICNmZmY7IGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLXN0YXRlLWNsYXJpZnkpOyB9XG4ubnlzLW5wc19fc2NhbGVidG4tLXByb21vdGVyLmlzLXNlbGVjdGVkIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN0YXRlLW9rKTsgY29sb3I6ICNmZmY7IGJvcmRlci1jb2xvcjogdmFyKC0tbnlzLXN0YXRlLW9rKTsgfVxuLm55cy1ucHNfX3NjYWxlLWVuZHMgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGZvbnQtc2l6ZTogMC43cmVtOyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQpOyB9XG4ubnlzLW5wc19fcmVzcG9uZC1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiB2YXIoLS1ueXMtc3BhY2UtMik7IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkgeyAubnlzLW5wc19fZHJvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IH1cblxuLyogXHUwMEE3Ni41IFx1MjAxNCBOUFMgZXZvbHV0aW9uIGxpbmUgY2hhcnQgcGFuZWwgKi9cbi5ueXMtbnBzX190cmVuZCB7IG1pbi1ibG9jay1zaXplOiAyNDBweDsgfVxuLm55cy1ucHNfX3RyZW5kID4gbnlzLWNoYXJ0IHsgZGlzcGxheTogYmxvY2s7IGlubGluZS1zaXplOiAxMDAlOyBibG9jay1zaXplOiAyMjBweDsgfVxuXG4vKiBcdTAwQTc4IFx1MjAxNCBjaGF0IHRhYiBzdWItdmlldyBzd2l0Y2ggKGNoYW5uZWxzIHZzIGRpcmVjdCBtZXNzYWdlcykgKi9cbi5ueXMtY2hhdC1odWJfX3N3aXRjaCB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC4yNXJlbTsgbWFyZ2luLWJsb2NrLWVuZDogMC43NXJlbTsgfVxuLyogQWN0aXZlIHRleHQgdXNlcyB0aGUgZGFya2VyIGJyYW5kLWFjdGl2ZSBzaGFkZSAobm90IHRoZSBiYXNlIGFjY2VudCk6IGJhc2VcbiAgICMyNTYzZWIgb24gdGhlIHNvZnQgdGludCBpcyBvbmx5IDQuMzM6MSAoPCBXQ0FHIEFBIDQuNSk7IHRoZSBkYXJrZXIgc2hhZGUgY2xlYXJzIGl0LiAqL1xuLm55cy1jaGF0LWh1Yl9fc3dpdGNoIC5pcy1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYWNjZW50LXNvZnQsICNlMGVjZmYpOyBjb2xvcjogdmFyKC0tbnlzLWJyYW5kLXByaW1hcnktYWN0aXZlLCAjMWU0MGFmKTsgfVxuXG4vKiBcdTAwQTc4LjIgXHUyMDE0IGRpcmVjdCBtZXNzYWdlcyAqL1xuLm55cy1kbSB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjQwcHggMWZyOyBnYXA6IDFyZW07IG1pbi1ibG9jay1zaXplOiA0MjBweDsgfVxuLm55cy1kbV9fbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC4yNXJlbTsgYm9yZGVyLWlubGluZS1lbmQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyLXN1YnRsZSwgI2VlZjBmMyk7IHBhZGRpbmctaW5saW5lLWVuZDogMC43NXJlbTsgfVxuLm55cy1kbV9fbmV3IHsgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuLm55cy1kbV9faGludCB7IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7IH1cbi5ueXMtZG1fX3BpY2tlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC4yNXJlbTsgcGFkZGluZy1ibG9jazogMC41cmVtOyBib3JkZXItYmxvY2stZW5kOiAxcHggZGFzaGVkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgbWFyZ2luLWJsb2NrLWVuZDogMC41cmVtOyB9XG4ubnlzLWRtX19yZWNpcGllbnQsIC5ueXMtZG1fX2NvbnYge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAwLjVyZW07XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7IHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjdXJzb3I6IHBvaW50ZXI7IGNvbG9yOiBpbmhlcml0OyBmb250OiBpbmhlcml0O1xufVxuLm55cy1kbV9fcmVjaXBpZW50OmhvdmVyLCAubnlzLWRtX19jb252OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN1cmZhY2UtMiwgI2YzZjRmNik7IH1cbi5ueXMtZG1fX2NvbnYuaXMtYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWFjY2VudC1zb2Z0LCAjZTBlY2ZmKTsgY29sb3I6IHZhcigtLW55cy1icmFuZC1wcmltYXJ5LWFjdGl2ZSwgIzFlNDBhZik7IH1cbi5ueXMtZG1fX2JhZGdlIHsgbWluLWlubGluZS1zaXplOiAxLjI1cmVtOyBwYWRkaW5nOiAwIDAuMzVyZW07IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYWNjZW50LCAjMjU2M2ViKTsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMC43cmVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi5ueXMtZG1fX3RocmVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi1ibG9jay1zaXplOiA0MjBweDsgfVxuLm55cy1kbV9faGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgcGFkZGluZy1ibG9jay1lbmQ6IDAuNXJlbTsgYm9yZGVyLWJsb2NrLWVuZDogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgfVxuLm55cy1kbV9fbWVzc2FnZXMgeyBmbGV4OiAxOyBvdmVyZmxvdy15OiBhdXRvOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNXJlbTsgcGFkZGluZy1ibG9jazogMC43NXJlbTsgfVxuLm55cy1kbV9fbXNnIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWF4LWlubGluZS1zaXplOiA3NSU7IH1cbi5ueXMtZG1fX21zZy5pcy1taW5lIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuLm55cy1kbV9fYnViYmxlIHsgcGFkZGluZzogMC40cmVtIDAuN3JlbTsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN1cmZhY2UtMiwgI2YzZjRmNik7IH1cbi5ueXMtZG1fX21zZy5pcy1taW5lIC5ueXMtZG1fX2J1YmJsZSB7IGJhY2tncm91bmQ6IHZhcigtLW55cy1hY2NlbnQtc29mdCwgI2UwZWNmZik7IH1cbi5ueXMtZG1fX2RlbGV0ZWQgeyBjb2xvcjogdmFyKC0tbnlzLXRleHQtbXV0ZWQsICM2YjcyODApOyB9XG4ubnlzLWRtX19tZXRhIHsgZm9udC1zaXplOiAwLjdyZW07IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7IG1hcmdpbi1ibG9jay1zdGFydDogMC4xNXJlbTsgZGlzcGxheTogZmxleDsgZ2FwOiAwLjRyZW07IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbi8qIFBlci1tZXNzYWdlIGVkaXQvZGVsZXRlIGFmZm9yZGFuY2VzIFx1MjAxNCByZXZlYWxlZCBvbiBob3Zlci9mb2N1cyBvZiBvd24gYnViYmxlLiAqL1xuLm55cy1kbV9fYWN0aW9ucyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDAuNHJlbTsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEycyBlYXNlOyB9XG4ubnlzLWRtX19tc2c6aG92ZXIgLm55cy1kbV9fYWN0aW9ucywgLm55cy1kbV9fbXNnOmZvY3VzLXdpdGhpbiAubnlzLWRtX19hY3Rpb25zIHsgb3BhY2l0eTogMTsgfVxuLm55cy1kbV9fYWN0aW9uIHsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcGFkZGluZzogMDsgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tbnlzLWFjY2VudCwgIzI1NjNlYik7IGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMC43cmVtOyB9XG4ubnlzLWRtX19hY3Rpb246aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLm55cy1kbV9fbXNnLmlzLWVkaXRpbmcgLm55cy1kbV9fYnViYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW55cy1hY2NlbnQsICMyNTYzZWIpOyBvdXRsaW5lLW9mZnNldDogMXB4OyB9XG4ubnlzLWRtX19lZGl0aW5nIHsgYWxpZ24tc2VsZjogY2VudGVyOyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1ueXMtYWNjZW50LCAjMjU2M2ViKTsgfVxuLm55cy1kbV9fY29tcG9zZXIgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDAuNXJlbTsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjVyZW07IGJvcmRlci1ibG9jay1zdGFydDogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgfVxuLm55cy1kbV9fY29tcG9zZXIgdGV4dGFyZWEgeyBmbGV4OiAxOyByZXNpemU6IHZlcnRpY2FsOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHsgLm55cy1kbSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IH1cblxuLyogXHUwMEE3NSBcdTIwMTQgdGFzay1kZXRhaWwgZHJhd2VyIChvcGVuZWQgZnJvbSBhIGthbmJhbiBjYXJkKSAqL1xuLm55cy1kcmF3ZXItYmFja2Ryb3AgeyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNCk7IHotaW5kZXg6IDQwOyB9XG4ubnlzLWRyYXdlciB7XG4gICAgcG9zaXRpb246IGZpeGVkOyBpbnNldC1ibG9jazogMDsgaW5zZXQtaW5saW5lLWVuZDogMDsgei1pbmRleDogNDE7XG4gICAgaW5saW5lLXNpemU6IG1pbig0ODBweCwgOTJ2dyk7IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdXJmYWNlLCAjZmZmKTtcbiAgICBib3gtc2hhZG93OiAtOHB4IDAgMjRweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTsgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5ueXMtZHJhd2VyX19oZWFkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAxcmVtOyBwYWRkaW5nLWJsb2NrLWVuZDogMC43NXJlbTsgYm9yZGVyLWJsb2NrLWVuZDogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgfVxuLm55cy1kcmF3ZXJfX3RpdGxlIHsgZm9udC1zaXplOiAxLjA1cmVtOyBtYXJnaW46IDA7IH1cbi5ueXMtZHJhd2VyX19zdWIgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7IH1cblxuLyogXHUwMEE3NSBcdTIwMTQgdGFzayBjb21tZW50cyB0aHJlYWQgKi9cbi5ueXMtdGMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNXJlbTsgcGFkZGluZy1ibG9jay1zdGFydDogMC43NXJlbTsgfVxuLm55cy10Y19faW50ZXJuYWwgeyBmb250LXNpemU6IDAuNzJyZW07IGNvbG9yOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7IG1hcmdpbjogMDsgfVxuLm55cy10Y19fbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC42cmVtOyB9XG4ubnlzLXRjX19pdGVtIHsgcGFkZGluZzogMC41cmVtIDAuNjVyZW07IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN1cmZhY2UtMiwgI2Y2ZjdmOSk7IH1cbi5ueXMtdGNfX2l0ZW0uaXMtZWRpdGluZyB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ueXMtYWNjZW50LCAjMjU2M2ViKTsgb3V0bGluZS1vZmZzZXQ6IDFweDsgfVxuLm55cy10Y19faGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDAuNXJlbTsgfVxuLm55cy10Y19fdGltZSB7IGZvbnQtc2l6ZTogMC42OHJlbTsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkLCAjNmI3MjgwKTsgfVxuLm55cy10Y19fYm9keSB7IG1hcmdpbi1ibG9jay1zdGFydDogMC4ycmVtOyB9XG4ubnlzLXRjX19kZWxldGVkIHsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkLCAjNmI3MjgwKTsgfVxuLm55cy10Y19fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC41cmVtOyBtYXJnaW4tYmxvY2stc3RhcnQ6IDAuMjVyZW07IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnMgZWFzZTsgfVxuLm55cy10Y19faXRlbTpob3ZlciAubnlzLXRjX19hY3Rpb25zLCAubnlzLXRjX19pdGVtOmZvY3VzLXdpdGhpbiAubnlzLXRjX19hY3Rpb25zIHsgb3BhY2l0eTogMTsgfVxuLm55cy10Y19fYWN0aW9uIHsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcGFkZGluZzogMDsgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tbnlzLWFjY2VudCwgIzI1NjNlYik7IGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMC43cmVtOyB9XG4ubnlzLXRjX19hY3Rpb246aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLm55cy10Y19fZWRpdGluZyB7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLW55cy1hY2NlbnQsICMyNTYzZWIpOyB9XG4ubnlzLXRjX19jb21wb3NlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC40cmVtOyBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjVyZW07IGJvcmRlci1ibG9jay1zdGFydDogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgfVxuLm55cy10Y19fY29tcG9zZXIgdGV4dGFyZWEgeyByZXNpemU6IHZlcnRpY2FsOyB9XG4ubnlzLXRjX19jb21wb3Nlci1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiAwLjVyZW07IH1cblxuLyogXHUwMEE3MTIuMyBcdTIwMTQgbWV0cmljcy1oaXN0b3J5IGJyb3dzZSBwYWdlICovXG4ubnlzLW1ldHJpY3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFyZW07IHBhZGRpbmc6IDEuMjVyZW07IH1cbi5ueXMtbWV0cmljc19fdGl0bGUgeyBmb250LXNpemU6IDEuMjVyZW07IG1hcmdpbjogMDsgfVxuLm55cy1tZXRyaWNzX19jb250cm9scyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjc1cmVtOyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbi5ueXMtbWV0cmljc19fY29udHJvbHMgLm55cy1maWVsZCB7IG1pbi1pbmxpbmUtc2l6ZTogOXJlbTsgfVxuLm55cy1tZXRyaWNzX19jaGFydCB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAxcmVtOyB9XG4ubnlzLW1ldHJpY3NfX2NoYXJ0ID4gbnlzLWNoYXJ0IHsgZGlzcGxheTogYmxvY2s7IGlubGluZS1zaXplOiAxMDAlOyBibG9jay1zaXplOiAzMjBweDsgfVxuLm55cy1tZXRyaWNzX190YWJsZSB7IHBhZGRpbmc6IDAuNXJlbSAxcmVtOyBvdmVyZmxvdy14OiBhdXRvOyB9XG4ubnlzLW1ldHJpY3NfX3RhYmxlIHRhYmxlIHsgaW5saW5lLXNpemU6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGZvbnQtc2l6ZTogMC44NXJlbTsgfVxuLm55cy1tZXRyaWNzX190YWJsZSB0aCwgLm55cy1tZXRyaWNzX190YWJsZSB0ZCB7IHRleHQtYWxpZ246IHN0YXJ0OyBwYWRkaW5nOiAwLjRyZW0gMC42cmVtOyBib3JkZXItYmxvY2stZW5kOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlci1zdWJ0bGUsICNlZWYwZjMpOyB9XG4ubnlzLW1ldHJpY3NfX3RhYmxlIHRoIHsgY29sb3I6IHZhcigtLW55cy10ZXh0LW11dGVkLCAjNmI3MjgwKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4vKiBcdTAwQTc2LjUgXHUyMDE0IE5QUyBwZXItcHJvamVjdCBleHRyYSBxdWVzdGlvbnMgKi9cbi5ueXMtbnBzX19iYXJhY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiAwLjVyZW07IGZsZXgtd3JhcDogd3JhcDsgfVxuLm55cy1ucHNfX3JlcSB7IGNvbG9yOiB2YXIoLS1ueXMtdGFzay1jcml0aWNhbCwgI2RjMjYyNik7IH1cbi5ueXMtbnBzX194ZmllbGQgeyBtYXJnaW4tYmxvY2stc3RhcnQ6IDAuNnJlbTsgfVxuLm55cy1ucHNfX3JhdGluZyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC4zcmVtOyB9XG4ubnlzLW5wc19fcmF0ZWJ0biB7IGlubGluZS1zaXplOiAyLjJyZW07IGJsb2NrLXNpemU6IDIuMnJlbTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbnlzLWJvcmRlciwgI2QxZDVkYik7IGJvcmRlci1yYWRpdXM6IDZweDsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN1cmZhY2UsICNmZmYpOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQ6IGluaGVyaXQ7IH1cbi5ueXMtbnBzX19yYXRlYnRuLmlzLXNlbGVjdGVkIHsgYmFja2dyb3VuZDogdmFyKC0tbnlzLWFjY2VudCwgIzI1NjNlYik7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6IHZhcigtLW55cy1hY2NlbnQsICMyNTYzZWIpOyB9XG4ubnlzLW5wc19feGFuc3dlcnMgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDAuMjVyZW0gMCAwOyBwYWRkaW5nOiAwOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuMXJlbTsgZm9udC1zaXplOiAwLjgycmVtOyB9XG4ubnlzLW5wc19feGFuc3dlcnMgbGkgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDAuMzVyZW07IH1cbi8qIGNhYmluZXQgcXVlc3Rpb25zIGVkaXRvciAqL1xuLm55cy1ucHNfX3Fjb25maWcgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNXJlbTsgfVxuLm55cy1ucHNfX3Fyb3cgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMC41cmVtOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nLWJsb2NrLWVuZDogMC41cmVtOyBib3JkZXItYmxvY2stZW5kOiAxcHggZGFzaGVkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgfVxuLm55cy1ucHNfX3Fyb3cgLm55cy1pbnB1dCB7IGZsZXg6IDEgMSA4cmVtOyBtaW4taW5saW5lLXNpemU6IDZyZW07IH1cbi5ueXMtbnBzX19xYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC41cmVtOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyogXHUwMEE3OS4zIFx1MjAxNCBHRUQgZG9jdW1lbnQgcHJldmlldyBtb2RhbCArIE9DUiBwYW5lbCAqL1xuLm55cy1tb2RhbC1iYWNrZHJvcCB7IHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC41KTsgei1pbmRleDogNTA7IH1cbi5ueXMtZ2VkX19wcmV2aWV3IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiA1MCUgYXV0byBhdXRvIDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHotaW5kZXg6IDUxO1xuICAgIGlubGluZS1zaXplOiBtaW4oOTYwcHgsIDk0dncpOyBtYXgtYmxvY2stc2l6ZTogOTJ2aDsgYmFja2dyb3VuZDogdmFyKC0tbnlzLXN1cmZhY2UsICNmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ueXMtZ2VkX19wcmV2aWV3LWJvZHkgeyBmbGV4OiAxOyBtaW4tYmxvY2stc2l6ZTogNTB2aDsgb3ZlcmZsb3c6IGF1dG87IGJhY2tncm91bmQ6IHZhcigtLW55cy1zdXJmYWNlLTIsICNmM2Y0ZjYpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogMC41cmVtOyB9XG4ubnlzLWdlZF9fcHJldmlldy1pbWcgeyBtYXgtaW5saW5lLXNpemU6IDEwMCU7IG1heC1ibG9jay1zaXplOiA3MHZoOyBvYmplY3QtZml0OiBjb250YWluOyB9XG4ubnlzLWdlZF9fcHJldmlldy1mcmFtZSB7IGlubGluZS1zaXplOiAxMDAlOyBibG9jay1zaXplOiA2NXZoOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5ueXMtZ2VkX19vY3IgeyBib3JkZXItYmxvY2stc3RhcnQ6IDFweCBzb2xpZCB2YXIoLS1ueXMtYm9yZGVyLXN1YnRsZSwgI2VlZjBmMyk7IHBhZGRpbmc6IDAuNzVyZW0gMXJlbTsgbWF4LWJsb2NrLXNpemU6IDI2dmg7IG92ZXJmbG93OiBhdXRvOyB9XG4ubnlzLWdlZF9fb2NyLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbTsgbWFyZ2luLWJsb2NrLWVuZDogMC40cmVtOyB9XG4ubnlzLWdlZF9fb2NyLXRleHQgcHJlIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLWJyZWFrOiBicmVhay13b3JkOyBmb250LXNpemU6IDAuOHJlbTsgbWFyZ2luOiAwLjJyZW0gMCAwLjZyZW07IH1cblxuLyogXHUwMEE3NC40LjMgLyBcdTAwQTcxMS4zIFx1MjAxNCBtdWx0aS1wYXJ0eSBlSURBUyBzaWduYXR1cmUgd29ya2Zsb3dzICovXG4ubnlzLXNpZ24geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFyZW07IH1cbi5ueXMtc2lnbl9fYmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4ubnlzLXNpZ25fX2NyZWF0ZSB7IGRpc3BsYXk6IGJsb2NrOyB9XG4ubnlzLXNpZ25fX3JvdyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjc1cmVtOyB9XG4ubnlzLXNpZ25fX3JvdyAubnlzLWZpZWxkIHsgZmxleDogMSAxIDEwcmVtOyB9XG4ubnlzLXNpZ25fX2dyb3cgeyBmbGV4OiAyIDEgMTZyZW07IH1cbi5ueXMtc2lnbl9fc2lnbmVycyB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW55cy1ib3JkZXItc3VidGxlLCAjZWVmMGYzKTsgYm9yZGVyLXJhZGl1czogOHB4OyBwYWRkaW5nOiAwLjZyZW07IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC41cmVtOyB9XG4ubnlzLXNpZ25fX3NpZ25lciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC41cmVtOyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4ubnlzLXNpZ25fX3NpZ25lciAubnlzLWlucHV0IHsgZmxleDogMSAxIDhyZW07IH1cbi5ueXMtc2lnbl9fbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC43NXJlbTsgfVxuLm55cy1zaWduX193ZmhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbTsgZmxleC13cmFwOiB3cmFwOyB9XG4ubnlzLXNpZ25fX3dmYWN0aW9ucyB7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87IGRpc3BsYXk6IGZsZXg7IGdhcDogMC40cmVtOyB9XG4ubnlzLXNpZ25fX3NpZ25lcnMtbGlzdCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMC42cmVtIDAgMDsgcGFkZGluZzogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwLjM1cmVtOyB9XG4ubnlzLXNpZ25fX3NpZ25lci1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbTsgfVxuLm55cy1zaWduX19zaWduZXItbmFtZSB7IGZsZXg6IDE7IH1cbi5ueXMtc2lnbl9fc2lnbmVyLWRvdCB7IGlubGluZS1zaXplOiAwLjdyZW07IGJsb2NrLXNpemU6IDAuN3JlbTsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtdGV4dC1tdXRlZCwgIzljYTNhZik7IGZsZXg6IG5vbmU7IH1cbi5ueXMtc2lnbl9fc2lnbmVyLWRvdC0tb2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtb2ssICMxNmEzNGEpOyB9XG4ubnlzLXNpZ25fX3NpZ25lci1kb3QtLWluZm8geyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtYWNjZW50LCAjMjU2M2ViKTsgfVxuLm55cy1zaWduX19zaWduZXItZG90LS1kYW5nZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ueXMtdGFzay1jcml0aWNhbCwgI2RjMjYyNik7IH1cbi5ueXMtc2lnbl9fc2lnbmVyLWRvdC0td2FybiB7IGJhY2tncm91bmQ6IHZhcigtLW55cy13YXJuLCAjZDk3NzA2KTsgfVxuIiwgIi8qKlxuICogTnlzaXJpcyBTcGVjaWZpY2F0aW9ucyBcdTIwMTQgR2xvYmFsIHN0eWxlc2hlZXQgZW50cnkgcG9pbnQuXG4gKlxuICogQXJjaGl0ZWN0dXJlOlxuICogIC0gQGxheWVyIGNhc2NhZGUgb3JkZXJpbmcgKFczQyBzdGFuZGFyZCk6XG4gKiAgICAgIHJlc2V0ICAgIFx1MjAxNCBtb2Rlcm4gcmVzZXQgKGJvcmRlci1ib3gsIHN5c3RlbSBmb250cyBvZmYpXG4gKiAgICAgIHRva2VucyAgIFx1MjAxNCBkZXNpZ24gdG9rZW5zIChPcGVuIFByb3BzIENETiArIE55c2lyaXMgY3VzdG9tIHBhbGV0dGUpXG4gKiAgICAgIGJhc2UgICAgIFx1MjAxNCBiYXNlIGVsZW1lbnQgc3R5bGVzICh0eXBvZ3JhcGh5LCBoZWFkaW5ncylcbiAqICAgICAgdXRpbHMgICAgXHUyMDE0IGF0b21pYyB1dGlsaXR5IGNsYXNzZXMgKHNwYWNpbmcsIGxheW91dCwgYWNjZXNzaWJpbGl0eSlcbiAqICAgICAgY29tcG9uZW50cyBcdTIwMTQgVUkgY29tcG9uZW50IHByaW1pdGl2ZXMgKGNhcmRzLCBidXR0b25zLCBtb2RhbHMpXG4gKiAgICAgIHBhZ2VzICAgIFx1MjAxNCBwYWdlLXNwZWNpZmljIG92ZXJyaWRlc1xuICpcbiAqICBPcGVuIFByb3BzIGlzIGxvYWRlZCB2aWEgQ0ROIDxsaW5rPiBpbiB0aGUgSFRNTCBzaGVsbCBcdTIwMTQgd2UgcmUtZGVjbGFyZSBhIGN1c3RvbVxuICogIGxheWVyIGhlcmUgc28gY2FzY2FkZSBpcyBkZXRlcm1pbmlzdGljIHJlZ2FyZGxlc3Mgb2YgaW5qZWN0aW9uIG9yZGVyLlxuICovXG5cbkBsYXllciByZXNldCwgdG9rZW5zLCBiYXNlLCB1dGlscywgY29tcG9uZW50cywgcGFnZXM7XG5cbi8qIExheWVyZWQgaW1wb3J0cyBcdTIwMTQgcGVyIENTUyBzcGVjLCBAaW1wb3J0IG11c3QgcHJlY2VkZSBzdHlsZSBydWxlcyAoaXQgbWF5IGZvbGxvd1xuICAgb25seSBAY2hhcnNldCBhbmQgdGhlIEBsYXllci1vcmRlciBzdGF0ZW1lbnQgYWJvdmUpLiBDYXNjYWRlIG9yZGVyIGlzIGZpeGVkIGJ5XG4gICB0aGF0IHN0YXRlbWVudCwgc28gc291cmNlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBpbmxpbmUgQGxheWVyIGJsb2NrcyBiZWxvd1xuICAgZG9lcyBub3QgY2hhbmdlIHByZWNlZGVuY2UuICovXG5AaW1wb3J0ICcuL3Rva2Vucy9fbnlzaXJpcy5jc3MnIGxheWVyKHRva2Vucyk7XG5AaW1wb3J0ICcuL3Rva2Vucy9fZGVuc2l0eS5jc3MnIGxheWVyKHRva2Vucyk7XG5AaW1wb3J0ICcuL2NvbXBvbmVudHMvX2J1dHRvbnMuY3NzJyBsYXllcihjb21wb25lbnRzKTtcbkBpbXBvcnQgJy4vY29tcG9uZW50cy9faW5wdXRzLmNzcycgbGF5ZXIoY29tcG9uZW50cyk7XG5AaW1wb3J0ICcuL2NvbXBvbmVudHMvX2NhcmRzLmNzcycgbGF5ZXIoY29tcG9uZW50cyk7XG5AaW1wb3J0ICcuL2NvbXBvbmVudHMvX21vZGFsLmNzcycgbGF5ZXIoY29tcG9uZW50cyk7XG5AaW1wb3J0ICcuL2NvbXBvbmVudHMvX2xheW91dC5jc3MnIGxheWVyKGNvbXBvbmVudHMpO1xuQGltcG9ydCAnLi9jb21wb25lbnRzL19maWVsZC1zdGF0ZS5jc3MnIGxheWVyKGNvbXBvbmVudHMpO1xuQGltcG9ydCAnLi91dGlsaXRpZXMvX2ExMXkuY3NzJyBsYXllcih1dGlscyk7XG5AaW1wb3J0ICcuL3V0aWxpdGllcy9fc3BhY2luZy5jc3MnIGxheWVyKHV0aWxzKTtcbkBpbXBvcnQgJy4vcGFnZXMvX2F1dGguY3NzJyBsYXllcihwYWdlcyk7XG5AaW1wb3J0ICcuL3BhZ2VzL19kYXNoYm9hcmQuY3NzJyBsYXllcihwYWdlcyk7XG5AaW1wb3J0ICcuL3BhZ2VzL19wcm9qZWN0cy5jc3MnIGxheWVyKHBhZ2VzKTtcblxuQGxheWVyIHJlc2V0IHtcbiAgICAvKiBDcm9zcy1icm93c2VyIG1vZGVybiByZXNldCAoZm9jdXNlZCwgb3BpbmlvbmF0ZWQ7IG5vIG5vcm1hbGl6ZS5jc3MgbmVlZGVkKSAqL1xuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIGh0bWwgeyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cbiAgICBib2R5IHsgbWluLWhlaWdodDogMTAwdmg7IGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICBpbWcsIHBpY3R1cmUsIHZpZGVvLCBjYW52YXMsIHN2ZyB7IGRpc3BsYXk6IGJsb2NrOyBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBpbnB1dCwgYnV0dG9uLCB0ZXh0YXJlYSwgc2VsZWN0IHsgZm9udDogaW5oZXJpdDsgY29sb3I6IGluaGVyaXQ7IH1cbiAgICBwLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgfVxuICAgICNhcHAgeyBpc29sYXRpb246IGlzb2xhdGU7IH1cbiAgICBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogUmVzcGVjdCB1c2VycyB3aG8gcHJlZmVyIHJlZHVjZWQgbW90aW9uICovXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7OztBQUFBO0FBU0E7QUFLSSx5QkFBcUIsTUFBTSxJQUFJLEtBQUs7QUFHcEMsK0JBQTJCLE1BQU0sSUFBSSxLQUFLO0FBQzFDLGdDQUE0QixNQUFNLElBQUksS0FBSztBQUMzQyw0QkFBd0I7QUFDeEIsd0JBQW9CLE1BQU0sSUFBSSxLQUFLO0FBQ25DLDBCQUFzQjtBQUd0QixjQUFVLE1BQU0sSUFBSSxNQUFNO0FBQzFCLHFCQUFpQixNQUFNLEtBQUssRUFBRTtBQUM5QixxQkFBaUIsTUFBTSxJQUFJLE1BQU07QUFDakMsZ0JBQVksTUFBTSxJQUFJLEtBQUs7QUFPM0Isc0JBQWtCLE1BQU0sSUFBSSxLQUFLO0FBQ2pDLHVCQUFtQixNQUFNLElBQUksS0FBSztBQUNsQyxrQkFBYyxNQUFNLElBQUksS0FBSztBQUM3Qix5QkFBcUIsTUFBTSxJQUFJLEtBQUs7QUFNcEMsb0JBQWdCLE1BQU0sSUFBSSxLQUFLO0FBQy9CLG9CQUFnQixNQUFNLElBQUksS0FBSztBQUMvQix5QkFBcUIsTUFBTSxJQUFJLEtB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 */
